微信垫资还款

更新时间:2024.11.04

该接口可以实现从商户的业务跳转至还款小程序。现在支持商户业务类型为小程序和App。

未接入垫资功能的商户无需调用

1. 小程序调用请求说明

支持商户: 【普通服务商】

接口名称: 参照官网用< navigator>组件实现跳转 https://developers.weixin.qq.com/miniprogram/dev/component/navigator.html

是否需要证书:

微信还款服务小程序AppID为:wx5e73c65404eee268

微信还款服务小程序小程序路径为:pages/invest_list/invest_list

微信还款服务小程序小程序username为:gh_5e259b7a73b1

extraData参数说明

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-idpath为固定值,分别是还款小程序的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调用请求说明

支持商户: 【普通服务商】

接口名称: App拉起小程序标准流程参考《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            // 对应小程序组件 <button open-type="launchApp"> 中的 app-parameter 属性
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" (各业务自己的包名)(新增项)>