支付中签约

更新时间:2024.11.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

签约商户号

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

指定支付方式

limit_pay

string[1,32]

no_credit:指定不能使用信用卡支付
示例值:no_credit

用户标识

openid

string[1,128]

trade_type=JSAPI,此参数必传,用户在商户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

请求示例:

XML

1<xml> 
2 <appid>wxcbda96de0b165486</appid>  
3 <mch_id>1200009811</mch_id> 
4 <contract_mchid>1200009811</contract_mchid>  
5 <contract_appid>wxcbda96de0b165486</contract_appid> 
6 <out_trade_no>123456</out_trade_no> 
7 <device_info>013467007045764</device_info> 
8 <nonce_str>5K8264ILTKCH16CQ2502SI8ZNMTM67VS</nonce_str>
9 <body>Ipad mini 16G 白色</body>
10 <detail>Ipad mini 16G 白色</detail>
11 <notify_url>https://weixin.qq.com</notify_url>
12 <total_fee>888</total_fee>
13 <spbill_create_ip>123.12.12.123</spbill_create_ip>
14 <trade_type>JSAPI</trade_type>
15 <plan_id>123</plan_id>
16 <contract_code>100001256</contract_code>
17 <request_serial>1000</request_serial> 
18 <contract_display_account>微信代扣</contract_display_account> 
19 <contract_notify_url>https://yoursite.com</contract_notify_url> 
20 <sign>C380BEC2BFD727A4B6845133519F3AD6</sign> 
21</xml>

返回参数

参数名

变量

类型[长度限制]

必填

描述

返回状态码

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

预支付交易会话标识

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 <result_code><![CDATA[SUCCESS]]></result_code>
4 <appid><![CDATA[wxcbda96de0b165486]]></appid>
5 <mch_id><![CDATA[1200009811]]></mch_id>
6 <prepay_id><![CDATA[wx201410272009395522657a690389285100]]></prepay_id>
7 <sign><![CDATA[E1EE61A91C8E90F299DE6AE075D60A2D]]></sign>
8 <trade_type><![CDATA[JSAPI]]></trade_type>
9 <code_url><![CDATA[weixin://wxpay/s/An4baqw]]></code_url>
10 <plan_id><![CDATA[123]]></plan_id>
11 <out_trade_no><![CDATA[123456]]></out_trade_no>
12</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

商户权限校验失败

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

 

反馈
咨询
目录
置顶