微信支付JSSDK的使用

微信内公众号支付

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
wx.chooseWXPay({
timestamp: timestamp,
// 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写
// 但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符
nonceStr: nonceStr, // 支付签名随机串,不长于 32 位
package: package,
// 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=***)
signType: 'MD5',
// 签名方式,默认为'SHA1',使用新版支付需传入'MD5'
paySign: paySign, // 支付签名
success: function (res) {
// alert('成功:'+JSON.stringify(res))
$.hideLoading()
callback&&callback(res)
},
fail: function (res) {
$.hideLoading()
alert('失败:'+JSON.stringify(res))
toast("支付失败!请检查微信配置");
},
cancel: function (res) {
//支付取消
$.hideLoading()
toast("已取消支付!");
}
})

以上需注意的点是:
1) paySign 是以appId, timeStamp, nonceStr,
package, signType 5个值在后端进行签名,需要注意大小写。

2、nonceStr(随机字符串) 使用的是后台同一下单时使用的同一个随机串
3、公众号支付必须传openid

微信H5支付

1
后端调用微信H5支付的统一下单接口,微信接口返回跳转url,前端直接跳转微信返回的url即可

以上均需注意:微信商户后台中必须设置好支付允许目录,否则会有报错现象。