商戶小程序跳轉(zhuǎn)微信側(cè)小程序建議使用兩種方式:調(diào)用wx.openBusinessView或者wx.navigateToMiniProgram。其中wx.openBusinessView不占用小程序跳轉(zhuǎn)其他小程序的數(shù)量名額。
接口名稱:wx.openBusinessView
接口兼容:
●小程序版本庫 >= 2.6.0,低版本需提示用戶升級微信版本。
● iOS兼容性表現(xiàn):若微信版本 >= 7.0.3,開發(fā)者可以通過此openSDK接口跳轉(zhuǎn)到微信支付分小程序;若微信版本 < 7.0.3,開發(fā)者通過此openSDK接口可以跳轉(zhuǎn)到微信,但不能跳轉(zhuǎn)到微信支付分小程序,此時微信會提示用戶可能由于應用的請求非法或者微信版本過低。
● Android兼容性表現(xiàn):若微信版本>=7.0.3,開發(fā)者可以通過此openSDK接口跳轉(zhuǎn)到微信支付分小程序;若微信版本< 7.0.3,開發(fā)者通過此openSDK接口不能跳轉(zhuǎn)到微信,此時開發(fā)者應提示用戶更新微信版本。
參數(shù)名 | 變量 | 類型[長度限制] | 必填 | 描述 |
---|---|---|---|---|
跳轉(zhuǎn)類型 | businessType | string[1,32] | 是 | 固定配置:wxpayScoreUse 示例值:wxpayScoreUse |
+業(yè)務參數(shù) | extraData | Object | 是 | 需要傳遞給支付分的業(yè)務數(shù)據(jù)。 |
if (wx.openBusinessView) {
wx.openBusinessView({
businessType: 'wxpayScoreUse',
extraData: {
mch_id: '1230000109',
package: 'XXXXXXXX',
timestamp: '1530097563',
nonce_str: 'zyx53Nkey8o4bHpxTQvd8m7e92nG5mG2',
sign_type: 'HMAC-SHA256',
sign: '029B52F67573D7E3BE74904BF9AEA'
},
success() {
//dosomething
},
fail() {
//dosomething
},
complete() {
//dosomething
}
});
} else {
//引導用戶升級微信版本
}
接口名稱:?wx.navigateToMiniProgram,詳見小程序API文檔。
接口兼容:每個小程序可跳轉(zhuǎn)的其他小程序數(shù)量限制為不超過 10 個。
參數(shù)名 | 變量 | 類型[長度限制] | 必填 | 描述 |
---|---|---|---|---|
公眾號ID | appId | string[1,32] | 是 | 支付分公眾賬號ID,固定配置:wxd8f3793ea3b935b8。 示例值:wxd8f3793ea3b935b8 |
路徑 | path | string[1,64] | 是 | 固定配置:pages/use/use 示例值:pages/use/use |
+業(yè)務參數(shù) | extraData | Object | 是 | 需要傳遞給支付分的業(yè)務數(shù)據(jù)。 |
wx.navigateToMiniProgram({
appId: 'wxd8f3793ea3b935b8',
path: 'pages/use/use',
extraData: {
mch_id: '1230000109',
package: 'XXXXXXXX',
timestamp: '1530097563',
nonce_str: 'zyx53Nkey8o4bHpxTQvd8m7e92nG5mG2',
sign_type: 'HMAC-SHA256',
sign: '029B52F67573D7E3BE74904BF9AEA'
},
success() {
//dosomething
},
fail() {
//dosomething
},
complete() {
//dosomething
}
});
觸發(fā)場景:?用戶從商戶小程序頁面進入到支付分后再返回到商戶小程序頁面。
返回參數(shù):商戶小程序可在 App.onLaunch,App.onShow 中獲取到這份數(shù)據(jù)。
參數(shù)名 | 變量 | 類型[長度限制] | 必填 | 描述 |
---|---|---|---|---|
業(yè)務參數(shù) | query_id | string[1,64] | 是 | 單據(jù)查詢id,對應【查詢訂單】接口中入?yún)uery_id。 示例值:XXXXXXXX |
注意: 只有用戶點擊支付分頁面內(nèi)返回按鈕時,才會帶上返回參數(shù);如果用戶點擊頁面左上角的返回圖標按鈕,則不會帶上返回參數(shù)。
// app.js
onShow(res) {
if (res.scene === 1038) { // 場景值1038:從被打開的小程序返回
const { appId, extraData } = res.referrerInfo;
if (appId === miniprogram_appid) { // miniprogram_appid由【創(chuàng)建訂單】返回,建議檢查是否等于appId,不強制
let query_id = extraData.query_id;
let result = this.queryOrderStatus(query_id);
if (result) {
// 成功
} else {
// 失敗
}
}
}
}
?
/**
* 查詢訂單狀態(tài)函數(shù)
* 由商家后臺服務提供
* @param query_id {string
} 單據(jù)id,可以在接口【查詢訂單】進行單據(jù)查詢
*/
queryOrderStatus: function(query_id) {
// 商家小程序向商家后臺服務請求查詢訂單狀態(tài),
// 這里的前后端接口和數(shù)據(jù)協(xié)議由商家側(cè)設計
// 函數(shù)返回查詢結果,這里以布爾值true代表成功,布爾值false代表失敗
}