商戶通過創(chuàng)建支付分訂單接口獲取確認訂單的必要參數(shù)package后可使用微信支付提供的JS調起微信支付分小程序,引導用戶確認訂單(公眾號端)
# 接口說明
支持商戶: 【普通商戶】
接口名稱: openBusinessView
提示
- 此接口引用 JSAPI版本1.5.0,引用地址:https://res.wx.qq.com/open/js/jweixin-1.5.0.js (opens new window) 。
- 要求用戶微信版本>=7.0.5
# 字段說明
# 請求參數(shù)
- businessType 必填 string(16)固定值,請傳入wxpayScoreUse。
- queryString 必填 string(2048)使用URL的query string方式傳遞參數(shù),格式為key=value&key2=value2,其中value,value2需要進行UrlEncode處理。
- 屬性
請求示例
1let wechatInfo = navigator.userAgent.match(/MicroMessenger\/([\d\.]+)/i);2let wechatVersion = wechatInfo[1];34if (compareVersion(wechatVersion, '7.0.5') >= 0) {5 goToWXScore();6} else {7 // 提示用戶升級微信客戶端版本8 window.href = 'https://support.weixin.qq.com/cgi-bin/readtemplate?t=page/common_page__upgrade&9 text=text005&btn_text=btn_text_0'10}1112/**13 * 跳轉微信支付分14 */15function goToWXScore() {16 wx.checkJsApi({17 jsApiList: ['openBusinessView'], // 需要檢測的JS接口列表18 success: function (res) {19 // 以鍵值對的形式返回,可用的api值true,不可用為false20 // 如:{"checkResult":{"openBusinessView":true},"errMsg":"checkJsApi:ok"}21 if (res.checkResult.openBusinessView) {22 wx.invoke(23 'openBusinessView', {24 businessType: 'wxpayScoreUse',25 queryString26:'mch_id=1230000109&package=AAQTnZoAAAABAAAAAAD8m2b8VRdZ2kVdKmHNZiAAAABcwQVtru-5k9MmEOZJ_Pv_Nq7Cw56dNKKN5Ej3Knt5jTHF-NdsP_McFW-iaU3iuJ0gWlNQeG9UihoKi0k2pv1t71M6mpk15X6L1545yNpmPD5uhi3poFV8e_5EdYwi_cbc6tXYVfa0AJUO4OzHGPhMdT4ZMwmFFhD0HQi9mRHQhFRKPwFai4NkkW7vm9mv1test×tamp=1530097563&nonce_str=zyx53Nkey8o4bHpxTQvd8m7e92nG5mG2&sign_type=HMAC-SHA256&sign=029B52F67573D7E3BE74904BF9AEA'27 },28 function (res) {29 // 從支付分返回時會執(zhí)行這個回調函數(shù)30 if (parseint(res.err_code) === 0) {31 // 返回成功 32 } else {33 // 返回失敗34 }35 });36 }37 }38 });39 }4041 /**42 * 版本號比較43 * @param {string44} v1 45 * @param {string46} v2 47 */48function compareVersion(v1, v2) {49 v1 = v1.split('.')50 v2 = v2.split('.')51 const len = Math.max(v1.length, v2.length)52 53 while (v1.length < len) {54 v1.push('0')55 }56 while (v2.length < len) {57 v2.push('0')58 }59 60 for (let i = 0; i < len; i++) {61 const num1 = parseint(v1[i])62 const num2 = parseint(v2[i])63 64 if (num1 > num2) {65 return 166 } else if (num1 < num2) {67 return -168 }69 }70 71 return 072 }
# 返回參數(shù)
- err_code 必填 Number/string(32)返回碼,由于iOS和Android實現(xiàn)的差異,err_code類型可能為Number或string
- err_msg 必填 string(128)返回信息。
- extraData 選填 Object當err_code為0時,extraData才返回。
- 屬性
注意
只有用戶點支付分頁面內(nèi)返回按鈕時,才會帶上返回參數(shù);如果用戶左滑返回或者點擊頁面左上角的返回圖標返回,則不會帶上返回參數(shù)。所以推薦在查詢支付分訂單接口使用out_order_no作為入?yún)ⅰA硗馍虘魝群笈_在創(chuàng)建支付分訂單時需向前端返回out_order_no,同時前端需緩存out_order_no,以便在接口回調中查詢訂單狀態(tài)。