# 激活与更新服务卡片
接口应在服务器端调用,不可在前端(小程序、网页、APP等)直接调用,具体可参考接口调用指南
接口英文名:setUserNotify
激活与更新服务卡片
# 1. 调用方式
# HTTPS 调用
POST https://api.weixin.qq.com/wxa/set_user_notify?access_token=ACCESS_TOKEN
# 云调用
- 本接口不支持云调用
# 第三方调用
本接口支持第三方平台代商家调用。
该接口所属的权限集 id 为:18
服务商获得其中之一权限集授权后,可通过使用 authorizer_access_token 代商家进行调用,具体可查看 第三方调用 说明文档。
# 2. 请求参数
# 查询参数 Query String parameters
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| access_token | string | 是 | 接口调用凭证,可使用 access_token、authorizer_access_token |
# 请求体 Request Payload
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| openid | string | 是 | 用户身份标识符。 当使用微信支付订单号作为 code 时,需要与实际支付用户一致;当通过前端获取 code 时,需要与点击 button 的用户一致。 |
| notify_type | number | 是 | 卡片id。可在文中(1.1)中查阅。 |
| notify_code | string | 是 | 动态更新令牌。获取方式可在文中(1.3或1.4)中查阅。 需要注意的是,微信支付订单号从生成到可被校验存在一定的时延可能,若收到报错为 notify_code 不存在,建议在1分钟后重试。 |
| content_json | string | 是 | 卡片状态与状态相关字段,不同卡片的定义不同,可在文中(1.1中各模版定义链接)中查阅。 |
| check_json | string | 否 | 微信支付订单号验证字段。 当将微信支付订单号作为 notify_code 时,在激活时需要传入。见下文其他说明check_json定义 |
# 3. 返回参数
# 返回体 Response Payload
| 参数名 | 类型 | 说明 |
|---|---|---|
| errcode | number | 错误码 |
| errmsg | string | 错误信息 |
# 4. 注意事项
服务卡片详细介绍可参考文章。
# check_json定义
| 参数 | 是否必填 | 类型 | 说明 | 格式要求 |
|---|---|---|---|---|
| pay_amount | 是 | uint32 | 订单支付金额。若订单有优惠,支持传入下单金额或实际支付金额。若为合单支付的子订单号,可传入子单的下单金额、子单的实际支付金额、合单的下单金额或合单的实际支付金额。 | 单位为 |
| pay_time | 是 | uint32 | 支付时间 | 秒级时间戳 |
| pay_channel | 否 | uint32 | 订单渠道,0:普通微信支付,1001:支付分 |
# 5. 代码示例
# 5.1 通过前端获取code的卡片:激活与更新示例
请求示例
{
"notify_type": 1001,
"openid": "xxx",
"notify_code": "xxx",
"content_json": "{\"cur_status\":2,\"license_plate\":\"粤A12345A\",\"arrival_time\":1679569348,\"wxa_path_query\":\"\"}"
}
返回示例
{
"errcode": 0,
"errmsg": "ok"
}
# 5.2 使用微信支付订单号作为code的卡片:激活示例
请求示例
{
"notify_type": 2001,
"openid": "xxx",
"notify_code": "xxx",
"check_json": "{\"pay_amount\":1005,\"pay_time\": 1683525070}",
"content_json": "{\"cur_status\":1,\"product_count\": 1,\"product_list\":{\"info_list\":[{\"product_img\":\"https://res.wx.qq.com/op_res/DiSd8fVjXuHr5K9U73oRr74fMqnT5r9_GmI3mbfLOn2RpC_aENIPjYPPhPN_YnNKnUhyuAy8yLqNRAlh_JCsWQ\",\"product_name\":\"阿白\",\"product_path_query\":\"pages/index/index\"}]},\"wxa_path_query\":\"pages/index/index\"}"
}
返回示例
{
"errcode": 0,
"errmsg": "ok"
}
# 5.3 使用微信支付订单号作为code的卡片:更新示例
请求示例
{
"notify_type": 2001,
"openid": "xxx",
"notify_code": "xxx",
"content_json": "{\"cur_status\":2,\"product_count\": 1,\"product_list\":{\"info_list\":[{\"product_img\":\"https://res.wx.qq.com/op_res/DiSd8fVjXuHr5K9U73oRr74fMqnT5r9_GmI3mbfLOn2RpC_aENIPjYPPhPN_YnNKnUhyuAy8yLqNRAlh_JCsWQ\",\"product_name\":\"阿白\",\"product_path_query\":\"pages/index/index\"}]},\"send_time\": 1696157643,\"wxa_path_query\":\"pages/index/index\"}"
}
返回示例
{
"errcode": 0,
"errmsg": "ok"
}
# 6. 错误码
以下是本接口的错误码列表,其他错误码可参考 通用错误码;调用接口遇到报错,可使用官方提供的 API 诊断工具 辅助定位和分析问题。
| 错误码 | 错误描述 | 解决方案 |
|---|---|---|
| 40003 | invalid openid | 不合法的 OpenID ,请开发者确认 OpenID 的有效性 |
| 85431 | system error | 系统繁忙,稍后重试 |
| 85433 | invalid check_json | check_json 参数不合法 |
| 85434 | invalid notify_type | notify_type 参数不合法 |
| 85435 | invalid content_json | content_json 参数不合法 |
| 85436 | notify_code abnormal | notify_code 异常(被封禁) |
| 85437 | invalid notify_code | notify_code 不存在 |
| 85438 | notify_code expired | notify_code 已过期 |
| 85439 | content_json with wrong status | content_json 状态不合法 |
| 85440 | content_json lack need field | content_json 缺少字段 |
| 85441 | content_json has unformat field | content_json 字段格式不对 |
| 85442 | content_json blocked by securiy audit | content_json 包含审核不通过信息 |
| 85443 | content_json has illegal utf8 char | content_json 包含非utf8字符 |
| 85448 | notify_code has used | notify_code 已经推送过 |
| 85449 | notify_code is dealing and locked, retry later | notify_code 正在更新,已加锁,稍后重试 |
| 85461 | notify_type access deny | notify_type 准入驳回 |
| 85462 | app aceess deny | 小程序准入驳回 |
# 7. 适用范围
本接口在不同账号类型下的可调用情况:
| 小程序 | 小游戏 |
|---|---|
| ✔ | ✔ |
- ✔:该账号可调用此接口
- 其他未明确声明的账号类型,如无特殊说明,均不可调用此接口;