车牌状态变更通知接口

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 微信支付分配的商户号
子商户号 sub_mch_id String(32) 1900000109 微信支付分配的子商户号
公众账号id appid String(32) wxcbda96de0b165486 微信支付分配的公众账号id
子商户公众账号id sub_appid String(32) wxcbda96de0b165489 微信分配的子商户公众账号ID,此sub_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 车牌状态变更的发生时间, 商户可根据该时间是否最新,来判断是否需要更新当前车牌状态

举例如下:

<xml>
<mch_id>100000981</mch_id>
<sub_mch_id><![CDATA[10000100]]></sub_mch_id>
<appid>wxcbda96de0b165486</appid>
<nonce_str>5K8264ILTKCH16CQ2502SI8ZNMTM67VS</nonce_str>
<sign_type>HMAC-SHA256</sign_type>                                      
<sign>EE088059BBC9141264F8D14293AD6C4BB94CEA8C08AA98FBF93E262D445F8FF5</sign>
<plate_number>粤A00000</plate_number>
<vehicle_event_type>NORMAL</vehicle_event_type>
<vehicle_event_createtime>20180101100000</vehicle_event_createtime>
</xml>

2.应用场景-高速

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

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

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

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

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

接口链接

回调url需提前提交给微信侧配置,ETC需单独申请推送权限,MTC目前暂不支持

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

是否需要证书

不需要。

通知参数

字段名 变量名 必填 类型 示例值 描述
商户号 mch_id String(32) 100000980 微信支付分配的商户号
公众账号id appid String(32) wxcbda96de0b165486 微信支付分配的公众账号id
子商户公众账号ID sub_appid String(32) wxcbda96de0b165486 微信支付分配的公众账号id
子商户号 sub_mch_id String(32) 10000096 微信支付分配的商户号
车牌变更事件类型 vehicle_event_type String(32) NORMAL 当前通知车牌的状态变化类型:
NORMAL-变为可用状态
BLOCKED-变为不可用状态
注意此状态是车牌状态,而非用户状态
车牌变更事件信息 vehicle_event_des String(32) OVERDUE 当前车牌状态,所对应的事件类型为BLOCKED时返回:

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

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

PAUSE: 用户关闭或已暂停车主服务导致车牌不可用。请跳转到授权/开通接口
用户标识 openid String(32) oUpF8uMuAJO_M2pxb1Q9zNjWeS6o 用户在商户appid下的唯一标识
微信sub open ID sub_openid String(32) oYobu0Dmn6TdodZnFWKOEkqoRbI8 用户微信open ID,用户在子商户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 值的内容为车牌数组
--车牌号 plate_number String(32) 粤B888888 车牌号。仅包括省份+车牌,不包括特殊字符。
--车牌通道标识 channel_type String(32) ETC 车牌通道信息标识,仅在HIGHWAY高速场景下进行返回。可选:MTC,ETC。

ETC和MTC需单独申请推送权限,推送通知也会分开

举例如下:

<xml>
<mch_id>100000981</mch_id>
<sub_mch_id>100000982</sub_mch_id>
<appid>wxcbda96de0b165486</appid>
<nonce_str>5K8264ILTKCH16CQ2502SI8ZNMTM67VS</nonce_str>
<sign_type>HMAC-SHA256</sign_type>                                       
<sign>EE088059BBC9141264F8D14293AD6C4BB94CEA8C08AA98FBF93E262D445F8FF5</sign>
<openid>oUpF8uMuAJO_M2pxb1Q9zNjWeS6o</openid>
<plate_number_info>{"plate_number_info":[{"plate_number":"粤B888888","channel_type":"ETC"}]}</plate_number_info> <vehicle_event_type>NORMAL</vehicle_event_type>
<vehicle_event_des>OVERDUE</vehicle_event_des>
<vehicle_event_time>20160701100000</vehicle_event_time>
</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
子商户公众账号ID sub_appid String(32) wxcbda96de0b165486 微信支付分配的公众账号id
子商户号 sub_mch_id String(32) 10000096 微信支付分配的商户号
车牌变更事件类型 vehicle_event_type String(32) NORMAL 当前通知车牌的状态变化类型:
NORMAL-变为可用状态
BLOCKED-变为不可用状态
注意此状态是车牌状态,而非用户状态
车牌变更事件信息 vehicle_event_des String(32) OVERDUE 当前车牌状态,所对应的事件类型为BLOCKED时返回:

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

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

PAUSE: 用户关闭或已暂停车主服务导致车牌不可用。请跳转到授权/开通接口
用户标识 openid String(32) oUpF8uMuAJO_M2pxb1Q9zNjWeS6o 用户在商户appid下的唯一标识
微信sub open ID sub_openid String(32) oYobu0Dmn6TdodZnFWKOEkqoRbI8 用户微信open ID,用户在子商户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 值的内容为车牌数组
--车牌号 plate_number String(32) 粤B888888 车牌号。仅包括省份+车牌,不包括特殊字符。

举例如下:

<xml>
<mch_id>100000981</mch_id>
<appid>wxcbda96de0b165486</appid>
<nonce_str>5K8264ILTKCH16CQ2502SI8ZNMTM67VS</nonce_str>
<sign_type>HMAC-SHA256</sign_type>                                       
<sign>EE088059BBC9141264F8D14293AD6C4BB94CEA8C08AA98FBF93E262D445F8FF5</sign>
<openid>oUpF8uMuAJO_M2pxb1Q9zNjWeS6o</openid>
<plate_number _info>{"plate_number_info":[{"plate_number":"粤B888888","channel_type":"ETC"}]}</plate_number_info> <vehicle_event_type>NORMAL</vehicle_event_type>
<vehicle_event_des>OVERDUE</vehicle_event_des>
<vehicle_event_time>20160701100000</vehicle_event_time>
</xml>

商户侧应答参数

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

字段名 变量名 必填 类型 示例值 描述
返回状态码 return_code String(16) SUCCESS

SUCCESS/FAIL

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

返回信息 return_msg String(128) OK

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

签名失败

参数格式校验错误

举例如下:

<xml>
<return_code><![CDATA[SUCCESS]]></return_code>
<return_msg><![CDATA[OK]]></return_msg>
</xml>