商户进件
特约商户进件
基础支付
JSAPI支付
APP支付
H5支付
Native支付
小程序支付
合单支付
付款码支付
经营能力
支付即服务
点金计划
行业方案
电商收付通(商户进件)
电商收付通(普通支付)
电商收付通(合单支付)
电商收付通(分账)
电商收付通(补差)
电商收付通(退款)
电商收付通(余额查询)
电商收付通(商户提现)
电商收付通(跨境付款)
电商收付通(下载账单)
智慧商圈
微信支付分停车服务
营销工具
代金券
商家券
委托营销
支付有礼
小程序发券插件
H5发券
图片上传(营销专用)
现金红包
资金应用
分账
连锁品牌分账
风险合规
商户开户意愿确认
消费者投诉2.0
商户违规通知回调
其他能力
图片上传
视频上传
微信支付平台证书

微信垫资还款API

最新更新时间:2021.11.29 版本说明


该接口可以实现从商户的业务跳转至还款小程序。现在支持商户业务类型为小程序和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 appid string[1,32] 车主服务小程序appid,固定值:wx5e73c65404eee268
示例值:wx5e73c65404eee268
子商户应用ID sub_appid string[1,32] 子商户号绑定的服务号,小程序,APP的appid(需要在服务商的商户平台为子商户绑定)
示例值:wxcbda96de0b165489
商户号   mchid string[1,32] 微信支付分配的商户号
示例值:1900009231
子商户号 sub_mch_id string[1,32] 子商户号
示例值:1900000109
随机字符串 nonce_str string[1,32] 随机字符串,不长于32位。
示例值:5K8264ILTKCH16CQ2502SI8ZNMTM67VS
用户标识 openid string[1,32] 此参数必传,用户在商户appid下的唯一标识。
示例值:oUpF8uMEb4qRXf22hE3X68TekukE
用户子标识 sub_openid string[1,32] 此参数必传,用户在子商户appid下的唯一标识。openid和sub_openid可以选传其中之一,如果选择传sub_openid,则必须传sub_appid
示例值:oUpF8uMuAJO_M2pxb1Q9zNjWeS6o

注意:(此处的app-id和path为固定值,分别是还款小程序的appid和还款页面):


 <navigator  target="miniProgram" open-type="navigate" app-id="wx5e73c65404eee268 " path="pages/invest_list/invest_list" extra-data="{{extraData}}" version="release">跳转到还款小程序

var extraData = {
appid:wxcbda96de0b165486,
sub_appid:wxcbda96de0b165482,
mchid:1900009231,
sub_mchid:1900009232,
openid:'oUpF8uMEb4qRXf22hE3X68TekukE',
nonce_str:5K8264ILTKCH16CQ2502SI8ZNMTM67VS}

小程序返回参数

无数据


2. APP调用请求说明

接口说明

适用对象:服务商

接口名称: APP拉起小程序标准流程参考《APP拉起小程序功能


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

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

接口参数

Android 第三方 app 需要处理 ShowMessageFromWX.req 的微信回调,iOS 则需要将 appId 添加到第三方 app 工程所属的 plist 文件 URL types 字段。

参数名 变量 类型[长度限制] 必填 描述
应用ID appid string[1,32] 微信支付分配的公众账号id
示例值:wxcbda96de0b165486
子商户应用ID sub_appid string[1,32] 子商户号绑定的服务号,小程序,APP的appid(需要在服务商的商户平台为子商户绑定)
示例值:wxcbda96de0b165489
商户号   mchid string[1,32] 微信支付分配的商户号
示例值:1900009231
子商户号 sub_mch_id string[1,32] 子商户号
示例值:1900000109
随机字符串 nonce_str string[1,32] 随机字符串,不长于32位。
示例值:5K8264ILTKCH16CQ2502SI8ZNMTM67VS
用户标识 openid string[1,32] 此参数必传,用户在商户appid下的唯一标识。openid和sub_openid可以选传其中之一,如果选择传sub_openid,则必须传sub_appid
示例值:oUpF8uMuAJO_M2pxb1Q9zNjWeS6o
用户子标识 sub_openid string[1,32] 此参数必传,用户在子商户appid下的唯一标识。openid和sub_openid可以选传其中之一,如果选择传sub_openid,则必须传sub_appid
示例值:oUpF8uMuAJO_M2pxb1Q9zNjWeS6o


String appId = "wx5e73c65404eee268"; // 填写当前商户APP的APPID
IWXAPI api = WXAPIFactory.createWXAPI(context, appId);
WXLaunchMiniProgram.Req req = new WXLaunchMiniProgram.Req();
req.userName = "gh_5e259b7a73b1"; // 固定值,还款小程序原始id
//拉起小程序页面的可带参路径,不填默认拉起小程序首页
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);
    
WXLaunchMiniProgramReq *launchMiniProgramReq = [WXLaunchMiniProgramReq object];
launchMiniProgramReq.userName =@"gh_5e259b7a73b1"; // 固定值,还款小程序原始id
launchMiniProgramReq.path = @"pages/invest_list/invest_list?mch_id=1900009231&appid=wxcbda96de0b165486&nonce_str=5K8264ILTKCH16CQ2502SI8ZNMTM67VS &openid=oUpF8uMEb4qRXf22hE3X68TekukE=weixin"; //拉起小程序页面的可带参路径,不填默认拉起小程序首页
launchMiniProgramReq.miniProgramType = WXMiniProgramTypeRelease; //拉起小程序的类型
return [WXApi sendReq:launchMiniProgramReq];
    

APP返回参数

(用户授权完成之后,会跳转回到商户的APP,暂时不返回参数。商户侧APP接收到客户端回调后再次调用用户状态查询接口获取用户的最新状态 ):


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的返回机制,会导致这里有体验问题,需要在配置文件里面的AndroidManifest.xml里面增加这两项配置:
<activity
android:name="com.diipo.pandaspeed.wxapi.WXEntryActivity"(注意这里红色部分需要改成自己的包名)
android:exported="true"
android:label="@string/app_name"
android:launchMode="singleTask"(新增项)
android:taskAffinity="com.diipo.pandaspeed" (各业务自己的包名)(新增项)>

                                

-(void)onResp:(BaseResp *)resp 
  {
       if ([resp isKindOfClass:[WXLaunchMiniProgramResp class]])
       {
            NSString *string = resp.extMsg;
            // 对应小程序组件 <button open-type="launchApp"> 中的 app-parameter 属性
       }
  } 
                                


技术咨询

文档反馈