收藏
回答

小程序微信支付js编码问题

以下:


/**以下支付业务处理 */

daShang: function (e) {

console.log(e);

         var daShangJinE = e.target.dataset.jinE;//金额

        var bookingNO = "";//订单号


wx.request({

url: '',//获取prepayId 、paySign 的请求url    (1)这里的理解正确么,正确的话,prepayId、paySign是怎么生成的?

method: 'POST',

data: {

daShangJinE: daShangJinE,

bookingNO: bookingNO,

openId: ''

},

header: { 'content-type': 'application/json' },

success: function (res) {

wx.requestPayment({//调用支付API

timeStamp: new Date(),//当前时间

nonceStr: '',//随机字符串

                                                    package: 'prepay_id=' + res.data.prepay_id,//统一下单接口返回的 prepay_id 参数值,提交格式如:prepay_id=*

signType: 'MD5',

paySign: res.data.paySignjs,

success: function (res) {

console.log("success: " + JSON.stringify(res));

},

fail: function (err) {

console.log(err);

}

})

},

fail: function (err) {

console.log("fail: " + JSON.stringify(err));

}

})

}



(2)这段代码还有其他什么遗漏、错误的地方?


回答关注问题邀请回答
收藏

7 个回答

  • 宽恕
    宽恕
    2017-10-12

    感觉你解释的很仔细了,可能因为我以前没有接触支付这块,所以还是不能很好理解,我再看看,谢谢

    2017-10-12
    有用
    回复
  • 2017-10-12

    建议是,nonceStr 和 timeStamp 都在服务端生成。创建订单(获取 prepay_id)和获取支付签名(获取 paySign)解耦。

    2017-10-12
    有用
    回复
  • 2017-10-12


    这些是你的后端需要和微信通信时传递的字段。

    然后根据这个签名算法: https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=4_3 来获取小程序发起支付所需要的 paySign 。

    至于 prepay_id,实际上就是业务方后端在向微信下支付订单时获取的信息,具体看微信支付的文档吧...

    2017-10-12
    有用
    回复
  • 宽恕
    宽恕
    2017-10-12

    不知道为什么,发布问题的时候很认真的缩进排版,结果发不上来还是这样;

    主要的不理解的地方是:红色第(1)点,url、prepayId、paySign不知道是怎么形成的。

    谢谢

    2017-10-12
    有用
    回复
  • 2017-10-11

    https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=7_7&index=3

    2017-10-11
    有用
    回复
  • 2017-10-11

    timeStamp 的类型应该是 string,写错了。

    2017-10-11
    有用
    回复
  • 2017-10-11

    把缩进搞一搞吧,你这样贴东西没人愿意看的。把业务逻辑都剥开,


    timeStamp 的类型应该是 number,而不是 Date 的实例。timeStamp,nonceStr 应该是服务器的返回值,你这里不对。

    2017-10-11
    有用
    回复
登录 后发表内容