当前位置:
首页 >
PHP获取微信支付v2预支付参数prepay_id后在小程序端完成支付
发布时间:2023/12/14
49
豆豆
生活随笔
收集整理的这篇文章主要介绍了
PHP获取微信支付v2预支付参数prepay_id后在小程序端完成支付
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
PS:在上一篇文章中,通过对主体上传xml数据进行签名获取到了微信返回的数据,将返回的xml数据中的prepay_id提取出来后就可以进行下一步: 对prepay_id以及其他所需参数进行在此签名并将数据返回小程序端
PHP代码:
PS:上方PHP代码中需要注意的是:进行再签名的数据中,appId中的I是大写,在上一篇文章中的appid是小写,在此签名中的nonce_str与上一篇中获取prepay_id所需要的nonce_str是同一个变量,不需要再次生成第二个32位随机字符串,参与签名的时间戳与返回给微信的时间戳做好保持相同
小程序端JS代码:
getxml(){var test = thiswx.getStorage({ //此处openid是从缓存中获取,我在app.js中获取openid,并将其存入本地缓存之中key:'openid',success(res){console.log(res)test.setData({'openid':res.data})console.log(test.data.openid)}})wx.request({url: 'http://192.168.0.103:2908/wxPayV2/getPrepay_id.php', //此处改为你的PHP文件地址method:'POST',header:{'content-type':'application/x-www-form-urlencoded'},data:{'openid':test.data.openid,'description':'0.38mm.pen', //商品描述,这里我写死了,方便后期测试用的,注意修改'total':1 //总费用,单位为分,实际使用请乘100使其变为元},success(res){console.log(res)// test.setData({ //这一段内容看情况可以舍弃// 'nonceStr':res.data.nonceStr,// 'package':res.data.package,// 'paySign': res.data.paySign,// 'timeStamp': res.data.timeStamp// })wx.requestPayment({nonceStr: res.data.nonceStr,package: res.data.package,paySign: res.data.paySign,timeStamp: res.data.timeStamp,signType: res.data.signType,success(res){console.log(res)}})}})},以上就是如何在小程序端拉起微信支付收银台,总体来看,完成微信支付v2 JSAPI支付,总计需要两次签名,可以选择使用MD5与HMAC-SHA256进行签名,注意appid参数的大小写,注意两次签名中生成的nonce_str要相同,参与签名的时间戳参数也要与返回小程序端的时间戳保持相同
本文原创为CSDN用户:缱绻淡蓝海
总结
以上是生活随笔为你收集整理的PHP获取微信支付v2预支付参数prepay_id后在小程序端完成支付的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 谈谈软件架构之美
- 下一篇: 2:算法php/go [二分查找 ;二叉