支付中签约

更新时间:2026.03.18 提示:本功能目前处于灰度测试阶段、暂未开放使用,待全量开放后将通过文档门户公告同步,感谢您的理解。

支付的同时完成代扣协议的签约。

开发流程介绍:

步骤1 请求支付中签约接口(参数见请求参数),获取预支付id(对应参数:prepay_id)此步骤需要根据不同支付方式选择不同的trade_type(trade_type详细介绍请参见交易类型规则)。

 

步骤2 按照不同支付方式的不同规则,按要求唤起微信支付收银台,不同的支付方式,对于唤起微信支付收银台的方法要求不同,具体可以参见以下表格:

扫码支付(NATIVE)详见:

扫码支付(NATIVE)在线文档

公众号支付(JSAPI)详见:

公众号支付(JSAPI)在线文档

App支付(APP)详见:

App支付(APP)在线文档

H5(MWEB)支付详见:

H5(MWEB)在线文档

小程序(JSAPI)支付详见:

小程序支付在线文档

步骤3 用户完成支付,微信通过支付中签约接口中商户上传的通知回调地址(对应参数:notify_url),将支付结果返回给商户,同时将签约结果通过contract_notify_url通知给商户,两次通知皆为异步通知。

接口说明

适用对象:服务商

请求URL: https://api.mch.weixin.qq.com/pay/contractorder

请求方式: POST

是否需要证书: 否

请求参数

参数名

变量

类型[长度限制]

必填

描述

应用ID

appid

string[1,32]

由微信生成的应用ID,全局唯一。
请求查单接口时请注意APPID的应用属性,例如公众号场景下,需使用应用属性为公众号的APPID
示例值:wxcbda96de0b165486

商户号

mch_id

string[1,32]

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

子商户号

sub_mch_id

string[1,32]

微信支付分配的子商户号

示例值:1230000109

子商户应用ID

sub_appid

string[1,32]

由微信生成的应用ID,全局唯一。
请求查单接口时请注意APPID的应用属性,例如公众号场景下,需使用应用属性为公众号的APPID

示例值:wxd678efh567hg6787

签约商户号

contract_mchid

string[1,32]

签约商户号,必须与mch_id一致
示例值:1200009811

签约appid

contract_appid

string[1,32]

签约公众号,必须与appid一致
示例值:wxcbda96de0b165486

商户订单号

out_trade_no

string[1,32]

商户系统内部的订单号,32个字符内、可包含字母,其他说明见商户订单号
示例值:123456

设备号

device_info

string[1,32]

终端设备号(门店号或收银设备ID),注意:PC网页或公众号内支付请传"WEB"
示例值:013467007045764

随机字符串

nonce_str

string[1,32]

随机字符串,不长于32位.
示例值:5K8264ILTKCH16CQ2502SI8ZNMTM67VS

商品描述

body

string[1,127]

商品或支付单简要描述
示例值:Ipad mini 16G 白色

商品详情

detail

string[1,8192]

商品名称明细列表
示例值:Ipad mini 16G 白色

附加数据

attach

string[1,127]

附加数据,在查询API和支付通知中原样返回,该字段主要用于商户携带订单的自定义数据
示例值:深圳分店

回调通知url

notify_url

string[1,256]

回调通知地址,以http或https开头,通知url必须为外网可访问的url,不能携带参数。
示例值:https://weixin.qq.com

总金额

total_fee

int

订单总金额,单位为分
示例值:888

终端IP

spbill_create_ip

string[1,16]

用户的客户端IP ,同时支持IPV4和IPV6。
示例值:123.12.12.123

交易起始时间

time_start

string[1,14]

订单生成时间,格式为yyyyMMddHHmmss,如2009年12月25日9点10分10秒表示为20091225091010. 其他详见时间规则
示例值:20091225091010

交易结束时间

time_expire

string[1,14]

订单失效时间,格式为yyyyMMddHHmmss,如2009年12月27日9点10分10秒表示为20091227091010. 其他详见时间规则
示例值:20091227091010

商品标记

goods_tag

string[1,32]

商品标记,代金券或立减优惠功能的参数
示例值:WXG

交易类型

trade_type

string[1,16]

取值如下:JSAPI,NATIVE,APP,MWEB
示例值:JSAPI

商品ID

product_id

string[1,32]

trade_type=NATIVE,此参数必传. 此id为二维码中包含的商品ID,商户自行定义.
示例值:12235413214070356458058

用户标识

openid

string[1,128]

trade_type=JSAPI,此参数必传,用户在商户appid下的唯一标识.
示例值:oUpF8uMuAJO_M2pxb1Q9zNjWeS6o

用户子标识

sub_openid

string[1,128]

trade_type=JSAPI,此参数必传,用户在子商户AppID下的唯一标识。openid和sub_openid可以选传其中之一,如果选择传sub_openid,则必须传sub_appid。

示例值:oUpF8uMuAJO_M2pxb1Q9zNjWeS6o

模板id

plan_id

int

协议模板id
示例值:123

签约协议号

contract_code

string[1,64]

商户侧的签约协议号,由商户生成,只能是数字、大小写字母的描述且在同一个商户号下唯一。
示例值:100001256

请求序列号

request_serial

int 64

商户请求签约时的序列号,要求唯一性。禁止使用0开头,序列号主要用于排序,不作为查询条件,纯数字,范围不能超过int 64的范围(9223372036854775807)。
示例值:1695

用户账户展示名称

contract_display_account

string[1,64]

签约用户的名称,用于支付中签约页面的“开通账号”处进行展示,参数值不支持UTF8非3字节编码的字符,例如表情符号,所以请勿传微信昵称到该字段
示例值:123

签约信息通知url

contract_notify_url

string[1,256]

签约信息回调通知的url,以http或https开头,通知url必须为外网可访问的url,不能携带参数。
示例值:https://yoursite.com

签名

sign

string[1,32]

签名规则详见签名生成算法 注:所有参数都是encode前做签名
示例值:E1EE61A91C8E90F299DE6AE075D60A2D

签名

sign_type

string[1,16]

签名类型,默认为MD5,支持HMAC-SHA256和MD5。

示例值:MD5

请求示例:

XML

1<xml>
2  <appid><![CDATA[wxa9d9651ae82ec4b9]]></appid>
3  <attach><![CDATA[attach]]></attach>
4  <body><![CDATA[虚拟商城订单]]></body>
5  <contract_appid><![CDATA[wxa9d9651ae82ec4b9]]></contract_appid>
6  <contract_code><![CDATA[vmall_251117154844_993_2719]]></contract_code>
7  <contract_display_account><![CDATA[123]]></contract_display_account>
8  <contract_mchid><![CDATA[2483224991]]></contract_mchid>
9  <contract_notify_url><![CDATA[https://mmpay.fun/notify_contract]]></contract_notify_url>
10  <fee_type><![CDATA[CNY]]></fee_type>
11  <mch_id><![CDATA[2483224991]]></mch_id>
12  <nonce_str><![CDATA[vmall_251117154844_993_2719]]></nonce_str>
13  <notify_url><![CDATA[https://mmpay.woa.com/notify/vmall_251117154844_993_2719]]></notify_url>
14  <openid><![CDATA[oLTPCuIN5IN0yY9Laa-OIhELOI5o]]></openid>
15  <out_trade_no><![CDATA[vmall_251117154844_993_2719]]></out_trade_no>
16  <plan_id><![CDATA[2484170277]]></plan_id>
17  <request_serial><![CDATA[2511171548442719]]></request_serial>
18  <sign_type><![CDATA[MD5]]></sign_type>
19  <spbill_create_ip><![CDATA[21.36.98.108]]></spbill_create_ip>
20  <sub_mch_id><![CDATA[2483225001]]></sub_mch_id>
21  <total_fee><![CDATA[990]]></total_fee>
22  <trade_type><![CDATA[JSAPI]]></trade_type>
23</xml>
24

返回参数

参数名

变量

类型[长度限制]

必填

描述

返回状态码

return_code

string[1,16]

SUCCESS/FAIL
示例值:SUCCESS

返回信息

return_msg

string[1,128]

返回信息,如非空,为错误原因
如:签名失败 等。
示例值:签名失败

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

参数名

变量

类型[长度限制]

必填

描述

业务结果

result_code

string[1,16]

SUCCESS/FAIL
示例值:SUCCESS

应用ID

appid

string[1,32]

直连商户申请的公众号或移动应用appid。
示例值:wxcbda96de0b165486

商户号

mch_id

string[1,32]

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

随机字符串

nonce_str

string[1,32]

随机字符串,不长于32位.
示例值:5K8264ILTKCH16CQ2502SI8ZNMTM67VS

签名

sign

string[1,32]

签名规则详见签名生成算法 注:所有参数都是encode前做签名.
示例值:E1EE61A91C8E90F299DE6AE075D60A2D

错误代码

err_code

string[1,32]

错误返回的错误代码
示例值:SYSTEMERROR

错误代码描述

err_code_des

string[1,128]

错误返回的信息描述
示例值:系统错误

预签约结果

contract_result_code

string[1,16]

预签约结果
示例值:SUCCESS

预签约错误代码

contract_err_code

string[1,32]

预签约错误代码
示例值:Fail

预签约错误描述

contract_err_code_des

string[1,32]

预签约错误描述
示例值:已签约

以下字段在return_code 和result_code都为SUCCESS的时候有返回

参数名

变量

类型[长度限制]

必填

描述

签名

sign

string[1,32]

详见签名生成算法
示例值:C380BEC2BFD727A4B6845133519F3AD6

公众账号id

appid

string[1,32]

微信支付分配的公众账号id
示例值:wxcbda96de0b165486

商户号

mch_id

string[1,32]

微信支付分配的商户号
示例值:10000098

子商户号

sub_mch_id

string[1,32]

微信支付分配的商户号

示例值:10000098

子商户公众账号id

sub_appid

string[1,32]

微信支付分配的公众账号id

示例值:wxcbda96de0b165486

预支付交易会话标识

prepay_id

string[1,64]

微信生成的预支付回话标识,用于后续接口调用中使用,该值有效期为2小时.
示例值:wx201410272009395522657a690389285100

交易类型

trade_type

string[1,16]

调用接口提交的交易类型,取值如下:JSAPI,NATIVE,APP,MWEB
示例值:JSAPI

二维码链接

code_url

string[1,64]

trade_type为NATIVE是有返回,可将该参数值生成二维码展示出来进行扫码支付
示例值:weixin://wxpay/s/An4baqw

模板id

plan_id

int

商户在微信商户平台设置的代扣协议模板id
示例值:123

请求序列号

request_serial

int 64

商户请求签约时的序列号,商户侧须唯一,禁止使用0开头
示例值:1695

签约协议号

contract_code

string[1,64]

商户请求签约时传入的签约协议号,商户侧须唯一
示例值:1023658866

用户账户展示名称

contract_display_account

string[1,64]

签约用户的名称,用于页面展示
示例值:张三

支付跳转链接

mweb_url

string[1,64]

mweb_url为拉起微信支付收银台的中间页面,可通过访问该url来拉起微信客户端,完成支付,mweb_url的有效期为5分钟。
示例值:https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb?prepay_id=wx2016121516420242444321ca0631331346&package=1405458241

商户订单号

out_trade_no

string[1,32]

商户订单号
示例值:123456

返回示例:

正常示例

1<xml>
2  <return_code><![CDATA[SUCCESS]]></return_code>
3  <return_msg><![CDATA[OK]]></return_msg>
4  <result_code><![CDATA[SUCCESS]]></result_code>
5  <contract_result_code><![CDATA[SUCCESS]]></contract_result_code>
6  <mch_id><![CDATA[2483224991]]></mch_id>
7  <appid><![CDATA[wxa9d9651ae82ec4b9]]></appid>
8  <sub_mch_id><![CDATA[2483225001]]></sub_mch_id>
9  <prepay_id><![CDATA[wx17154911550067ff77a7d1fa103d900000]]></prepay_id>
10  <trade_type><![CDATA[JSAPI]]></trade_type>
11  <plan_id><![CDATA[2484170277]]></plan_id>
12  <request_serial><![CDATA[2511171548442719]]></request_serial>
13  <contract_code><![CDATA[vmall_251117154844_993_2719]]></contract_code>
14  <contract_display_account><![CDATA[123]]></contract_display_account>
15  <out_trade_no><![CDATA[vmall_251117154844_993_2719]]></out_trade_no>
16  <nonce_str><![CDATA[Ee23ucdgNPo8vxF2]]></nonce_str>
17  <sign><![CDATA[AD852D9A573BE6087F6DB931D798E730]]></sign>
18</xml>

错误码

错误码

描述

解决方案

SIGN_ERROR

签名错误

验证签名算法

PARAMETER FAIL

参数错误

验证参数

XML FAIL

XML格式错误

检查XML格式

RESULT NULL

查询为空

传入正确查询参数

MERCHANT PERMISSION ERROR

受理商户没有权限

确认商户权限

INVALID PLAN_ID

签约模板无效

检查正确模板id

CONTRACT_CODE DUPLICATION

该签约号已存在

contract_code已经被签约,请传入不重复的签约号

MERCHANT AUTHORITY ERROR

商户权限校验失败

联系相关接口人确认委托代扣权限

 

元宝AI
反馈
目录
置顶