用户授权/开通车主服务
更新时间:2024.11.14应用场景
在停车场、高速、加油等场景下,商户需在用户授权后,使用车主服务进行扣费。当用户未授权、未开通时,商户可引导用户到此接口进行授权或开通车主服务。
目前车主服务只支持蓝牌、绿牌,商户侧引导用户添加车牌时需明确告知用户黄牌车牌号请不要添加到车主平台
流程介绍
调用用户状态查询api获取当前用户车主状态,如果当前用户车主状态异常(如有欠费(OVERDUE),未授权(UNAUTHORIZED),校验授权关系失败(VEHICLE_AUTH_ERROR)),
接口同步返回跳转路径(path字段)商户侧需根据步骤2引导用户进入车主服务进行相关操作;如果当前用户车主状态正常,不会返回path字段,不需要再引导用户进入车主服务– 小程序,APP跳转,通过跳转路径(path)调用 ‘用户授权/开通接口api’ 进入车主小程序的对应页面,用户进行授权/开通的操作
– H5跳转,通过跳转路径(path)调用 ‘用户授权/开通接口api’ 进入车主H5对应的页面,用户进行授权/开通操作返回商户小程序,APP或H5页面后再次调用用户状态查询api确认用户最新车主状态及车牌信息
1.小程序跳转接口调用请求说明
接口 | wx.navigateToMiniProgram(OBJECT)接口 |
---|---|
说明 | iOS 微信客户端 6.5.9 版本开始支持,Android 客户端即将在 6.5.10 版本开始支持 |
OBJECT参数说明:
字段含义 | 变量名 | 必填 | 类型 | 示例值 | 描述 | |||
---|---|---|---|---|---|---|---|---|
微信车主小程序appid | appId | 是 | String | wxbcad394b3d99dac9 | 固定值 | |||
场景信息传递给小程序的数据 | extraData | 是 | object | { "appid": "wx426a3015555a46be", "mch_id": "10000098", "sub_mch_id": "10000096", "nonce_str": "FF1A406564EE70106445", "sign_type": "HMAC-SHA256", "sign":"EE088059BBC9141264F8D14293AD6C4BB94CEA8C08AA98FBF93E262D445F8FF5", "trade_scene": "PARKING", "openid": "oUpF8uMEb4qRXf22hE3X68TekukE" } | 签约的请求参数,详情见extraData字段详细说明 | |||
| ||||||||
打开小程序的页面路径 | path | 是 | string | pages/route/index | 打开小程序的页面路径,取值为‘用户状态查询接口’返回的跳转路径(path字段,如查询接口没返回该字段,说明不需要再调用‘用户授权/开通接口’) | |||
接口调用成功的回调函数 | success | 是 | Function | - | - | |||
接口调用失败的回调函数 | fail | 是 | Function | - | - | |||
接口调用结束的回调函数 | complete | 是 | Function | - | 调用成功、失败都会执行 |
示例:
用户授权完成之后,会跳转回商户小程序。可通过onShow(OBJECT)所携带的参数判断返回结果,OBJECT返回参数请查看小程序开发文档onShow参数说明
当用户放弃操作时,referrerInfo或referrerInfo. extraData为null(或undefined),当车主平台小程序成功或失败返回商户小程序时,referrerInfo.extraData字段说明如下
字段名 | 变量名 | 必填 | 示例值 | 说明 |
---|---|---|---|---|
用户openid | openid | 是 | oUpF8uMEb4qRXf22hE3X68TekukE | 用户openid |
授权结果 | auth | 是 | true | 用户授权结果: |
示例:
2.H5跳转接口调用请求说明
|
在用户状态查询接口返回的path参数通过GET请求的方式拼接以下参数:
字段含义 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
---|---|---|---|---|---|
公众账号id | appid | 是 | String(32) | wxcbda96de0b165486 | 服务商商户号绑定的APPID |
子商户公众账号id | sub_appid | 是 | String(32) | wxcbda96de0b165489 | 子商户号绑定的服务号,小程序,APP的appid(需要在服务商的商户平台为子商户绑定) |
商户号 | mch_id | 是 | String(32) | 10000098 | 服务商商户号 |
子商户号 | sub_mch_id | 是 | String(32) | 1900000109 | 微信支付分配的子商户号 |
随机字符串 | nonce_str | 是 | String(32) | 5K8264ILTKCH16CQ2502SI8ZNMTM67VS | 随机字符串,不长于32位。 |
签名类型 | sign_type | 是 | String(32)
| HMAC-SHA256 | 签名类型,默认为HMAC-SHA256 |
签名 | sign | 是 | String(64) | EE088059BBC9141264F8D14293AD6C4BB94CEA8C08AA98FBF93E262D445F8FF5 | 签名,详见签名生成算法 |
交易场景 | trade_scene | 是 | String(16) | PARKING | 委托代扣的交易场景值,目前支持 : 1. PARKING:车场停车场景 ;2. PARKING SPACE 车位停车场景;3. GAS 加油场景;4. HIGHWAY 高速场景;该值会向微信用户进行展示 |
用户标识 | openid | 否 | String(32) | oUpF8uMuAJO_M2pxb1Q9zNjWeS6o | 此参数必传,用户在商户appid下的唯一标识。openid和sub_openid可以选传其中之一,如果选择传sub_openid,则必须传sub_appid |
用户子标识 | sub_openid | 否 | String(32) | oUpF8uMuAJO_M2pxb1Q9zNjWeS6o | 此参数必传,用户在子商户appid下的唯一标识。openid和sub_openid可以选传其中之一,如果选择传sub_openid,则必须传sub_appid |
车牌号 | plate_number | 是 | String(32) | 粤B888888 | 车牌号。仅包括省份+车牌,不包括特殊字符。 |
通道类型 | channel_type | 否 | String(32) | ETC | 高速通道类型,目前可选:ETC、MTC。用户车牌必须具有通道标识时,才允许扣费。当场景值为 HIGHWAY 高速场景时必传 |
举例如下:
|
用户授权/开通有可能出现失败的情况,回跳到商户侧报备的回跳地址后商户需主动发起一次用户状态查询,获取最新的用户车主状态展示给用户
3.APP跳转接口调用请求说明
字段含义 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
---|---|---|---|---|---|
公众账号id | appid | 是 | String(32) | wxcbda96de0b165486 | 微信支付分配的公众账号id |
商户号 | mch_id | 是 | String(32) | 10000098 | 微信支付分配的商户号 |
子商户公众账号id | sub_appid | 是 | String(32) | wxcbda96de0b165489 | 子商户号绑定的服务号,小程序,APP的appid(需要在服务商的商户平台为子商户绑定) |
子商户号 | sub_mch_id | 是 | String(32) | 1900000109 | 微信支付分配的子商户号 |
随机字符串 | nonce_str | 是 | String(32) | 5K8264ILTKCH16CQ2502SI8ZNMTM67VS | 随机字符串,不长于32位。 |
签名类型 | sign_type | 是 | String(32) | HMAC-SHA256 | 签名类型,默认为HMAC-SHA256 |
签名 | sign | 是 | String(64) | EE088059BBC9141264F8D14293AD6C4BB94CEA8C08AA98FBF93E262D445F8FF5 | 签名,详见签名生成算法 |
交易场景 | trade_scene | 是 | String(16) | PARKING | 委托代扣的交易场景值,目前支持 : 1. PARKING:车场停车场景 ;2. PARKING SPACE 车位停车场景;3. GAS 加油场景;4. HIGHWAY 高速场景;该值会向微信用户进行展示 |
用户标识 | openid | 否 | String(32) | oUpF8uMuAJO_M2pxb1Q9zNjWeS6o | 此参数必传,用户在商户appid下的唯一标识。openid和sub_openid可以选传其中之一,如果选择传sub_openid,则必须传sub_appid |
用户子标识 | sub_openid | 否 | String(32) | oUpF8uMuAJO_M2pxb1Q9zNjWeS6o | 此参数必传,用户在子商户appid下的唯一标识。openid和sub_openid可以选传其中之一,如果选择传sub_openid,则必须传sub_appid |
车牌号 | plate_number | 是 | String(32) | 粤B888888 | 车牌号。仅包括省份+车牌,不包括特殊字符。 |
通道类型 | channel_type | 否 | String(32) | ETC | 高速通道类型,目前可选:ETC、MTC。用户车牌必须具有通道标识时,才允许扣费。当场景值为 HIGHWAY 高速场景时必传 |
安卓举例如下(APP调起小程序详细说明):
用户开通/授权完成之后,会跳转回到商户的APP,暂时不返回参数。商户侧APP接收到客户端回调后再次调用用户状态查询接口获取用户的最新车主状态