小程序-微信支付
发布时间:2021-09-19 09:12:39作者:顺晟科技点击:
app.js
// 获取用户 code
App({ code:null, onLaunch: function () { var that = this; //登陆获取code wx.login({ success: function (res) { if(res.code){ that.code = res.code; }else{ console.log("获取用户登陆失败"); } } }); }, })
index.wxml
// 点击发起支付事件
<button class="total_js" bindtap="wxpay">结算订单</button>
index.js
var app = getApp()
Page({
wxpay: function () { var code = app.code; var total_fee = this.data.total; wx.request({
//后台url、此处我用的是新浪云服务 url: "https://cloud.applinzi.com/Wxpay/example/jsapi.php", data: { code:code, // code 上传至后台url }, header:{ \'content-type\' :\'json\' }, method: \'GET\', success: function (res) { // console.log(res.data) var data = res.data; wx.requestPayment({
\'timeStamp\': data.timeStamp, \'nonceStr\': data.nonceStr, \'package\': data.package, \'signType\': \'MD5\', \'paySign\': data.paySign, \'success\': function (res) { wx.navigateBack({ delta: 1, // 回退前 delta(默认为1) 页面 success: function (res) { wx.showToast({ title: \'支付成功\', icon: \'success\', duration: 2000 }) } }) } }); } }) } })
Wxpay 后台部分 (公众平台提供的模板-点击链接下载)
或者打开https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=11_1 选择 php demo
1、 wxpay.config.php
设置 appid、key、mchid 、appsecert 填写自己的小程序及商户号对应参数。
<?php /** * 配置账号信息 */ class WxPayConfig { //=======【基本信息设置】===================================== // /** * TODO: 修改这里配置为您自己申请的商户信息 * 微信公众号信息配置 * * APPID:绑定支付的APPID(必须配置,开户邮件中可查看) * * MCHID:商户号(必须配置,开户邮件中可查看) * * KEY:商户支付密钥,参考开户邮件设置(必须配置,登录商户平台自行设置) * 设置地址:https://pay.weixin.qq.com/index.php/account/api_cert * * APPSECRET:公众帐号secert(仅JSAPI支付的时候需要配置, 登录公众平台,进入开发者中心可设置), * 获取地址:https://mp.weixin.qq.com/advanced/advanced?action=dev&t=advanced/dev&token=2005451881&lang=zh_CN * @var string */ const APPID = \'wxfc1f9478556d4e8cb2\'; const MCHID = \'1388148007\'; const KEY = \'hsof3idlugbperhndrmcnrychc3ttjd\'; const APPSECRET = \'5443a7d84df1a47a603138b79a34de71\'; */ const SSLCERT_PATH = \'../cert/apiclient_cert.pem\'; const SSLKEY_PATH = \'../cert/apiclient_key.pem\'; //=======【curl代理设置】=================================== */ const CURL_PROXY_HOST = "0.0.0.0";//"10.152.18.220"; const CURL_PROXY_PORT = 0;//8080; */ const REPORT_LEVENL = 1; }
2、wxpay.jsapiPay.php
修改此文件的 __CreateOauthUrlForOpenid() 函数部分
private function __CreateOauthUrlForOpenid($code) { $urlObj["appid"] = WxPayConfig::APPID; $urlObj["secret"] = WxPayConfig::APPSECRET; $urlObj["js_code"] = $code; $urlObj["grant_type"] = "authorization_code"; $bizString = $this->ToUrlParams($urlObj); return "https://api.weixin.qq.com/sns/jscode2session?".$bizString; //这里的url: https://api.weixin.qq.com/sns/jscode2session 由小程序提供。
}
jsapi.php
<?php ini_set(\'date.timezone\',\'Asia/Shanghai\'); //error_reporting(E_ERROR); require_once "../lib/WxPay.Api.php"; require_once "WxPay.JsApiPay.php"; require_once \'log.php\'; //①、获取用户openid $tools = new JsApiPay(); $openId = $tools->GetOpenid(); //②、统一下单 $input = new WxPayUnifiedOrder(); $input->SetBody("商品名称"); $input->SetAttach("数据") $input->SetOut_trade_no(WxPayConfig::MCHID.date("YmdHis")); $input->SetTotal_fee(\'1\'); $input->SetTime_start(date("YmdHis")); $input->SetTime_expire(date("YmdHis", time() + 600)); $input->SetGoods_tag("test"); $input->SetNotify_url("http://paysdk.weixin.qq.com/example/notify.php"); $input->SetTrade_type("JSAPI"); $input->SetOpenid($openId); $order = WxPayApi::unifiedOrder($input); //echo \'<font color="#f00"><b>统一下单支付单信息</b></font><br/>\'; //printf_info($order); $jsApiParameters = $tools->GetJsApiParameters($order); echo $jsApiParameters ; //获取共享收货地址js函数参数 $editAddress = $tools->GetEditAddressParameters(); //③、在支持成功回调通知中处理成功之后的事宜,见 notify.php /** * 注意: * 1、当你的回调地址不可访问的时候,回调通知会失败,可以通过查询订单来确认支付是否成功 * 2、jsapi支付时需要填入用户openid,WxPay.JsApiPay.php中有获取openid流程 (文档可以参考微信公众平台“网页授权接口”, * 参考http://mp.weixin.qq.com/wiki/17/c0f37d5704f0b64713d5d2c37b468d75.html) */ ?>
4. 将自己操作证书 application_cert.pem 与 application_key.pem 放在cert 文件夹下。
简单的介绍到这里,若有疑问,可私下讨论。
- 上一篇 : 微信小程序 关注公众号组件
- 下一篇 : 微信3.1小程序商城源码C# ASP.NET 多用户微商城