GQ猿旅程微信小程序

微信消息推送

2018-04-20  本文已影响18人  GQ1994

微信消息推送

微信公众平台和小程序虽然都是腾讯开发,但是其是俩个独立的平台,包括账号也是独立存在,所以小程序和公众平台不可以使用同一个账号注册使用。

因是俩个平台,所以微信公众平台的用户openId和小程序用户openId不同,当然消息推送实现方式也不同

如果本地测试接口,需要在公众平台后台配置ip白名单,否则请求不成功

公众号消息推送

返回码 说明
-1 系统繁忙
0 请求成功
40001 验证失败
40002 不合法的凭证类型
40003 不合法的OpenID
40004 不合法的媒体文件类型
40005 不合法的文件类型
40006 不合法的文件大小
40007 不合法的媒体文件id
40008 不合法的消息类型
40009 不合法的图片文件大小
40010 不合法的语音文件大小
40011 不合法的视频文件大小
40012 不合法的缩略图文件大小
40013 不合法的APPID
41001 缺少access_token参数
41002 缺少appid参数
41003 缺少refresh_token参数
41004 缺少secret参数
41005 缺少多媒体文件数据
41006 access_token超时
42001 需要GET请求
43002 需要POST请求
43003 需要HTTPS请求
44001 多媒体文件为空
44002 POST的数据包为空
44003 图文消息内容为空
45001 多媒体文件大小超过限制
45002 消息内容超过限制
45003 标题字段超过限制
45004 描述字段超过限制
45005 链接字段超过限制
45006 图片链接字段超过限制
45007 语音播放时间超过限制
45008 图文消息超过限制
45009 接口调用超过限制
46001 不存在媒体数据
47001 解析JSON/XML内容错误

小程序消息推送

参数 必填 说明
grant_type 获取 access_token 填写 client_credential
appid 第三方用户唯一凭证
secret 第三方用户唯一凭证密钥,即appsecret

返回参数说明

正常情况下,微信会返回下述 JSON 数据包给开发者:

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

access_token:获取到的凭证

expires_in:凭证有效时间,单位:秒

错误时微信会返回错误码等信息,JSON 数据包示例如下(该示例为 AppID 无效错误):

        {"errcode": 40013, "errmsg": "invalid appid"}

3.消息推送

参数 必填 说明
touser 接收者(用户)的 openid
template_id 所需下发的模板消息的id
page 点击模板卡片后的跳转页面,仅限本小程序内的页面。支持带参数,(示例index?foo=bar)。该字段不填则模板无跳转。
form_id 表单提交场景下,为 submit 事件带上的 formId;支付场景下,为本次支付的 prepay_id
data 模板内容,不填则下发空模板
color 模板内容字体的颜色,不填默认黑色
emphasis_keyword 模板需要放大的关键词,不填则默认无放大

示例:

        {
          "touser": "OPENID",  
          "template_id": "TEMPLATE_ID", 
          "page": "index",          
          "form_id": "FORMID",         
          "data": {
              "keyword1": {
                  "value": "339208499", 
                  "color": "#173177"
              }, 
              "keyword2": {
                  "value": "2015年01月05日 12:30", 
                  "color": "#173177"
              }, 
              "keyword3": {
                  "value": "粤海喜来登酒店", 
                  "color": "#173177"
              } , 
              "keyword4": {
                  "value": "广州市天河区天河路208号", 
                  "color": "#173177"
              } 
          },
          "emphasis_keyword": "keyword1.DATA" 
        }

返回码说明:
在调用模板消息接口后,会返回JSON数据包。
正常时的返回JSON数据包示例:

    ```
    {
      "errcode": 0,
      "errmsg": "ok"
    }
    ```

错误时会返回错误码信息,说明如下:

返回码 说明
40037 template_id不正确
41028 form_id不正确,或者过期
41029 form_id已被使用
41030 page不正确
45009 接口调用超过限额(目前默认每个帐号日调用限额为100万)

效果图如下:

CE6E7116C5C453F28FBFDC9F11412B7D.png

事件队列发送消息

针对消息推送,当一条消息需要给很多人推送时或者同时给很多人推送消息时,为了保证服务器不会奔溃和用户请求等待时间,需要使用异步队列来推送消息,目前只有微信公众号这边的消息推送做了异步事件消息队列。

具体实现原理参照:Laravel 队列laravel 事件监听

上一篇下一篇

猜你喜欢

热点阅读