最新更新时间:2020.03.05 版本说明
商户通过调用订单详情接口打开微信支付分小程序,引导用户查看订单详情(Web端)
在JSAPI调起支付分相关接口前,需详细阅读JS-SDK说明文档并进行相应配置。
JS-SDK配置为链接:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html
接口名称: openBusinessView
此接口引用 JSAPI版本1.5.0,引用地址:https://res.wx.qq.com/open/js/jweixin-1.5.0.js。
要求用户微信版本>=7.0.5
参数名 | 变量 | 类型[长度限制] | 必填 | 描述 |
---|---|---|---|---|
跳转类型 | businessType | string[1,16] | 是 | 固定配置:wxpayScoreDetail 示例值:wxpayScoreDetail |
业务参数 | queryString | string[1,2048] | 是 | 使用URL的query string 方式传递参数,格式为key=value&key2=value2,其中value,value2需要进行UrlEncode处理。 示例值:见querystring 示例 |
mch_id=1230000109&service_id=88888888000011&out_order_no=1234323JKHDFE1243252&
timestamp=1530097563&nonce_str=zyx53Nkey8o4bHpxTQvd8m7e92nG5mG2&
sign_type=HMAC-SHA256&sign=029B52F67573D7E3BE74904BF9AEA
参数名 | 变量 | 类型[长度限制] | 必填 | 描述 |
---|---|---|---|---|
商户号 | mch_id | string[1,32] | 是 | 微信支付分配的商户号。 示例值:1230000109 |
服务ID | service_id | string[1,32] | 是 | 服务ID 示例值:88888888000011 |
商户服务订单号 | out_order_no | string[1,32] | 是 | 商户系统内部服务订单号(不是交易单号)。 示例值:234323JKHDFE1243252 |
时间戳 | timestamp | string[1,32] | 是 | 生成签名时间戳,单位秒。 示例值:1530097563 |
随机字符串 | nonce_str | string[1,32] | 是 | 生成签名随机串。由数字、大小写字母组成,长度不超过32位。 示例值:zyx53Nkey8o4bHpxTQvd8m7e92nG5mG2 |
签名方式 | sign_type | string[1,32] | 是 | 签名类型,仅支持HMAC-SHA256。 示例值:HMAC-SHA256 |
签名 | sign | string[1,64] | 是 | 使用字段mch_id、service_id、out_order_no、timestamp、nonce_str、sign_type按照签名生成算法计算得出的签名值。 示例值:029B52F67573D7E3BE74904BF9AEA |
let wechatInfo = navigator.userAgent.match(/MicroMessenger\/([\d\.]+)/i);
let wechatVersion = wechatInfo[1];
if (compareVersion(wechatVersion, '7.0.5') >= 0) {
goToWXScore();
} else {
// 提示用户升级微信客户端版本
window.href = 'https://support.weixin.qq.com/cgi-bin/readtemplate?t=page/common_page__upgrade&
text=text005&btn_text=btn_text_0'
}
/**
* 跳转微信支付分
*/
function goToWXScore() {
wx.checkJsApi({
jsApiList: ['openBusinessView'], // 需要检测的JS接口列表
success: function (res) {
// 以键值对的形式返回,可用的api值true,不可用为false
// 如:{"checkResult":{"openBusinessView":true},"errMsg":"checkJsApi:ok"}
if (res.checkResult.openBusinessView) {
wx.invoke(
'openBusinessView', {
businessType: 'wxpayScoreDetail',
queryString
: 'mch_id=1230000109&service_id=88888888000011&out_order_no=1234323JKHDFE1243252&
timestamp=1530097563&nonce_str=zyx53Nkey8o4bHpxTQvd8m7e92nG5mG2&
sign_type=HMAC-SHA256&sign=029B52F67573D7E3BE74904BF9AEA'
},
function (res) {
// 从支付分返回时会执行这个回调函数
if (parseint(res.err_code) === 0) {
// 返回成功
} else {
// 返回失败
}
});
}
}
});
}
/**
* 版本号比较
* @param {string
} v1
* @param {string
} v2
*/
function compareVersion(v1, v2) {
v1 = v1.split('.')
v2 = v2.split('.')
const len = Math.max(v1.length, v2.length)
while (v1.length < len) {
v1.push('0')
}
while (v2.length < len) {
v2.push('0')
}
for (let i = 0; i < len; i++) {
const num1 = parseint(v1[i])
const num2 = parseint(v2[i])
if (num1 > num2) {
return 1
} else if (num1 < num2) {
return -1
}
}
return 0
}