那个请求https://api.mch....是交给后台处理的,下面代码里的data就是后台处理后的数据,prepay_id也是后台去请求你那个地址获取到的。 我的步骤是这样的: 调用wx.login获取code 将code和你的订单信息传给后台 后台用code获取到用户openid,然后去获取订单对应的prepay_id,并返回给前端需要的信息,即代码里的data 前端拿到返回data后拼接出需要的东西(这个sign其实也可以由后端拼接好放到data里返回),然后调用wx.requestPayment发起支付。 而且小程序是没法把https://api.mch...添加到服务器域名列表的。如果不是测试环境,可以说是必须交给后台处理的。 微信文档里好像有写好的专门api去处理微信返回的xml数据的。 var timestamp = data.timestamp + '' var appId = data.appid var key = data.key var prepay_id = data.prepay_id var nonce_str = data.nonce_str var sign = ''; var signA = "appId=" + appId + "&nonceStr=" + nonce_str + "&package=prepay_id=" + prepay_id + "&signType=MD5&timeStamp=" + timestamp; var signB = signA + "&key=" + key; sign = MD5Util.md5(signB).toUpperCase(); wx.requestPayment({ timeStamp: timestamp, nonceStr: nonce_str, package: "prepay_id=" + prepay_id, signType: 'MD5', paySign: sign, success: function (data) { success(data) }, fail: function (res) { fail(res) } })
那个请求
https://api.mch....
是交给后台处理的,下面代码里的
data
就是后台处理后的数据,prepay_id
也是后台去请求你那个地址获取到的。我的步骤是这样的:
wx.login
获取code
code
和你的订单信息传给后台code
获取到用户openid
,然后去获取订单对应的prepay_id
,并返回给前端需要的信息,即代码里的data
data
后拼接出需要的东西(这个sign
其实也可以由后端拼接好放到data
里返回),然后调用wx.requestPayment
发起支付。而且小程序是没法把
https://api.mch...
添加到服务器域名列表的。如果不是测试环境,可以说是必须交给后台处理的。微信文档里好像有写好的专门
api
去处理微信返回的xml
数据的。