# qa.requestWxPayment(Object object)
发起微信支付
微信支付详细使用方式请参考微信支付说明
# 参数
# Object object
属性 | 类型 | 必填 | 说明 |
---|---|---|---|
prepayid | string | 是 | 微信支付服务器生成的预支付订单 id,参考微信 app 支付和微信网页支付 |
referer | string | 否 | 在微信支付后台配置的域名,若该参数不为空,将通过直接设置 referer 的方式拉起微信客户端。 |
extra | Object | 是 | 当前支付方式下,需要填入的额外订单信息,具体见下文的 extra 参数说明 |
success | function | 否 | 成功后的回调函数,App 方式下,回调发生在用户支付完成之后,网页方式下,回调发生在订单提交给微信 app 之后 |
fail | function | 否 | 接口调用失败的回调函数 |
cancel | function | 否 | 用户取消的回调函数 |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
# extra 参数
app 方式
字段名 | 必选 | 说明 |
---|---|---|
app_id | 是 | 微信支付订单中的 app_id |
partner_id | 是 | 微信支付订单中的 partner_id |
package_value | 是 | 微信支付订单中的 package_value |
nonce_str | 是 | 微信支付订单中的 nonce_str |
time_stamp | 是 | 微信支付订单中的 time_stamp |
order_sign | 是 | 微信支付订单中的 order_sign |
网页方式(referer 方式)
字段名 | 必选 | 说明 |
---|---|---|
mweb_url | 是 | 在微信的支付服务器下单以后,微信返回的 MWEB_URL |
custome_key | 否 | 其他的自定义键值,cp 可以根据需要增加其他自己认为需要的键名和键值 |
网页方式(中间页方式)
字段名 | 必选 | 说明 |
---|---|---|
mweb_url | 否 | 在微信的支付服务器下单以后,微信返回的 MWEB_URL,在 CP 用于微信支付的 h5 页面中,直接将 mweb_url 取出后跳转过去即可,但这个做法并不是强制的,您也可以通过其他自定义键值向您自己的服务器换取 MWEB_URL。 |
custome_key | 否 | 其他的自定义键值,cp 可以根据需要增加其他自己认为需要的键名和键值 |
# object.fail 回调函数
# 参数
# Object res.errCode
错误码 | 说明 |
---|---|
900 | 在 manifest.json 中配置的应用签名有误,无法解析 |
901 | 在 manifest.json 中配置的应用包名有误 |
1000 | 微信未安装 |
1001 | 用于微信网页支付的 url 配置找不到 |
2001 | 订单已经提交给微信,但是微信返回错误, 可能的原因:签名错误、未注册 APPID、项目设置 APPID 不正确、注册的 APPID 与设置的不匹配、其他异常等。 |
# 示例代码
APP 方式
var payType = qa.getWxPaymentType()
if (payType === 'APP') {
qa.requestWxPayment({
//微信 app支付的prepayId
prepayid: 'your order prepayid,eg: wx20170101abcdef1234567890',
extra: {
app_id: 'your app_id',
partner_id: 'your partner_id',
package_value: 'your package_value',
nonce_str: 'your nonce_str',
time_stamp: 'your time_stamp',
order_sign: 'your order sign'
},
fail: function(ret) {
console.log(`WX PAY failed, code = ${ret.errCode}`)
},
cancel: function() {
console.log('WX PAY cancelled by user')
},
success: function() {
console.log('WX PAY success')
}
})
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
网页方式(referer 方式)
var payType = qa.getWxPaymentType()
if (payType === 'MWEB') {
qa.requestWxPayment({
// 微信网页支付的prepayId
prepayid: 'your order prepayid,eg: wx20170101abcdef1234567890',
referer: 'your host name configured in wechat, eg: https://www.quickapp.cn',
extra: {
// 需要将微信返回的MWEB_URL地址配置到这里
mweb_url: 'https://wx.tenpay.com/cgi-bin/mmpayweb-bin'
},
fail: function(ret) {
console.log(`WX H5 PAY handling fail, code = ${ret.errCode}`)
},
cancel: function() {
console.log('WX H5 PAY handling cancel')
},
success: function(data) {
//H5方式下,支付成功的回调仅仅只是指将订单递交给微信,并不意味着支付已经成功完成
console.log('WX H5 PAY handling success')
}
})
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
网页方式(中间页方式)
var payType = qa.getWxPaymentType()
if (payType === 'MWEB') {
qa.requestWxPayment({
//微信网页支付的prepayId
prepayid: 'your order prepayid,eg: wx20170101abcdef1234567890',
extra: {
//传递给支付页面的自定义参数, 根据需要进行设置, 会被urlEncode之后拼接在配置的url尾部
mweb_url: 'https://wx.tenpay.com/cgi-bin/mmpayweb-bin',
customeKey1: 'customeValue1',
customeKey2: 'customeValue2'
},
fail: function (ret) {
console.log(`WX H5 PAY handling fail, code = ${ret.errCode}`)
},
cancel: function () {
console.log('WX H5 PAY handling cancel')
},
success: function () {
//H5方式下,支付成功的回调仅仅只是指将订单递交给微信,并不意味着支付已经成功完成
console.log('WX H5 PAY handling success')
}
})
} else {
console.log('WX PAY is not avaliable')
}
}
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
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
←
→
在线客服