APP纯签约
更新时间:2024.11.14外部App拉起微信客户端发起签约前,需先后台调用预签约接口完成预签约,获取pre_entrustweb_id,再拉起微信客户端,完成签约,返回App。
|
步骤1:预签约接口
接口说明
适用对象:服务商
请求URL: https://api.mch.weixin.qq.com/papay/partner/preentrustweb
请求方式: POST
数据格式: XML
签名方式: HMAC-SHA256、MD5
是否需要证书: 否
请求参数
参数名 | 变量 | 类型[长度限制] | 必填 | 描述 |
---|---|---|---|---|
应用ID | appid | string[1,32] | 是 | 服务商申请的公众号或移动应用appid。 |
商户号 | mch_id | string[1,32] | 是 | 商户号是商户在微信申请微信支付成功后分配的账号ID,登录平台为pay.weixin.qq.com |
子商户应用ID | sub_appid | string[1,32] | 否 | 子商户号绑定的appid(非必填,如需操作,需要服务商在商户平台为子商户绑定) |
子商户号 | sub_mch_id | string[1,32] | 是 | 微信支付分配的子商户号 |
模板id | plan_id | string[1,28] | 是 | 协议模板id,设置路径见开发步骤。 |
签约协议号 | contract_code | string[1,128] | 是 | 商户侧的签约协议号,由商户生成,只能是数字、大小写字母的描述。 |
请求序列号 | request_serial | int64 | 是 | 商户请求签约时的序列号,要求唯一性。禁止使用0开头,序列号主要用于排序,不作为查询条件,纯数字,范围不能超过int64的范围(9223372036854775807)。 |
用户账户展示名称 | contract_display_account | string[1,128] | 是 | 签约用户的名称,用于页面展示,参数值不支持UTF8非3字节编码的字符,例如表情符号,所以请勿传微信昵称到该字段 |
回调通知url | notify_url | string[1,256] | 是 | 用于接收签约成功消息的回调通知地址,以http或https开头,通知url必须为外网可访问的url,不能携带参数。 |
版本号 | version | string[1,8] | 是 | 固定值1.0 |
签名类型 | sign_type | string[1,32] | 否 | MD5或者HMAC-SHA256,不填默认MD5 |
签名 | sign | string[1,64] | 是 | 详见签名生成算法 |
时间戳 | timestamp | string[1,10] | 是 | 系统当前时间,10位 |
返回app | return_app | string[1,1] | 否 | 用来控制签约页面结束后的返回路径(不传此参数,则签约完成后停留在微信内)。 |
请求示例:
XML
返回参数
参数名 | 变量 | 类型[长度限制] | 必填 | 描述 |
---|---|---|---|---|
返回状态码 | return_code | string[1,16] | 是 | SUCCESS/FAIL |
返回信息 | return_msg | string[1,128] | 否 | 返回信息,如非空,为错误原因 |
以下字段在return_code为SUCCESS的时候有返回
参数名 | 变量 | 类型[长度限制] | 必填 | 描述 |
---|---|---|---|---|
业务结果 | result_code | string[1,16] | 是 | SUCCESS/FAIL |
错误代码 | err_code | string[1,32] | 否 | 错误码 |
错误代码描述 | err_code_des | string[1,32] | 否 | 错误码描述 |
请求appid | appid | string[1,32] | 是 | 微信开放平台审核通过的应用APPID(请登录开放平台查看,注意与公众号的APPID不同) |
商户号 | mch_id | string[1,32] | 是 | 商户号是商户在微信申请微信支付成功后分配的账号ID,登录平台为http://pay.weixin.qq.com |
子商户公众账号ID | sub_appid | string[1,32] | 否 | 子商户号绑定的APP的appid(非必填,如需操作,需要服务商在商户平台为子商户绑定) |
子商户号 | sub_mch_id | string[1,32] | 是 | 微信支付分配的子商户号 |
签名 | sign | string[1,32] | 是 | 详见签名生成算法 |
随机字符串 | nonce_str | string[1,64] | 是 | 随机字符串,不长于32位。推荐随机数生成 |
以下字段在return_code 、result_code都为SUCCESS时有返回
参数名 | 变量 | 类型[长度限制] | 必填 | 描述 |
---|---|---|---|---|
预签约id | pre_entrustweb_id | string[1,128] | 是 | 预签约id,两个小时内有效 |
返回示例:
正常示例
错误码
错误码 | 描述 | 解决方案 |
---|---|---|
SYSTEMERROR | 接口返回错误 | 请使用相同参数再次调用API |
PARAMERROR | 参数错误 | 请根据接口返回的详细信息检查您的程序 |
SIGNERROR | 签名错误 | 请根据指引生成正确签名 |
PAYAUTHERROR | 权限校验错误 | 确认商户委托代扣权限权限 |
步骤2:签约接口
接入流程
一、该接口需要额外申请OpenBusinessWebview权限,请联系对接您的运营同学协助申请,具体参看接入流程
邮件模板如下:
标题:OpenBusinessWebview权限申请_APP纯签约
正文:
(1)说明使用背景
(2)appid、mchid(appid和mchid需要有绑定关系)
二、在微信开放平台(open.weixin.qq.com)注册APP信息
三、在开放平台-资源中心下载SDK:资源下载
四、按照下面的接口指引文档完成对接
接口说明
适用对象: 服务商
请求方式: POST
请求参数
参数名 | 变量 | 类型[长度限制] | 必填 | 描述 |
---|---|---|---|---|
预签约id | pre_entrustweb_id | string[1,128] | 是 | 预签约id |
接入代码示例:
IOS
Android