微信订阅消息通知

小程序订阅消息

https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/subscribe-message.html

步骤
  • 小程序配置好模板
  • 前端订阅了消息
  • 后端获取到access_token
  • 后端调send接口

发送消息接口

POST https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=ACCESS_TOKEN

请求参数
属性类型默认值必填说明
access_token / cloudbase_access_tokenstring接口调用凭证
touserstring接收者(用户)的 openid
template_idstring所需下发的订阅模板id
pagestring点击模板卡片后的跳转页面,仅限本小程序内的页面。支持带参数,(示例index?foo=bar)。该字段不填则模板无跳转。
dataObject模板内容,格式形如 { “key1”: { “value”: any }, “key2”: { “value”: any } }
miniprogram_statestring跳转小程序类型:developer为开发版;trial为体验版;formal为正式版;默认为正式版
langstring进入小程序查看”的语言类型,支持zh_CN(简体中文)、en_US(英文)、zh_HK(繁体中文)、zh_TW(繁体中文),默认为zh_CN
返回值
Object

返回的 JSON 数据包

属性类型说明
errcodenumber错误码
errmsgstring错误信息

errcode 的合法值

说明最低版本
40003touser字段openid为空或者不正确
40037订阅模板id为空不正确
43101用户拒绝接受消息,如果用户之前曾经订阅过,则表示用户取消了订阅关系
47003模板参数不准确,可能为空或者不满足规则,errmsg会提示具体是哪个字段出错
41030page路径不正确,需要保证在现网版本小程序中存在,与app.json保持一致

接口调用凭证access_token

请求地址

GET https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

请求参数
属性类型默认值必填说明
grant_typestring填写 client_credential
appidstring小程序唯一凭证,即 AppID,可在「微信公众平台 - 设置 - 开发设置」页中获得。(需要已经成为开发者,且帐号没有异常状态)
secretstring小程序唯一凭证密钥,即 AppSecret,获取方式同 appid
返回值
Object

返回的 JSON 数据包

属性类型说明
access_tokenstring获取到的凭证
expires_innumber凭证有效时间,单位:秒。目前是7200秒之内的值。
errcodenumber错误码
errmsgstring错误信息

errcode 的合法值

说明最低版本
-1系统繁忙,此时请开发者稍候再试
0请求成功
40001AppSecret 错误或者 AppSecret 不属于这个小程序,请开发者确认 AppSecret 的正确性
40002请确保 grant_type 字段值为 client_credential
40013不合法的 AppID,请开发者检查 AppID 的正确性,避免异常字符,注意大小写
返回数据示例

正常返回

{"access_token":"ACCESS_TOKEN","expires_in":7200}

access_token 的存储与更新

  • access_token 的存储至少要保留 512 个字符空间;
  • access_token 的有效期目前为 2 个小时,需定时刷新,重复获取将导致上次获取的 access_token 失效;
  • 建议开发者使用中控服务器统一获取和刷新 access_token,其他业务逻辑服务器所使用的 access_token 均来自于该中控服务器,不应该各自去刷新,否则容易造成冲突,导致 access_token 覆盖而影响业务;
  • access_token 的有效期通过返回的 expires_in 来传达,目前是7200秒之内的值,中控服务器需要根据这个有效时间提前去刷新。在刷新过程中,中控服务器可对外继续输出的老 access_token,此时公众平台后台会保证在5分钟内,新老 access_token 都可用,这保证了第三方业务的平滑过渡;
  • access_token 的有效时间可能会在未来有调整,所以中控服务器不仅需要内部定时主动刷新,还需要提供被动刷新 access_token 的接口,这样便于业务服务器在API调用获知 access_token 已超时的情况下,可以触发 access_token 的刷新流程。

获取当前帐号下的个人模板列表

请求地址

GET https://api.weixin.qq.com/wxaapi/newtmpl/gettemplate?access_token=ACCESS_TOKEN

请求参数
属性类型默认值必填说明
access_token / cloudbase_access_tokenstring接口调用凭证
返回值
Object

返回的 JSON 数据包

属性类型说明
errcodenumber错误码
errmsgstring错误信息
dataArray.个人模板列表

data 的结构

属性类型说明
priTmplIdstring添加至帐号下的模板 id,发送小程序订阅消息时所需
titlestring模版标题
contentstring模版内容
examplestring模板内容示例
typenumber模版类型,2 为一次性订阅,3 为长期订阅
keywordEnumValueListArray.枚举参数值范围

keywordEnumValueList 的结构

属性类型说明
keywordCodestring枚举参数的 key
enumValueListArray.枚举参数值范围列表

### 微信小程序实现订阅消息功能 #### 启用并配置消息推送 为了使微信小程序能够发送订阅消息,需先完成一些准备工作。这包括但不限于准备小程序账号、搭建开发环境,并确保所使用的框架(如uniapp)和后端技术栈(如Spring Boot)都已就绪[^1]。 #### 订阅消息的工作流程 订阅消息的功能允许小程序向用户传递特定的信息,而这一过程依赖于微信的服务通知机制来最终触达用户设备。具体来说,当小程序希望传达某条信息时,它会将所需的数据连同目标用户的唯一标识一同提交给微信服务器;随后,由微信服务器负责验证这些信息的有效性和合法性,在确认无误之后再转发至对应的微信客户端上显示出来[^3]。 #### 开发指南概览 对于开发者而言,想要成功集成此特性,则需要遵循官方文档指导下的几个关键环节: - **后端部分**:构建接口用于组装待发送的消息体结构并向微信公众平台API发起调用来触发实际的通知动作。 ```javascript // 前端示例代码 (UniApp) wx.requestSubscribeMessage({ tmplIds: ['your_template_id'], success(res){ console.log('用户同意订阅', res); }, fail(err){ console.error('获取权限失败', err); } }); ``` ```java // 后端示例代码片段 (Spring Boot) @PostMapping("/sendTemplateMsg") public ResponseEntity<String> sendTemplateMsg(@RequestBody Map<String, String> params) { // 构建HTTP POST 请求... } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值