申请扣款

场景介绍

委托代扣可应用于定期扣款或需事后扣款以期提高效率的场景。例如但不限于,会员制缴费、水电煤缴费、黄钻绿钻增值服务、打车类软件、停车场或高速公路无人缴费、理财通基金定投、信用卡还款等通过用户授权给商户,进行委托扣款的场景。
注:扣费请求首先按签约协议中记录的优先支付方式扣费,否则依次按以下顺序扣费:零钱、信用卡、借记卡
注意:对于自动续费的代扣申请,微信将延迟24小时进行扣款(首次签约可在签约后12小时内立即扣款成功,不受此规则限制)

接口调用请求说明

请求Url https://api.mch.weixin.qq.com/pay/pappayapply
是否需要证书
请求方式 post
返回参数说明 扣款接口请求成功,返回success仅代表扣款申请受理成功,不代表扣款成功。扣款是否成功以支付通知的结果为准。

请求参数

字段名 变量名 必填 类型 示例值 说明

请求appid

appid

String(32)

wxcbda96de0b165486

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

商户号

mch_id

String(32)

10000098

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

随机字符串

nonce_str

String(32)

5K8264ILTKCH16CQ2502SI8ZNMTM67VS

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

签名

sign

String(32)

C380BEC2BFD727A4B6845133519F3AD6

签名,详见签名生成算法

商品描述

body

String(32)

水电代扣

商品或支付单简要描述

商品详情

detail

String(8192)

水电代扣:A
水电代扣:B
水电代扣:C

商品名称明细列表

附加数据

attach

String(128)

自定义参数

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

商户订单号

out_trade_no

String(32)

1217752501201407033233368018

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

总金额

total_fee

int

888

订单总金额,单位为分,只能为整数,详见支付金额

货币类型

fee_type

String(16)

CNY

符合ISO 4217标准的三位字母代码,默认人民币:CNY

终端IP

spbill_create_ip

String(16)

8.8.8.8

调用微信支付API的机器IP

商品标记

goods_tag

String(32)

WXG

商品标记,代金券或立减优惠功能的参数,说明详见代金券或立减优惠

回调通知url

notify_url

String

http://yoursite.com/wxpay.html

接受扣款结果异步回调通知的url

交易类型

trade_type

String

PAP

交易类型PAP-微信委托代扣支付

委托代扣协议id

contract_id

String

Wx15463511252015071056489715

签约成功后,微信返回的委托代扣协议id

电子发票入口开放标识 receipt String(8) Y Y,传入Y时,支付成功消息和支付详情页将出现开票入口。需要在微信支付商户平台或微信公众平台开通电子发票功能,传此字段才可生效

数据示例:

<xml>
<mch_id>10000098</mch_id>
<appid>wxcbda96de0b165486</appid>
<nonce_str>5K8264ILTKCH16CQ2502SI8ZNMTM67VS</nonce_str>
<sign>C380BEC2BFD727A4B6845133519F3AD6</sign>
<body>水电代扣</body>
<out_trade_no>217752501201407033233368018</out_trade_no>
<total_fee>888</total_fee>
<spbill_create_ip>8.8.8.8</spbill_create_ip>
<notify_url>http://yoursite.com/wxpay.html</notify_url>
<contract_id>Wx15463511252015071056489715</contract_id>

</xml>

返回参数

字段名 变量名 必填 示例值 类型 说明

返回状态码

return_code

SUCCESS

String(16)

SUCCESS/FAIL
此字段是通信标识,非交易标识,交易是否成功需要查看result_code来判断

返回信息

return_msg

签名失败

String(128)

返回信息,如非空,为错误原因
签名失败
参数格式校验错误

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

字段名 变量名 必填 示例值 类型 说明

公众账号id

appid

wxcbda96de0b165486

String(32)

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

商户号

mch_id

10000098

String(32)

微信支付分配的商户号

随机字符串

nonce_str

5K8264ILTKCH16CQ2502SI8ZNMTM67VS

String(32)

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

签名

sign

C380BEC2BFD727A4B6845133519F3AD6

String(32)

生成签名方式详见签名生成详见签名生成算法

业务结果

result_code

SUCCESS

String(16)

SUCCESS/FAIL

错误代码

err_code

SIGN_ERROR

String(32)

错误码

错误代码描述

err_code_des

签名错误

String(32)

错误码描述

数据示例:

<xml>
<return_code><![CDATA[SUCCESS]]></return_code>
<return_msg><![CDATA[OK]]></return_msg>
<appid><![CDATA[wxcbda96de0b165486]]></wxappid> 
<mch_id><![CDATA[10000098]]></mch_id>
<nonce_str><![CDATA[IITRi8Iabbblz1Jc]]></nonce_str>
<sign><![CDATA[E1EE61A91C8E90F299DE6AE075D60A2D]]></sign>
<result_code><![CDATA[SUCCESS]]></result_code>

</xml>

错误码

名称

描述

原因

解决方案

SYSTEMERROR

接口返回错误

系统超时

系统异常,请使用相同参数重新调用接口

CONTRACT_NOT_EXIST

签约协议不存在

签约协议不存在,用户已解约

请检查签约协议号是否正确,是否已解约

PARAM_ERROR

参数错误

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

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

ORDERPAID

订单已支付

订单号重复

请确认该订单号是否重复支付,如果是新单,请使用新订单号提交

ORDERCLOSED

订单已关闭

该订单已关

商户订单号异常,请重新下单支付

SIGN_ERROR

签名错误

参数签名结果不正确

请检查签名参数和方法是否都符合签名算法要求

APPID_MCHID_NOT_MATCH

appid和mch_id不匹配

appid和mch_id不匹配

请确认appid和mch_id是否匹配

ORDER_ACCEPTED

扣款请求已受理,请勿重复发起

该订单已发起过扣款申请,无需再次请求

请调用查询订单接口查看订单最新状态

CONTRACTERROR

协议已过期

协议已过期

请检查签约协议号是否已过期

INVALID_REQUEST

无效请求

无效请求,比如不是使用post方法等

请检查请求方式是否是post方法等

FREQUENCY_LIMITED

频率限制

频率限制

请检查接口请求频率是否超过限制

RULELIMIT

该笔交易存在风险

该笔交易可能因为风控策略被拦截

请联系用户,明确微信号是否有违规操作,如有疑问可联系微信客服接触风险控制