APP调起签约api

更新时间:2024.12.30

1、APP纯签约-预签约接口

场景介绍

外部App拉起微信客户端发起签约前,需先后台调⽤此接⼝完成预签约,获取pre_entrustweb_id,再拉起微信客户端,完成签约,返回App。

注意:

  • 该业务接口暂未全面开放,暂只支持由微信支付运营人员代为申请,如有需求请咨询与您对接的微信支付运营人员。如无对接的微信支付人员,请等待产品全面开放,我们将另行通知。

接口调用请求说明

接口

https://api.mch.weixin.qq.com/papay/partner/preentrustweb

请求方式

POST

是否需要证书

请求参数

字段名

字段

必填

类型

示例值

说明

请求appid

appid

String(32)

wxcbda96de0b165486

appid是商户在微信申请公众号或移动应用成功后分配的账号ID,登录平台为mp.weixin.qq.com或open.weixin.qq.com

商户号

mch_id

String(32)

1200009811

商户号是商户在微信申请微信支付成功后分配的账号ID,登录平台为pay.weixin.qq.com

特约商户APPID

sub_appid

String(32)

wxcbda96de0b165489

子商户号绑定的APP的appid(非必填,如需操作,需要服务商在商户平台为子商户绑定)

特约商户号

sub_mch_id

String(32)

1900000109

子商户号

模板id

plan_id

String(28)

12535

协议模板id,设置路径见开发步骤

签约协议号

contract_code

String(128)

100000

商户侧的签约协议号,由商户生成

请求序列号

request_serial

int64

1000

商户请求签约时的序列号,要求唯一性。序列号主要用于排序,不作为查询条件,纯数字,范围不能超过int64的范围(9223372036854775807)

用户账户展示名称

contract_display_account

String(128)

微信代扣

签约用户的名称,用于页面展示,,参数值不支持UTF8非3字节编码的字符,例如表情符号,所以请勿传微信昵称到该字段

回调通知url

notify_url

String

https://weixin.qq.com

用于接收签约成功消息的回调通知地址,以http或https开头。

版本号

version

string

1.0

固定值1.0

签名类型

sign_type

String(32)

MD5

MD5或者HMAC-SHA256

签名

sign

String(32)

C380BEC2BFD727A4B6845133519F3AD6

详见签名生成算法

时间戳

timestamp

String(10)

1414488825

系统当前时间,10位

以下字段为非必填项,用来控制签约页面结束后的返回路径(不传此参数,则签约完成后停留在微信内):

返回app

return_app

String

Y

Y表示返回app, 不填则不返回 注:签约参数appid必须为发起签约的app所有,且在微信开放平台注册过。
安卓暂不支持返回APP

请求示例:

1<xml>
2<appid>wxcbda96de0b165486</appid>
3<mch_id>1200009811</mch_id>
4<sub_appid>wxcbda96de0b165486</sub_appid>
5<sub_mch_id>1200009811</sub_mch_id>
6<plan_id>12535</plan_id>
7<contract_code>100000</contract_code>
8<request_serial>1000</request_serial>
9<contract_display_account>微信代扣</contract_display_account>
10<notify_url>https://weixin.qq.com</notify_url>
11<version>1.0</version>
12<sign>C380BEC2BFD727A4B6845133519F3AD6</sign>
13<timestamp>1414488825</timestamp>
14<return_app>Y</return_app>
15</xml>

返回参数

字段名

字段

必填

类型

示例值

说明

返回状态码

result_code

String(16)

SUCCESS

SUCCESS/FAIL此字段是通信标识,⾮业务标识, 业务结果是否成功需要查看result_code来判断

返回信息

return_msg

String(128)

参数解析失败

返回信息,如⾮空,为错误原因

以下字段在return_code为SUCCESS的时候返回

字段名

字段

必填

类型

示例值

说明

业务结果

return_code

String(16)

SUCCESS

SUCCESS/FAIL

错误代码

err_code

String(32)

SIGN_ERROR

错误码

错误代码描述

err_code_des

String(32)

 接口返回错误

错误码描述

请求appid

appid

String(32)

wxcbda96de0b165486

appid是商户在微信申请公众号或移动应用成功后分配的账号ID,登录平台为mp.weixin.qq.com或open.weixin.qq.com

商户号

mch_id

String(32)

1200009811

商户号是商户在微信申请微信支付成功后分配的账号ID,登录平台为pay.weixin.qq.com

特约商户APPID

sub_appid

String(32)

wxcbda96de0b165489

子商户号绑定的APP的appid(非必填,如需操作,需要服务商在商户平台为子商户绑定)

特约商户号

sub_mch_id

String(32)

1900000109

子商户号

签名

sign

String(32)

C380BEC2BFD727A4B6845133519F3AD6

详见签名生成算法

随机字符串

nonce_str

String(32)

5K8264ILTKCH16CQ2502SI8ZNMTM67VS

随机字符串,不⻓于32位。推荐随机数生成

以下字段在return_code 、result_code都为SUCCESS时有返回

字段名

字段

必填

类型

示例值

说明

预签约id

pre_entrustweb_id

String(128)

5778aad8fbd11b3846978993fedf2cb8d6c8f86ea809389b2bc30c4867d563db1566876 267UpxT91EYRKY9nltAsZzXixCkFIGYnV2V

预签约id

返回示例:

1<xml>
2<return_code><![CDATA[SUCCESS]]></return_code>
3<return_msg><![CDATA[OK]]></return_msg>
4<result_code><![CDATA[SUCCESS]]></result_code>
5<appid><![CDATA[wxcbda96de0b165486]]></appid>
6<mch_id><![CDATA[10000098]]></mch_id>
7<sub_appid><![CDATA[wxcbda96de0b165486]]></sub_appid>
8<sub_mch_id><![CDATA[10000098]]></sub_mch_id>
9<nonce_str><![CDATA[IITRi8Iabbblz1Jc]]></nonce_str>
10<sign><![CDATA[E1EE61A91C8E90F299DE6AE075D60A2D]]></sign>
11<pre_entrustweb_id><![CDATA[5778aad8fbd11b3846978993fedf2cb8d6c8f86ea809389b2bc30c4867d563db1566876
12267UpxT91EYRKY9nltAsZzXixCkFIGYnV2V]]></pre_entrustweb_id>
13</xml>

错误码

名称

描述

原因

解决方案

SYSTEMERROR

接⼝返回错误

系统超时

请使用相同参数再次调⽤API

PARAMERROR

参数错误

请求参数未按指引进⾏填写

请根据接⼝返回的详细信息检查您的程序

SIGNERROR

签名错误

请求中的签名错误

请根据指引生成正确签名

PAYAUTHERROR

权限校验错误

商户号产品权限校验错误

确认商户委托代扣权限权限

2、APP纯签约-签约接口

场景介绍

外部App可通过此能力,拉起微信客户端,完成签约后后,返回App。

接入流程

一、该接口需要额外申请OpenBusinessWebview权限,请联系对接您的运营同学协助申请

邮件模板如下:

标题:OpenBusinessWebview权限申请_APP纯签约

正文:

(1)说明使用背景

2)sub_appid、sub_mch_id(sub_appid和sub_mch_id需要有绑定关系)

二、在微信开放平台(open.weixin.qq.com)注册APP信息

三、在开放平台-资源中心下载SDK

四、按照下面的接口指引文档完成对接

请求参数

字段名

字段

必填

类型

示例值

说明

预签约id

pre_entrustweb_id

String(128)

5778aad8fbd11b3846978993fedf2cb8d6c8f86ea809389b2bc30c4867d563db1566876 267UpxT91EYRKY9nltAsZzXixCkFIGYnV2V

预签约id

iOS客户端接入代码示例:

1  
2WXOpenBusinessWebViewReq *req = [[WXOpenBusinessWebViewReq alloc] init];
3req.businessType = 12; //固定值
4NSMutableDictionary *queryInfoDic = [NSMutableDictionary dictionary];
5[queryInfoDic setObject:"5778aadY9nltAsZzXixCkFIGYnV2V" forKey:"pre_entrustweb_id"];
6req.queryInfoDic = queryInfoDic;
7[WxApi sendReq:req];
8

Android客户端接入代码示例:

1  
2WXOpenBusinessWebview.Req req = new WXOpenBusinessWebview.Req();
3req.businessType = 12; // 固定值
4HashMap  queryInfo = new HashMap<>();
5queryInfo.put("pre_entrustweb_id","5778aadY9nltAsZzXixCkFIGYnVV1";);
6req.queryInfo = queryInfo;
7api.sendReq(req);