申请扣款

最新更新时间:2020.04.17 版本说明


委托代扣可应用于定期扣款或需事后扣款以期提高效率的场景。
例如但不限于,会员制缴费、水电煤缴费、黄钻绿钻增值服务、打车类软件、停车场或高速公路无人缴费、理财通基金定投、信用卡还款等通过用户授权给商户,进行委托扣款的场景。

注意:

• 扣费请求首先按签约协议中记录的优先支付方式扣费,否则按以下可用方式进行扣费:零钱、信用卡、借记卡(该顺序不固定,与用户的支付习惯有关)

• 在周期扣费类场景,扣费前需要确保为用户下发扣费前通知,详见《周期扣费

• 特殊情况:周期扣费为通知后24小时扣费方式情况下,如果用户为首次签约(包含解约后重新签约),从用户签约成功时间开始算,商户在12小时内发起的扣款,会被立即执行,无延迟。商户超过12小时以后发起的扣款,都按24小时扣费规则执行

• 同一个商户号+同一个商户订单号,只会扣款一次。但如果更换商户号,商户订单号不变,会扣款多次。

• 周期扣费为预扣费通知方式情况下,要求扣费操作不可在晚上执行,避免影响用户,若扣费前已下发通知,则需在指定的可扣费期内,北京时间每天7:00~22:00发起扣款

接口说明

适用对象:直连商户

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

请求方式: POST

数据格式: XML

是否需要证书:

请求频率限制:150qps,即每秒钟正常的申请扣款请求次数不超过150次。

请求参数

参数名 变量 类型[长度限制] 必填 描述
应用ID appid string[1,32] 直连商户申请的公众号或移动应用appid。
示例值:wxcbda96de0b165486
商户号 mch_id string[1,32] 商户号是商户在微信申请微信支付成功后分配的账号ID,登录平台为pay.weixin.qq.com
示例值:10000098
随机字符串 nonce_str string[1,32] 随机字符串,不长于32位。推荐随机数生成算法
示例值:5K8264ILTKCH16CQ2502SI8ZNMTM67VS
签名 sign string[1,64] 签名,详见签名生成算法
示例值:C380BEC2BFD727A4B6845133519F3AD6
商品描述 body string[1,128] 商品或支付单简要描述
示例值:水电代扣
商品详情 detail string[1,8192] 商品名称明细列表
示例值:水电代扣:A
水电代扣:B
水电代扣:C
附加数据 attach string[1,128] 附加数据,在查询API和支付通知中原样返回,该字段主要用于商户携带订单的自定义数据
示例值:自定义参数
商户订单号 out_trade_no string[1,32] 商户系统内部的订单号,32个字符内、可包含字母, 其他说明见商户订单号
示例值:1217752501201407033233368018
总金额 total_fee int 订单总金额,单位为分,只能为整数,详见支付金额
示例值:888
货币类型 fee_type string[1,16] 符合ISO 4217标准的三位字母代码,默认人民币:CNY
示例值:CNY
终端IP spbill_create_ip string[1,16] 用户的客户端IP ,支持IPV4和支持IPV6
示例值:8.8.8.8
商品标记 goods_tag string[1,32] 商品标记,代金券或立减优惠功能的参数,说明详见代金券或立减优惠
示例值:WXG
回调通知url notify_url string[1,256] 接受扣款结果异步回调通知的url, 以http或https开头,通知url必须为外网可访问的url,不能携带参数。
示例值:http://yoursite.com/wxpay.html
交易类型 trade_type string[1,3] 交易类型,枚举值
PAP:微信委托代扣支付
示例值:PAP
委托代扣协议id contract_id string[1,32] 签约成功后,微信返回的委托代扣协议id
示例值:Wx15463511252015071056489715
+ 场景信息 scene_info string[1,256] 该字段用于上报场景信息,目前支持上报实际门店信息。该字段为JSON对象数据,对象格式为{"store_info":{"id": "门店ID","name": "名称","area_code": "编码","address": "地址" }} ,字段详细说明请点击行前的+展开
示例值:wx8888888888888888
参数名 变量 类型[长度限制] 必填 描述
门店id id string[1,32] 门店唯一标识
示例值:SZTX001
门店名称 name string[1,64] 门店名称
示例值:腾讯大厦腾大餐厅
门店行政区划码 area_code string[1,6] 门店所在地行政区划码,详细见《最新县及县以上行政区划代码》
示例值:440305
门店详细地址 address string[1,128] 门店详细地址
示例值:科技园中一路腾讯大厦

请求示例:


<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>
 
    
{
JAVA示例代码
}
    

返回参数


参数名 变量 类型[长度限制] 必填 描述
返回状态码 return_code string[1,16] SUCCESS/FAIL
此字段是通信标识,非交易标识
示例值:SUCCESS
返回信息 return_msg string[1,128] 返回信息,如非空,为错误原因
如:签名失败 等。
示例值:签名失败

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

参数名 变量 类型[长度限制] 必填 描述
商户号 mch_id string[1,32] 微信支付分配的商户号
示例值:10000098
应用ID appid string[1,32] 直连商户申请的公众号或移动应用appid。
示例值:wxcbda96de0b165486
随机字符串 nonce_str string[1,32] 随机字符串,不长于32位.
示例值:5K8264ILTKCH16CQ2502SI8ZNMTM67VS
签名 sign string[1,64] 详见签名生成算法
示例值:C380BEC2BFD727A4B6845133519F3AD6
业务结果 result_code string[1,16] SUCCESS/FAIL
示例值:SUCCESS
错误代码 err_code string[1,32] 错误码
示例值:SIGN_ERROR
错误代码描述 err_code_des string[1,32] 错误码描述
示例值:签名错误

返回示例:


<xml>
  <return_code><![CDATA[SUCCESS]]></return_code>
  <return_msg><![CDATA[OK]]></return_msg>
  <appid><![CDATA[wxcbda96de0b165486]]></appid>  
  <mch_id><![CDATA[10000098]]></mch_id>
  <nonce_str><![CDATA[IITRi8Iabbblz1Jc]]></nonce_str>
  <sign><![CDATA[E1EE61A91C8E90F299DE6AE075D60A2D]]></sign>
  <result_code><![CDATA[SUCCESS]]></result_code>
</xml>
							
{
"code":"INVALID_REQUEST",
"message":"参数格式校验错误",

错误码

错误码 描述 解决方案
SYSTEMERROR 接口返回错误 系统异常,请使用相同参数重新调用接口
CONTRACT_NOT_EXIST 签约协议不存在 请检查签约协议号是否正确,是否已解约
PARAM_ERROR 参数错误 请根据接口返回的详细信息检查您的程序
ORDERPAID 订单已支付 请确认该订单号是否重复支付,如果是新订单,请使用新订单号提交
ORDERCLOSED 订单已关闭 商户订单号异常,请重新下单支付
SIGN_ERROR 签名错误 请检查签名参数和方法是否都符合签名算法要求
APPID_MCHID_NOT_MATCH appid和mch_id不匹配 请确认appid和mch_id是否匹配
ORDER_ACCEPTED 扣款请求已受理,请勿重复发起 请调用查询订单接口查看订单最新状态
CONTRACTERROR 协议已过期 请检查签约协议号是否已过期
INVALID_REQUEST 无效请求 请检查请求方式是否是post方法等
FREQUENCY_LIMITED 频率限制 请检查接口请求频率是否超过限制
RULELIMIT 该笔交易存在风险 请联系用户,明确微信号是否有违规操作,如有疑问可联系微信客服解除风险控制

版本说明

关闭
V1.0
2020年04月17日
1. 申请扣款接口上线

技术咨询

文档反馈