申请扣款

更新时间:2024.11.14

场景介绍

委托代扣可应用于定期扣款或需事后扣款以期提高效率的场景。例如高速,停车场等通过用户授权给商户,进行委托扣款的场景。

注意:

扣费请求首先按签约协议中记录的优先支付方式扣费,否则从可用扣款方式中依次选择扣款。

接口调用请求说明

请求Url

https://api.mch.weixin.qq.com/vehicle/pay/payapply

是否需要证书

请求方式

post

返回参数说明

扣款接口请求成功,返回success仅代表扣款申请受理成功,不代表扣款成功。扣款是否成功以支付通知的结果为准。

前置条件

需要用户状态user_state为normal

支持车牌

车主服务只支持蓝牌、绿牌

备注

  • 受理成功,抬杆放行(推荐)

  耗时短(200ms):已开通垫资功能的商户,申请扣款受理成功后,即可抬杆放行车辆。(商户侧请联系微信侧的运营申请垫资能力

  • 同一个商户订单号,只能在一种扣费方式中使用

  同一笔商户订单号,在车主服务扣款和其他支付方式下并发同时使用,车主服务扣款可能仅受理成功,但不继续执行扣款动作(如有出现此类情况,商户自行承担损失)

  • 扣款成功,抬杆放行

  耗时长(5s):未开通垫资功能的商户,需以支付通知的结果为准放行车辆。(若以受理成功放行车辆造成的资金损失由商户侧自行承担。)

请求参数

字段名

变量名

必填

类型

示例值

说明

公众账号id

appid

String(32)

wxcbda96de0b165486

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

此appid需为已授权appid

商户号

mch_id

String(32)

10000098

微信支付分配的商户号

随机字符串

nonce_str

String(32)

5K8264ILTKCH16CQ2502SI8ZNMTM67VS

随机字符串,不长于32位。

签名类型

sign_type

String(32)

HMAC-SHA256

签名类型,默认为HMAC-SHA256

签名

sign

String(64)

EE088059BBC9141264F8D14293AD6C4BB94CEA8C08AA98FBF93E262D445F8FF5

签名,详见签名生成算法

商品描述

body

String(128)

公交代扣

商品或支付单简要描述

商品详情

detail

String(6000)

公交代扣:A
公交代扣:B
公交代扣:C

商品名称明细列表

附加数据

attach

String(127)

自定义参数

附加数据,在查询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(256)

http://yoursite.com/wxpay.html

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

交易类型

trade_type

String(16)

PAP

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

版本号

version

String(16)

3.0

版本号,固定值
3.0:车场停车(PARKING)场景
2.0:其他场景

交易场景

trade_scene

String(16)

PARKING

委托代扣的交易场景值,目前支持 :

1.PARKING:车场停车场景

2.PARKING SPACE;车位停车场景

3.GAS 加油场景

4.HIGHWAY 高速场景

5.BRIDGE 路桥场景

该值催缴时会向微信用户进行展示

用户标识

openid

String(32)

oUpF8uMuAJO_M2pxb1Q9zNjWeS6o

用户在商户appid或子商户appid下的唯一标识。 
在PARKING场景为PROACTIVE时,才会校验车牌与openid的关系。
当传递用户标识时,微信支付将校验用户和车牌绑定关系通过后才允许进行扣费 
如下几种情况下该值必填:
(1)场景为:PARKING SPACE时,用户标识必填;
(2)在PARKING 场景下,deduct_mode字段为PROACTIVE时,用户标识必填。

分账标识

profit_sharing

String(16)

Y

Y-是,需要分账
N-否,不分账
字母要求大写,不传默认不分账
分账详细说明见《分账API》文档

场景信息

scene_info

String(1024)

{"scene_info":{"start_time":"20170926114339","end_time":"20170826114339","charging_time":"12312312312",
"plate_number":"CB1000sdfasd","free_time":"1200","car_type":"大型车","parking_name":"欢乐海岸停车场"}}

场景信息值,格式为json,不同业务场景设置不同的值,具体如后面所列。

当trade_scene场景为:PARKING(车场停车) 时,传如下值

入场时间

start_time

String(16)

20170826104339

即用户进入停车位时间,格式为yyyyMMddHHmmss,该值催缴时会向微信用户进行展示

出场时间

end_time

String(16)

20170826114339

即用户离开停车位时间,格式为yyyyMMddHHmmss,该值催缴时会向微信用户进行展示

计费时长

charging_time

String(16)

3600

计费的时间长。单位为秒

车牌号

plate_number

String(32)

粤B888888

车牌号。仅包括省份+车牌,不包括特殊字符。

车辆类型

car_type

String(16)

小型车

停车车辆的类型,可选值:大型车、小型车

停车场名称

parking_name

String(32)

欢乐海岸停车场

所在停车位车场的名称

发起扣费方式

deduct_mode

String(16)

PROACTIVE

发起扣费方式,枚举值:
PROACTIVE:表示用户主动发起的免密支付 
AUTOPAY:表示用户无感的无感支付

支持的扣费方式

support_deduct_mode

String(16)

DEDUCT_PROACTIVE_ONLY

该字段用于控制微信下发给用户的模板消息
枚举值为:
DEDUCT_PROACTIVE_ONLY:仅支持免密
DEDUCT_AUTOPAY_ONLY:仅支持无感
DEDUCT_ALL:支持免密和无感

当trade_scene场景为:PARKING SPACE 时(车位停车),传如下值

入场时间

start_time

String(16)

20170826104339

即用户进入停车时间,格式为yyyyMMddHHmmss,该值催缴时会向微信用户进行展示

出场时间

end_time

String(16)

20170826114339

即用户出停车场时间,格式为yyyyMMddHHmmss,该值催缴时会向微信用户进行展示

计费时长

charging_time

String(16)

3600

计费的时间长。单位为秒

车辆类型

car_type

String(16)

小型车

停车车辆的类型,可选值:大型车、小型车

停车场名称

parking_name

String(32)

欢乐海岸停车场

所在停车场的名称

车位编号

space_number

String(16)

D6666

用户停车的车位编号,仅支持英文+数字

当trade_scene场景为:GAS 时(加油),传如下值

交易时间

start_time

String(16)

20170826104339

即用户进行加油的时间,格式为yyyyMMddHHmmss,该值催缴时会向微信用户进行展示

车牌号

plate_number

String(32)

粤B888888

车牌号。仅包括省份+车牌,不包括特殊字符。

车辆类型

car_type

String(16)

大型车

车辆的类型,可选值:大型车、小型车

加油站名称

gas_station

String(32)

中国石油加油站

所在加油站的具体名称,需提前提供进行录入

油品标号名

gas_label_name

String(8)

98

油品标号名,可选值89、90、92、93、95、97、98、5、0、-10、-20、-35、-50

油品类型名称

gas_type

String(32)

汽油

油品类型名称,可选:汽油、柴油

油品标准

gas_standard

String(32)

国V

油品标准名称,可选:国V,国IV,粤IV

油量

gas_amount

String(16)

50120

油品量(单位毫升ml)

油枪号

gas_gun_no

String(32)

10

加油枪号,纯数字

当trade_scene场景为:HIGHWAY 时,传如下值

交易时间

start_time

String(16)

20170826104339

即用户进入高速时间,格式为yyyyMMddHHmmss,该值催缴时会向微信用户进行展示
交易时间最大支持90天内的订单

结束时间

end_time

String(16)

20170826114339

即用户出高速时间,格式为yyyyMMddHHmmss,该值催缴时会向微信用户进行展示

车牌号

plate_number

String(32)

粤B888888

车牌号。仅包括省份+车牌,不包括特殊字符。

车辆类型

car_type

String(16)

客车

车辆的类型,可选值:客车、货车

入口站名称

entrance_name

String(60)

沿江深圳-大铲湾

高速收费入口站的名称

出口站名称

exit_name

String(90)

广珠东线-珠海站

高速收费出口站的名称

核载人数

carrying_capacity

String(8)

10

当前车辆核载人数,纯数字

核载区间

carrying_range

String(32)

6-12

当前车辆核载人数区间,格式数字-数字

通道类型

channel_type

String(32)

ETC

高速通道类型,目前可选:ETC、MTC。商户扣费前必须确认当前车牌的标识属性,用户车牌必须具有该通道标识时,才允许扣费。

当trade_scene场景为:BRIDGE 时,传如下值

交易时间

start_time

String(16)

20170826104339

即用户通过路桥收费站时间,格式为yyyyMMddHHmmss,该值会向微信用户进行展示

车牌号

plate_number

String(32)

粤B888888

车牌号。仅包括省份+车牌,不包括特殊字符。

车辆类型

car_type

String(16)

小型车

车辆的类型,可选值:大型车、小型车

出口名称

exit_name

String(64)

虎门大桥

收费出口站的名称,需向用户进行展示

数据示例:

1<xml>
2<mch_id>10000098</mch_id>
3<appid>wxcbda96de0b165486</appid>
4<nonce_str>5K8264ILTKCH16CQ2502SI8ZNMTM67VS</nonce_str>
5<sign_type>HMAC-SHA256</sign_type>
6<sign> EE088059BBC9141264F8D14293AD6C4BB94CEA8C08AA98FBF93E262D445F8FF5</sign>
7<body>公交代扣</body>
8<out_trade_no>217752501201407033233368018</out_trade_no>
9<total_fee>888</total_fee>
10<spbill_create_ip>8.8.8.8</spbill_create_ip>
11<notify_url>http://yoursite.com/wxpay.html</notify_url>
12<trade_scene> PARKING</trade_scene> 
13<version>3.0</version> 
14<scene_info>{"scene_info":{"start_time":"20170926114339","end_time":"20170826114339","charging_time":"3600","free_time":"1200","plate_number":"CB1000sdfasd","car_type":"大型车","parking_name":"欢乐海岸停车场"}}</scene_info>
15</xml>

返回参数

字段名

变量名

必填

示例值

类型

说明

返回状态码

return_code

SUCCESS

String(16)

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

返回信息

return_msg

签名失败

String(128)

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

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

字段名

变量名

必填

类型

示例值

说明

公众账号id

appid

String(32)

wxcbda96de0b165486

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

商户号

mch_id

String(32)

10000098

微信支付分配的商户号

设备号

device_info

String(32)

013467007045764

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

随机字符串

nonce_str

String(32)

5K8264ILTKCH16CQ2502SI8ZNMTM67VS

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

签名

sign

String(64)

C380BEC2BFD727A4B6845133519F3AD6

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

业务结果

result_code

String(16)

SUCCESS

SUCCESS/FAIL

错误代码

err_code

String(32)

SIGN_ERROR

错误码

错误代码描述

err_code_des

String(32)

签名错误

错误码描述

数据示例:

1<xml>
2<return_code><![CDATA[SUCCESS]]></return_code>
3<return_msg><![CDATA[OK]]></return_msg>
4<appid><![CDATA[wxcbda96de0b165486]]></appid>
5<mch_id><![CDATA[10000098]]></mch_id>
6<nonce_str><![CDATA[IITRi8Iabbblz1Jc]]></nonce_str>
7<sign><![CDATA[EE088059BBC9141264F8D14293AD6C4BB94CEA8C08AA98FBF93E262D445F8FF5]]></sign>
8<result_code><![CDATA[SUCCESS]]></result_code>
9< /xml>

错误码

名称

描述

原因

解决方案

SYSTEMERROR

接口返回错误

系统超时

请使用相同参数再次调用API。

重试策略,共10次,每次间隔时间:

30秒,60秒,60秒,120秒,120秒,180秒,180秒,360秒,360秒,600秒

PARAM_ERROR

参数错误

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

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

INVALID_REQUEST

非法请求

非法请求

请检查请求参数、商户权限等是否正确

OUT_TRADE_NO_USED

商户订单号重复

同一笔交易不能多次提交

请核实商户订单号是否重复提交

ORDER_PAID

订单已支付

订单号重复

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

ORDER_ACCEPTED

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

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

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

ORDER_CLOSED

订单已关闭

该订单已关

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

SIGN_ERROR

签名错误

参数签名结果不正确

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

CONTRACT_OVER_LIMIT

用户支付超出限额

支付笔数、或支付金额超出代扣限额

请检查当前扣款金额,当天扣款次数。

REQUEST_BLOCKED

请求被拒绝

用户欠费或者不符合微信免密业务要求

提示用户到微信进行还款,后可继续使用业务

VEHICLE_NOT_EXIST

当前车牌尚未绑定车主平台

当前车牌尚未绑定车主平台,或用户已和车主平台解约

请检查车牌号是否正确

PAYAUTH_ERROR

权限校验错误

商户号产品权限校验错误

权限校验错误 服务商或子商户号权限校验错误 请检查如下几个项:
1.服务商商户号受理权限是否开通
2.子商户号代扣产品权限是否开通
3.子商户号授予父商户号代扣权限是否开通
4.服务商商户号不能直接用于直联模式接口

TRADE_ERROR

支付确认失败

用户的微信号被风控拦截或者用户的微信号被紧急冻结

提示用户可咨询微信客服了解具体原因

VEHICLE_AUTH_ERROR

校验授权关系失败

传入的appid没有授权

调用授权接口完成用户对appid的授权

TRADE_TIME_INVALID

扣款请求超过业务规定时间

高速场景,ETC通道需要在48小时内,将交易送达

请检查请求参数中的交易时间。

CHANNEL_TYPE_INVALID

扣款请求标识和当前车牌通道标识不一致

高速场景,车牌必须具有对应(ETC或MTC)通道标识时才可以扣款

请检查请求参数中的车牌通道标识和用户车牌标识是否一致。

PAYER_DEDUCT_MODE_NOTALLOWED

用户的扣费模式受限,请确认后重试

车牌对应扣款标识使用有误

调用“用户状态查询接口”核实当前对应扣款标识

 

反馈
咨询
目录
置顶