1.獲取用戶openidjavascript
wx.login({ //調用登陸接口 success: function (res) { if (res.code) { //成功後會有一個code字段 //發起網絡請求 var code = res.code; //獲得code字段用以獲取openid wx.request({ url:'https://api.weixin.qq.com/sns/jscode2session?appid=「此處是你的appid」&secret="此處是小程序的密鑰"&js_code='+code+'&grant_type=authorization_code', success: function (res) { if(res){ console.log(res.data); //將openid存儲在全局數據中,你能夠選擇存儲在你要存儲的地方 that.globalData.openid = res.data.openid; } } }) } else { console.log('獲取用戶登陸態失敗!' + res.errMsg) } } });
2.統一下單 獲取prepay_id前端
首先,你採用什麼語言選擇對應的sdk,記住:微信sdk默認簽名是HMACSHA256,由於小程序只支持MD5,故你這裏即便獲取了prepay_id,在小程序發起支付也會提示「支付簽名驗證錯誤」,因此必定要將簽名改成MD5,兩次簽名同樣均爲MD5方可正常付款。java
3.小程序發起支付小程序
var time = (Date.parse(new Date()) / 1000).toString(); //時間戳 //appid需參與簽名,是appId不要寫成appid哦 //MD5簽名方式,這裏我爲了演示在前端使用md5,爲了安全必定要在後端作好籤名再傳遞到前端 var paySign = MD5Util.MD5("appId=wx22******d5&nonceStr=kc8BmYbdXmdWiQnP&package=prepay_id=wx20171008094057273436b12233229424&signType=MD5&timeStamp="+time+"&key=7b85F**********8D275BF33C").toUpperCase(); console.log(time + ":" + paySign); wx.requestPayment({ 'appId':'wx22******d5', //需傳遞appid參數 'nonceStr': 'kc8BmYbdXmdWiQnP', 'package': 'prepay_id=wx20171008094057273436b1250400723503', 'signType': 'MD5', 'timeStamp': time, 'paySign': paySign, 'success': function (res) { console.log(res); }, 'fail': function (res) { console.log(res); } })