车牌状态变更通知

更新时间:2024.11.14

1.应用场景-停车场

从用户进入开通车主服务的停车场(用户入场通知接口),到用户离场期间(扣款接口),这个时间段内如果用户状态变为可用或者不可用,微信会把相关状态变更情况(可用/不可用)异步发送给商户,回调url为调用上述用户入场通知接口时填写的notify_url字段。商户在收到车主状态变更通知后,需进行接收处理并返回应答 

对后台通知交互时,如果微信收到商户的应答不是成功或超时,微信认为通知失败,微信会通过一定的策略定期重新发起通知,尽可能提高通知的成功率,但微信不保证通知最终能成功。 (通知频率为6/12/24/48/96/192/384/768/1536,单位:秒)

注意:

同样的通知可能会多次发送给商户系统。商户系统必须能够正确处理重复的通知。

推荐的做法是,当收到通知进行处理时,首先检查对应业务数据的状态,判断该通知是否已经处理过,如果没有处理过再进行处理,如果处理过直接返回结果成功。在对业务数据进行状态检查和处理之前,要采用数据锁进行并发控制,以避免函数重入造成的数据混乱。

特别提醒:商户系统对于支付结果通知的内容一定要做签名验证,防止数据泄露导致出现“假通知”,造成资金损失。

接口链接

该链接是通过【用户入场通知API】中提交的参数notify_url设置,如果链接无法访问,商户将无法接收到微信通知。

通知url必须为直接可访问的url,不能携带参数。示例:notify_url:“https://pay.weixin.qq.com/wxpay/pay.action”

是否需要证书

不需要。

通知参数

字段名

变量名

必填

类型

示例值

描述

商户号

mch_id

String(32)

100000980

微信支付分配的商户号

公众账号id

appid

String(32)

wxcbda96de0b165486

微信支付分配的公众账号id,此appid需已被用户授权

车牌号

plate_number

String(32)

粤B888888

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

车牌变更事件类型

vehicle_event_type

String(32)

NORMAL

当前通知车牌的状态变化类型:
NORMAL-变为可用状态
BLOCKED-变为不可用状态
注意此状态是车牌状态,而非用户状态

随机字符串

nonce_str

String(32)

5K8264ILTKCH16CQ2502SI8ZNMTM67VS

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

发起扣费方式

deduct_mode

String(16)

PROACTIVE

调用3.0的入场通知后,当用户车辆状态为NORMAL,车辆状态发生变时返回:
PROACTIVE:表示用户主动发起的免密支付
AUTOPAY:表示用户无感知的支付

车牌变更事件信息

vehicle_event_des

String(32)

AUTOPAY

调用3.0的入场通知后,当用户的发起扣费方式有变化时返回:
PROACTIVE:表示用户降级到免密支付
AUTOPAY:表示用户升级到无感支付

签名类型

sign_type

String(32)

HMAC-SHA256

签名类型,默认为HMAC-SHA256

签名

sign

string(64)

EE088059BBC9141264F8D14293AD6C4BB94CEA8C08AA98FBF93E262D445F8FF5

签名,详见签名生成算法

车牌变更事件发生时间

vehicle_event_createtime

String(32)

20180101100000

车牌状态变更的发生时间, 商户可根据该时间是否最新,来判断是否需要更新当前车牌状态

举例如下:

1<xml>
2<mch_id>100000981</mch_id>
3<appid>wxcbda96de0b165486</appid>
4<nonce_str>5K8264ILTKCH16CQ2502SI8ZNMTM67VS</nonce_str>
5<sign_type>HMAC-SHA256</sign_type>                                      
6<sign>EE088059BBC9141264F8D14293AD6C4BB94CEA8C08AA98FBF93E262D445F8FF5</sign>
7<plate_number>粤A00000</plate_number >
8<vehicle_event_type>NORMAL</vehicle_event_type>
9<vehicle_event_createtime>20180101100000</vehicle_event_createtime >
10</xml>

2.应用场景-高速

在高速的离线扣费场景,当用户授权给高速商户后,用户车牌的状态发生变化时(变为可用或者不可用),微信会把相关状态变更情况(可用/不可用)异步发送给商户,回调url需提前提交给微信侧配置。商户在收到车主状态变更通知后,需进行接收处理并返回应答

对后台通知交互时,如果微信收到商户的应答不是成功或超时,微信认为通知失败,微信会通过一定的策略定期重新发起通知,尽可能提高通知的成功率,但微信不保证通知最终能成功。 (通知频率为6/12/24/48/96/192/384/768/1536,单位:秒)

注意:

同样的通知可能会多次发送给商户系统。商户系统必须能够正确处理重复的通知。

推荐的做法是,当收到通知进行处理时,首先检查对应业务数据的状态,判断该通知是否已经处理过,如果没有处理过再进行处理,如果处理过直接返回结果成功。在对业务数据进行状态检查和处理之前,要采用数据锁进行并发控制,以避免函数重入造成的数据混乱。

特别提醒:商户系统对于支付结果通知的内容一定要做签名验证,防止数据泄露导致出现“假通知”,造成资金损失。

接口链接

回调url需提前提交给微信侧配置 , 高速行业车主相关权限开通申请流程 ,MTC目前暂不支持

通知url必须为直接可访问的url,不能携带参数。示例:notify_url:“https://pay.weixin.qq.com/wxpay/pay.action”

是否需要证书

不需要。

通知参数

字段名

变量名

必填

类型

示例值

描述

商户号

mch_id

String(32)

100000980

微信支付分配的商户号

公众账号id

appid

String(32)

wxcbda96de0b165486

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

车牌变更事件类型

vehicle_event_type

String(32)

NORMAL

当前通知车牌的状态变化类型:
NORMAL-变为可用状态
BLOCKED-变为不可用状态
注意此状态是车牌状态,而非用户状态

车牌变更事件信息

vehicle_event_des

String(32)

OVERDUE

当前车牌状态,所对应的事件类型为BLOCKED时返回:
OVERDUE: 车牌对应用户欠费。商户引导用户还款,请跳转到车主服务
REMOVE:用户移除车牌导致车牌不可用。请跳转到授权/开通接口。
PAUSE: 用户关闭或已暂停车主服务导致车牌不可用。请跳转到授权/开通接口

用户标识

openid

String(32)

oUpF8uMuAJO_M2pxb1Q9zNjWeS6o

用户在商户appid下的唯一标识

随机字符串

nonce_str

String(32)

5K8264ILTKCH16CQ2502SI8ZNMTM67VS

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

签名类型

sign_type

String(32)

HMAC-SHA256

签名类型,默认为HMAC-SHA256

签名

sign

string(64)

EE088059BBC9141264F8D14293AD6C4BB94CEA8C08AA98FBF93E262D445F8FF5

签名,详见签名生成算法

车牌事件发生时间

vehicle_event_createtime

String(32)

20160701100000

车牌状态变更的发生时间, 商户可根据该时间是否最新,来判断是否需要更新当前车牌状态。

车牌信息

plate_number_info

String(512)

{"plate_number_info":[{"plate_number":"粤B888888","channel_type":"ETC"}]}

车牌号列表。仅包括省份+车牌,不包括特殊字符。
注:在PARKING SPACE场景下无返回。

plate_number_info 值的内容为车牌数组

举例如下:

1<xml>
2<mch_id>100000981</mch_id>
3<appid>wxcbda96de0b165486</appid>
4<nonce_str>5K8264ILTKCH16CQ2502SI8ZNMTM67VS</nonce_str>
5<sign_type>HMAC-SHA256</sign_type>                                       
6<sign>EE088059BBC9141264F8D14293AD6C4BB94CEA8C08AA98FBF93E262D445F8FF5</sign>
7<openid>oUpF8uMuAJO_M2pxb1Q9zNjWeS6o</openid>
8<plate_number_info>{"plate_number_info":[{"plate_number":"粤B888888","channel_type":"ETC"}]}</plate_number_info> <vehicle_event_type>NORMAL</vehicle_event_type>
9<vehicle_event_des>OVERDUE</vehicle_event_des>
10<vehicle_event_createtime>20180101100000</vehicle_event_createtime>
11</xml>

 

3.应用场景-路桥

在路桥的离线扣费场景,当用户授权给路桥商户后,用户车牌的状态发生变化时(变为可用或者不可用),微信会把相关状态变更情况(可用/不可用)异步发送给商户,回调url需提前提交给微信侧配置。商户在收到车主状态变更通知后,需进行接收处理并返回应答

对后台通知交互时,如果微信收到商户的应答不是成功或超时,微信认为通知失败,微信会通过一定的策略定期重新发起通知,尽可能提高通知的成功率,但微信不保证通知最终能成功。 (通知频率为6/12/24/48/96/192/384/768/1536,单位:秒)

注意:

同样的通知可能会多次发送给商户系统。商户系统必须能够正确处理重复的通知。

推荐的做法是,当收到通知进行处理时,首先检查对应业务数据的状态,判断该通知是否已经处理过,如果没有处理过再进行处理,如果处理过直接返回结果成功。在对业务数据进行状态检查和处理之前,要采用数据锁进行并发控制,以避免函数重入造成的数据混乱。

特别提醒:商户系统对于支付结果通知的内容一定要做签名验证,防止数据泄露导致出现“假通知”,造成资金损失。

接口链接

回调url需提前提交给微信侧配置

通知url必须为直接可访问的url,不能携带参数。示例:notify_url:“https://pay.weixin.qq.com/wxpay/pay.action”

是否需要证书

不需要。

通知参数

字段名

变量名

必填

类型

示例值

描述

商户号

mch_id

String(32)

100000980

微信支付分配的商户号

公众账号id

appid

String(32)

wxcbda96de0b165486

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

车牌变更事件类型

vehicle_event_type

String(32)

NORMAL

当前通知车牌的状态变化类型:
NORMAL-变为可用状态
BLOCKED-变为不可用状态
注意此状态是车牌状态,而非用户状态

车牌变更事件信息

vehicle_event_des

String(32)

OVERDUE

当前车牌状态,所对应的事件类型为BLOCKED时返回:

OVERDUE: 车牌对应用户欠费。商户引导用户还款,请跳转到车主服务

REMOVE:用户移除车牌导致车牌不可用。请跳转到授权/开通接口。

PAUSE: 用户关闭或已暂停车主服务导致车牌不可用。请跳转到授权/开通接口

用户标识

openid

String(32)

oUpF8uMuAJO_M2pxb1Q9zNjWeS6o

用户在商户appid下的唯一标识

随机字符串

nonce_str

String(32)

5K8264ILTKCH16CQ2502SI8ZNMTM67VS

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

签名类型

sign_type

String(32)

HMAC-SHA256

签名类型,默认为HMAC-SHA256

签名

sign

string(64)

EE088059BBC9141264F8D14293AD6C4BB94CEA8C08AA98FBF93E262D445F8FF5

签名,详见签名生成算法

车牌事件发生时间

vehicle_event_createtime

String(32)

20160701100000

车牌状态变更的发生时间, 商户可根据该时间是否最新,来判断是否需要更新当前车牌状态。

车牌信息

plate_number_info

String(512)

{"plate_number_info":[{"plate_number":"粤B888888"}]}

车牌号列表。仅包括省份+车牌,不包括特殊字符。
注:在PARKING SPACE场景下无返回。

plate_number_info 值的内容为车牌数组

举例如下:

1<xml>
2<mch_id>100000981</mch_id>
3<appid>wxcbda96de0b165486</appid>
4<nonce_str>5K8264ILTKCH16CQ2502SI8ZNMTM67VS</nonce_str>
5<sign_type>HMAC-SHA256</sign_type>                                       
6<sign>EE088059BBC9141264F8D14293AD6C4BB94CEA8C08AA98FBF93E262D445F8FF5</sign>
7<openid>oUpF8uMuAJO_M2pxb1Q9zNjWeS6o</openid>
8<plate_number_info>{"plate_number_info":[{"plate_number":"粤B888888","channel_type":"ETC"}]}</plate_number_info>
9<vehicle_event_type>NORMAL</vehicle_event_type>
10<vehicle_event_des>OVERDUE</vehicle_event_des>
11<vehicle_event_createtime>20180101100000</vehicle_event_createtime>
12</xml>

商户侧应答参数

商户处理后同步返回给微信参数:

字段名

变量名

必填

类型

示例值

描述

返回状态码

return_code

string(16)

SUCCESS

SUCCESS/FAIL

SUCCESS表示商户接收通知成功并校验成功

返回信息

return_msg

string(128)

OK

返回信息,如非空,为错误原因:

签名失败

参数格式校验错误

举例如下:

1<xml>
2<return_code><![CDATA[SUCCESS]]></return_code>
3<return_msg><![CDATA[OK]]></return_msg>
4</xml></return_msg>
5</xml>