H5调起支付分-确认订单

最新更新时间:2019.12.16 版本说明

商户通过调用确认订单接口打开微信支付分小程序,引导用户确认订单(Web端)

简介

接口名称: openBusinessView

接口兼容:

此接口引用 JSAPI版本1.5.0,引用地址:https://res.wx.qq.com/open/js/jweixin-1.5.0.js

要求用户微信版本>=7.0.5

接口参数

Object

参数名 变量 类型[长度限制] 必填 描述
跳转类型 businessType string[1,16] 固定配置:wxpayScoreUse
示例值:wxpayScoreUse
业务参数 queryString string[1,2048] 使用URL的query string方式传递参数,格式为key=value&key2=value2,其中value,value2需要进行UrlEncode处理。
示例值:见queryString示例

mch_id=1230000109&package=XXXXXXXX&
timestamp=1530097563&nonce_str=zyx53Nkey8o4bHpxTQvd8m7e92nG5mG2
&sign_type=HMAC-SHA256&sign=029B52F67573D7E3BE74904BF9AEA

query内部参数

参数名 变量 类型[长度限制] 必填 描述
商户号 mch_id string[1,32] 微信支付分配的商户号。
示例值:1230000109
扩展字符串 package string[1,128] 可在【创建订单】接口的返回字段package中获取。
示例值:XXXXXXXX
时间戳 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、package、timestamp、nonce_str、sign_type按照签名生成算法计算得出的签名值。
示例值:029B52F67573D7E3BE74904BF9AEA

返回参数

Object res

参数名 变量 类型[长度限制] 必填 描述
返回码 err_code Number/string[1,32] 返回码,由于iOS和Android实现的差异,err_code类型可能为Number或string
,所以在判断支付分是否成功返回商户的H5时,需要对err_code做整型化处理。
示例值:
iOS:0
Android:'0'
返回信息 err_msg string[1,128] 返回信息
示例值:openBusinessView:ok
+业务参数 extraData Object 当err_code为0时,extraData才返回;反之,则不返回。
参数名 变量 类型[长度限制] 必填 描述
单据查询id query_id string[1,64] 单据查询id,对应【查询订单】接口中入参query_id。
示例值:XXXXXXXX
公众账号ID appid string[1,32] 支付分公众账号ID。
示例值:wxd8f3793ea3b935b8

注意:只有用户点支付分页面内返回按钮时,才会带上返回参数;如果用户左滑返回或者点击页面左上角的返回图标返回,则不会带上返回参数。所以推荐在【查询订单】接口使用out_order_no作为入参。另外商户侧后台在创建支付分订单时需向前端返回out_order_no,同时前端需缓存out_order_no,以便在接口回调中查询订单状态。



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: 'wxpayScoreUse',
                    queryString
: 'mch_id=1230000109&package=xxxxx& 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 }


版本说明

关闭
V1.1
2019.12.16
1. 业务参数调整为queryString

V1.0
2019.08.23
1. 开启/停用服务回调通知上线

技术咨询

反馈有奖