最新更新時(shí)間:2021.11.29 版本說(shuō)明
該接口可以實(shí)現(xiàn)從商戶的業(yè)務(wù)跳轉(zhuǎn)至還款小程序。現(xiàn)在支持商戶業(yè)務(wù)類型為小程序和APP。
未接入墊資功能的商戶無(wú)需調(diào)用
適用對(duì)象:服務(wù)商
接口名稱:?參照官網(wǎng)用< navigator>組件實(shí)現(xiàn)跳轉(zhuǎn) https://developers.weixin.qq.com/miniprogram/dev/component/navigator.html
是否需要證書:否
微信還款服務(wù)小程序appid為:wx5e73c65404eee268
微信還款服務(wù)小程序小程序路徑為:pages/invest_list/invest_list
微信還款服務(wù)小程序小程序username為:gh_5e259b7a73b1
參數(shù)名 | 變量 | 類型[長(zhǎng)度限制] | 必填 | 描述 |
---|---|---|---|---|
小程序APPID | appid | string[1,32] | 是 | 車主服務(wù)小程序appid,固定值:wx5e73c65404eee268 示例值:wx5e73c65404eee268 |
子商戶應(yīng)用ID | sub_appid | string[1,32] | 否 | 子商戶號(hào)綁定的服務(wù)號(hào),小程序,APP的appid(需要在服務(wù)商的商戶平臺(tái)為子商戶綁定) 示例值:wxcbda96de0b165489 |
商戶號(hào) ? | mchid | string[1,32] | 是 | 微信支付分配的商戶號(hào) 示例值:1900009231 |
子商戶號(hào) | sub_mch_id | string[1,32] | 是 | 子商戶號(hào) 示例值:1900000109 |
隨機(jī)字符串 | nonce_str | string[1,32] | 是 | 隨機(jī)字符串,不長(zhǎng)于32位。 示例值:5K8264ILTKCH16CQ2502SI8ZNMTM67VS |
用戶標(biāo)識(shí) | openid | string[1,32] | 是 | 此參數(shù)必傳,用戶在商戶appid下的唯一標(biāo)識(shí)。 示例值:oUpF8uMEb4qRXf22hE3X68TekukE |
用戶子標(biāo)識(shí) | sub_openid | string[1,32] | 否 | 此參數(shù)必傳,用戶在子商戶appid下的唯一標(biāo)識(shí)。openid和sub_openid可以選傳其中之一,如果選擇傳sub_openid,則必須傳sub_appid 示例值:oUpF8uMuAJO_M2pxb1Q9zNjWeS6o |
注意:(此處的app-id和path為固定值,分別是還款小程序的appid和還款頁(yè)面):
<navigator target="miniProgram" open-type="navigate" app-id="wx5e73c65404eee268 " path="pages/invest_list/invest_list" extra-data="{{extraData}}" version="release">跳轉(zhuǎn)到還款小程序
var extraData = {
appid:wxcbda96de0b165486,
sub_appid:wxcbda96de0b165482,
mchid:1900009231,
sub_mchid:1900009232,
openid:'oUpF8uMEb4qRXf22hE3X68TekukE',
nonce_str:5K8264ILTKCH16CQ2502SI8ZNMTM67VS}
無(wú)數(shù)據(jù)
適用對(duì)象:服務(wù)商
接口名稱:?APP拉起小程序標(biāo)準(zhǔn)流程參考《APP拉起小程序功能》
微信還款服務(wù)小程序小程序路徑為:pages/invest_list/invest_list
微信還款服務(wù)小程序小程序username為:gh_5e259b7a73b1
Android 第三方 app 需要處理 ShowMessageFromWX.req 的微信回調(diào),iOS 則需要將 appId 添加到第三方 app 工程所屬的 plist 文件 URL types 字段。
參數(shù)名 | 變量 | 類型[長(zhǎng)度限制] | 必填 | 描述 |
---|---|---|---|---|
應(yīng)用ID | appid | string[1,32] | 是 | 微信支付分配的公眾賬號(hào)id 示例值:wxcbda96de0b165486 |
子商戶應(yīng)用ID | sub_appid | string[1,32] | 否 | 子商戶號(hào)綁定的服務(wù)號(hào),小程序,APP的appid(需要在服務(wù)商的商戶平臺(tái)為子商戶綁定) 示例值:wxcbda96de0b165489 |
商戶號(hào) ? | mchid | string[1,32] | 是 | 微信支付分配的商戶號(hào) 示例值:1900009231 |
子商戶號(hào) | sub_mch_id | string[1,32] | 是 | 子商戶號(hào) 示例值:1900000109 |
隨機(jī)字符串 | nonce_str | string[1,32] | 是 | 隨機(jī)字符串,不長(zhǎng)于32位。 示例值:5K8264ILTKCH16CQ2502SI8ZNMTM67VS |
用戶標(biāo)識(shí) | openid | string[1,32] | 否 | 此參數(shù)必傳,用戶在商戶appid下的唯一標(biāo)識(shí)。openid和sub_openid可以選傳其中之一,如果選擇傳sub_openid,則必須傳sub_appid 示例值:oUpF8uMuAJO_M2pxb1Q9zNjWeS6o |
用戶子標(biāo)識(shí) | sub_openid | string[1,32] | 否 | 此參數(shù)必傳,用戶在子商戶appid下的唯一標(biāo)識(shí)。openid和sub_openid可以選傳其中之一,如果選擇傳sub_openid,則必須傳sub_appid 示例值:oUpF8uMuAJO_M2pxb1Q9zNjWeS6o |
String appId = "wx5e73c65404eee268"; // 填寫當(dāng)前商戶APP的APPID
IWXAPI api = WXAPIFactory.createWXAPI(context, appId);
WXLaunchMiniProgram.Req req = new WXLaunchMiniProgram.Req();
req.userName = "gh_5e259b7a73b1"; // 固定值,還款小程序原始id
//拉起小程序頁(yè)面的可帶參路徑,不填默認(rèn)拉起小程序首頁(yè)
req.path = "pages/invest_list/invest_list?mchid=1900009231&appid=wxcbda96de0b165486&nonce_str=5K8264ILTKCH16CQ2502SI8ZNMTM67VS&openid=oUpF8uMEb4qRXf22hE3X68TekukE=weixin;
req.miniprogramType = WXLaunchMiniProgram.Req.MINIPTOGRAM_TYPE_RELEASE;
api.sendReq(req);
(用戶授權(quán)完成之后,會(huì)跳轉(zhuǎn)回到商戶的APP,暫時(shí)不返回參數(shù)。商戶側(cè)APP接收到客戶端回調(diào)后再次調(diào)用用戶狀態(tài)查詢接口獲取用戶的最新狀態(tài) ):
public void onResp(BaseResp resp) {
??Log.i(TAG,"--->>>onResp:");
??int result = 0;
??isSucc =false;
??Toast.makeText(this, "baseresp.getType = " + resp.getType(), Toast.LENGTH_SHORT).show();
??switch (resp.errCode) {
????case BaseResp.ErrCode.ERR_OK:
????isSucc = true;
????result = R.string.errcode_success;
????break;
??case BaseResp.ErrCode.ERR_USER_CANCEL:
????result = R.string.errcode_cancel;
????break;
??case BaseResp.ErrCode.ERR_AUTH_DENIED:
????result = R.string.errcode_deny;
????break;
??case BaseResp.ErrCode.ERR_UNSUPPORT:
????result = R.string.errcode_unsupported;
????break;
??default:
????result = R.string.errcode_unknown;
????break;
??}
Toast.makeText(this, result, Toast.LENGTH_LONG).show();
}
注意:由于Android的返回機(jī)制,會(huì)導(dǎo)致這里有體驗(yàn)問(wèn)題,需要在配置文件里面的AndroidManifest.xml里面增加這兩項(xiàng)配置:
<activity
android:name="com.diipo.pandaspeed.wxapi.WXEntryActivity"(注意這里紅色部分需要改成自己的包名)
android:exported="true"
android:label="@string/app_name"
android:launchMode="singleTask"(新增項(xiàng))
android:taskAffinity="com.diipo.pandaspeed" (各業(yè)務(wù)自己的包名)(新增項(xiàng))>