微信小程序开发之微信支付
发布时间: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=3util.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