微信小程序之支付詳解(填坑)

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);
      }
    })
相關文章
相關標籤/搜索