PHP获取微信支付v2预支付参数prepay_id后在小程序端完成支付
生活随笔
收集整理的這篇文章主要介紹了
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后在小程序端完成支付的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 谈谈软件架构之美
- 下一篇: 动态规划算法php,php算法学习之动态