# 激活与更新服务卡片

调试诊断

接口应在服务器端调用,不可在前端(小程序、网页、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_tokenstring接口调用凭证,可使用 access_tokenauthorizer_access_token

# 请求体 Request Payload

参数名类型必填说明
openidstring用户身份标识符。
当使用微信支付订单号作为 code 时,需要与实际支付用户一致;当通过前端获取 code 时,需要与点击 button 的用户一致。
notify_typenumber卡片id。可在文中(1.1)中查阅。
notify_codestring动态更新令牌。获取方式可在文中(1.3或1.4)中查阅。
需要注意的是,微信支付订单号从生成到可被校验存在一定的时延可能,若收到报错为 notify_code 不存在,建议在1分钟后重试。
content_jsonstring卡片状态与状态相关字段,不同卡片的定义不同,可在文中(1.1中各模版定义链接)中查阅。
check_jsonstring微信支付订单号验证字段。
当将微信支付订单号作为 notify_code 时,在激活时需要传入。见下文其他说明check_json定义

# 3. 返回参数

# 返回体 Response Payload

参数名类型说明
errcodenumber错误码
errmsgstring错误信息

# 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 诊断工具 辅助定位和分析问题。

错误码错误描述解决方案
40003invalid openid不合法的 OpenID ,请开发者确认 OpenID 的有效性
85431system error系统繁忙,稍后重试
85433invalid check_jsoncheck_json 参数不合法
85434invalid notify_typenotify_type 参数不合法
85435invalid content_jsoncontent_json 参数不合法
85436notify_code abnormalnotify_code 异常(被封禁)
85437invalid notify_codenotify_code 不存在
85438notify_code expirednotify_code 已过期
85439content_json with wrong statuscontent_json 状态不合法
85440content_json lack need fieldcontent_json 缺少字段
85441content_json has unformat fieldcontent_json 字段格式不对
85442content_json blocked by securiy auditcontent_json 包含审核不通过信息
85443content_json has illegal utf8 charcontent_json 包含非utf8字符
85448notify_code has usednotify_code 已经推送过
85449notify_code is dealing and locked, retry laternotify_code 正在更新,已加锁,稍后重试
85461notify_type access denynotify_type 准入驳回
85462app aceess deny小程序准入驳回

# 7. 适用范围

本接口在不同账号类型下的可调用情况:
小程序小游戏
  • ✔:该账号可调用此接口
  • 其他未明确声明的账号类型,如无特殊说明,均不可调用此接口;