微信小程序开发之微信支付
发布时间:2021-09-08 09:12:56作者:顺晟科技点击:
概述
最近这段时间接了一个蓝牙车位锁的项目;项目中包括APP和微信小程序;其中涉及在线支付功能,这里记录下微信小程序在线支付完功能
小程序在线支付流程
1.微信小程序登陆微信获取code 调用接口wx.login(OBJECT)// 登录
wx.login({
success: res => {
wx.setStorageSync(\'logoRes\', res)
// 发送 res.code 到后台换取 openId, sessionKey, unionId
}
})
程序启动进行登录,把登录获取的信息缓存
2.微信小程序把第一步获取的code提交给第三方服务器 第三方接口通过微信小程序提交的code到微信服务器交换session_key 和 openid 这是微信获取 session_key 和 openid 的接口 https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code 参见文档:https://mp.weixin.qq.com/debug/wxadoc/dev/api/api-login.html#wxloginobject 3.小程序调用第三方程序下单接口 第三方程序接口做一些处理后调用微信服务器统一下单接口https://api.mch.weixin.qq.com/pay/unifiedorder 并且返回 prepay_id 参考资料: https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=9_1 第三方服务器通过把第二部和第三步的接口获取到prepay_id 4.小程序通过第三步获取到prepay_id开始支付 小程序调用接口wx.requestPayment(OBJECT) 参考文档:https://mp.weixin.qq.com/debug/wxadoc/dev/api/api-pay.html#wxrequestpaymentobject https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=7_7&index=3 util.httpClient.httpGet("/parklock/manager/android/ble2/pay/xcx-pay-apply-by-code!loadopenid.do", {
lockerId: 20001,
code: value.code
}, function (data) {
//ASCII码从小到大排序(字典序)
var signA = "appId=" + appid + "&nonceStr=" + data.nonce_str + "&package=prepay_id=" + data.prepayId + "&signType=MD5&timeStamp=" + data.timeStamp;
//拼接上商户key
var signB = signA + "&key=" + "uber7390fjeiafn84JFIEJFRE883FAKf";
//排序后进行md5
var sign = MD5Util.hexMD5(signB).toUpperCase();
wx.requestPayment({
\'timeStamp\': data.timeStamp+"",
\'nonceStr\': data.nonce_str,
\'package\': \'prepay_id=\' + data.prepayId,
\'signType\': data.signType,
\'paySign\': sign,
\'success\': function (res) {
console.log("支付成功")
wx.navigateTo({
url: \'../unlock/unlock?code=789\',
})
},
\'fail\': function (res) {
console.log("支付失败",res)
}
})
})
欢迎关注微信公众号【千里授渔】免费获取教学视频。
QQ507545336

- 上一篇 : 微信小程序之蓝牙广播信息
- 下一篇 : 分享一个微信、支付宝小程序BLE蓝牙SDK


