微信支付

2021-01-18  本文已影响0人  前端陈陈陈

1、 排序

 createPaySign(data) {
    //排序
    var keylist = [];
    for (var key in data) {
      keylist.push(key);
    }
    var sortKeyList = this.bundleSort(keylist);
    console.log(sortKeyList);
    //拼接字符串
    var md5strarr = [];
    for (var i = 0; i < sortKeyList.length; i++) {
      md5strarr.push(sortKeyList[i] + "=" + data[sortKeyList[i]]);
    }

    var md5str = md5strarr.join("&");
    console.log(md5(md5str));
    //md5加密
    return md5(md5str).toUpperCase();
  },
  bundleSort(list) {
    var len = list.length;

    for (var i = 0; i < len; i++) {
      for (var j = 0; j < len; j++) {
        if (list[i] <= list[j]) {
          var temp = list[j];
          list[j] = list[i];
          list[i] = temp;
        }
      }
    }

    return list;
  },

2、支付

  pays: function (event) {
    var  h = this 
    wx.request({
      url: 'https://foshantv. 请求地址',
      data: {
        id: h.data.obj.orderid ,
      },
      header: {
        "Content-type": "application/x-www-form-urlencoded",
        "cookie": h.data.obj.cookie
      },
      method: "POST",
      success(res) {
        if (res.data.status == 1) {
            var paysignData = {
              appId:t.globalData.appid,
              timeStamp: h.data.obj.timeStamp,
              nonceStr: h.data.obj.nonceStr,
              package: h.data.obj.package,
              signType: h.data.obj.signType,
            }
            var originstr= "appId="+paysignData.appId+"&nonceStr="+paysignData.nonceStr+"&package="+paysignData.package+"&signType=MD5&timeStamp="+paysignData.timeStamp+"&key=xyq4woxtq1lyzz5b3l4nnstvlxwclr3g";
            var paysign = md5(originstr).toUpperCase();
            console.log(originstr, paysign);
            wx.requestPayment({
              timeStamp: h.data.obj.timeStamp,
              nonceStr: h.data.obj.nonceStr,
              package: h.data.obj.package,
              signType: h.data.obj.signType,
              paySign: paysign,         
              success:(res) => {    
                // h.complete()
              },
              fail(res) {
              },
              complete(res){
                console.log("res",res)
                if(res.errMsg == "requestPayment:ok"){
                  wx.showToast({
                    title:'支付成功',
                    icon:'success',
                    duration:2000
                  }) 
                  setTimeout(function() {
                    wx.redirectTo({
                      url: '/pages/web/orderDetails?orderid=' +h.data.obj.orderid
                    }) 
                 }, 1000);
                } else{
                  wx.showToast({
                    title:'支付失败',
                    icon:'fail',
                    duration:2000
                  }) 
                }
              }

            })
        }
      }
    })
  },
上一篇下一篇

猜你喜欢

热点阅读