该接口可以实现从商户的业务跳转至还款小程序。现在支持商户业务类型为小程序和App。
1. 小程序调用请求说明
微信还款服务小程序AppID为:wx5e73c65404eee268
微信还款服务小程序小程序路径为:pages/invest_list/invest_list
微信还款服务小程序小程序username为:gh_5e259b7a73b1
appid
必填 string(32)
车主服务小程序AppID,固定值:wx5e73c65404eee268
sub_appid
选填 string(32)
子商户号绑定的服务号,小程序,App的AppID(需要在服务商的商户平台为子商户绑定)
mchid
必填 string(32)
微信支付分配的商户号
sub_mch_id
必填 string(32)
子商户号
nonce_str
必填 string(32)
随机字符串,不长于32位。
openid
选填 string(32)
此参数必传,用户在商户AppID下的唯一标识。
sub_openid
选填 string(32)
此参数必传,用户在子商户AppID下的唯一标识。OpenID和sub_openid
可以选传其中之一,如果选择传sub_openid
,则必须传sub_appid
| 此处的app-id 和path 为固定值,分别是还款小程序的AppID和还款页面 |
|
示例代码
1<navigator target="miniProgram" open-type="navigate" app-id="wx5e73c65404eee268 " path="pages/invest_list/invest_list" extra-data="{{extraData}}" version="release">跳转到还款小程序
2var extraData = {
3appid:wxcbda96de0b165486,
4sub_appid:wxcbda96de0b165482,
5mchid:1900009231,
6sub_mchid:1900009232,
7openid:'oUpF8uMEb4qRXf22hE3X68TekukE',
8nonce_str:5K8264ILTKCH16CQ2502SI8ZNMTM67VS}
小程序返回参数
2. App调用请求说明
微信还款服务小程序小程序路径为:pages/invest_list/invest_list
微信还款服务小程序小程序username为:gh_5e259b7a73b1
接口参数
Android 第三方 App 需要处理 ShowMessageFromWX.req 的微信回调,iOS 则需要将 AppID 添加到第三方 App 工程所属的 plist 文件 URL types 字段。
appid
必填 string(32)
微信支付分配的公众账号ID
sub_appid
选填 string(32)
子商户号绑定的服务号,小程序,App的AppID(需要在服务商的商户平台为子商户绑定)
mchid
必填 string(32)
微信支付分配的商户号
sub_mch_id
必填 string(32)
子商户号
nonce_str
必填 string(32)
随机字符串,不长于32位。
openid
选填 string(32)
此参数必传,用户在商户AppID下的唯一标识。OpenID和sub_openid
可以选传其中之一,如果选择传sub_openid
,则必须传sub_appid
sub_openid
选填 string(32)
此参数必传,用户在子商户AppID下的唯一标识。OpenID和sub_openid
可以选传其中之一,如果选择传sub_openid
,则必须传sub_appid
示例代码
iOS
1`WXLaunchMiniProgramReq *launchMiniProgramReq = [WXLaunchMiniProgramReq object];
2launchMiniProgramReq.userName =@"gh_5e259b7a73b1"; // 固定值,还款小程序原始ID
3launchMiniProgramReq.path = @"pages/invest_list/invest_list?mch_id=1900009231&appid=wxcbda96de0b165486&nonce_str=5K8264ILTKCH16CQ2502SI8ZNMTM67VS &openid=oUpF8uMEb4qRXf22hE3X68TekukE&sub_appid=wxcbda96de0b165489&sub_mchid=1900000109=weixin"; //拉起小程序页面的可带参路径,不填默认拉起小程序首页
4launchMiniProgramReq.miniProgramType = WXMiniProgramTypeRelease; //拉起小程序的类型
5return [WXApi sendReq:launchMiniProgramReq];`
Android
1String appId = "wx5e73c65404eee268"; // 填写当前商户App的AppID
2IWXAPI api = WXAPIFactory.createWXAPI(context, appId);
3WXLaunchMiniProgram.Req req = new WXLaunchMiniProgram.Req();
4req.userName = "gh_5e259b7a73b1"; // 固定值,还款小程序原始ID
5//拉起小程序页面的可带参路径,不填默认拉起小程序首页
6req.path = "pages/invest_list/invest_list?mchid=1900009231&appid=wxcbda96de0b165486&nonce_str=5K8264ILTKCH16CQ2502SI8ZNMTM67VS&openid=oUpF8uMEb4qRXf22hE3X68TekukE&sub_appid=wxcbda96de0b165489&sub_mchid=1900000109=weixin;
7req.miniprogramType = WXLaunchMiniProgram.Req.MINIPTOGRAM_TYPE_RELEASE;
8api.sendReq(req);
App返回参数
(用户授权完成之后,会跳转回到商户的App,暂时不返回参数。商户侧App接收到客户端回调后再次调用用户状态查询接口获取用户的最新状态 ):
示例代码
iOS
1-(void)onResp:(BaseResp *)resp
2 {
3 if ([resp isKindOfClass:[WXLaunchMiniProgramResp class]])
4 {
5 NSString *string = resp.extMsg;
6
7 }
8 }
Android
1public void onResp(BaseResp resp) {
2 Log.i(TAG,"--->>>onResp:");
3 int result = 0;
4 isSucc =false;
5 Toast.makeText(this, "baseresp.getType = " + resp.getType(), Toast.LENGTH_SHORT).show();
6 switch (resp.errCode) {
7 case BaseResp.ErrCode.ERR_OK:
8 isSucc = true;
9 result = R.string.errcode_success;
10 break;
11 case BaseResp.ErrCode.ERR_USER_CANCEL:
12 result = R.string.errcode_cancel;
13 break;
14 case BaseResp.ErrCode.ERR_AUTH_DENIED:
15 result = R.string.errcode_deny;
16 break;
17 case BaseResp.ErrCode.ERR_UNSUPPORT:
18 result = R.string.errcode_unsupported;
19 break;
20 default:
21 result = R.string.errcode_unknown;
22 break;
23 }
24Toast.makeText(this, result, Toast.LENGTH_LONG).show();
25}
26注意:由于Android的返回机制,会导致这里有体验问题,需要在配置文件里面的AndroidManifest.xml里面增加这两项配置:
27<activity
28android:name="com.diipo.pandaspeed.wxapi.WXEntryActivity"(注意这里红色部分需要改成自己的包名)
29android:exported="true"
30android:label="@string/app_name"
31android:launchMode="singleTask"(新增项)
32android:taskAffinity="com.diipo.pandaspeed" (各业务自己的包名)(新增项)>