微信小程序推送公众号模板消息

 

 

一、描述:

因小程序自带推送只能实现单一推送,还得用户授权后才能推送,想要实现相关内容的多条推送,很显然不够用。

 

好在通过公众号提送消息可以连接到小程序,并且公众号单日上线10万条,可以实现小程序推送功能。

 

那么问题来了,如何实现公众号推送小程序相关消息呢?很显然可以使用openid来实现。

下面简单说明实现思路(假设各平台已绑定):

  1. 获取公众号token(token每天限制200次,最好实现全局统一调用,避免token覆盖导致的请求问题)

  2. 获取公众号关注用户的openid

  3. 通过公众号openid来获取unionid(说明:unionid是微信开放平台全局唯一标识)

  4. 通过unionid来获取小程序的openid(一般这个可以查询数据库,设计数据库应该把openid,unionid字段设置上)

  5. 通过小程序openid,发送公众号模板

 

二、前期准备:

1. 微信小程序认证

2. 微信公众号认证

3. 微信开放平台认证(小程序和公众号绑定同一开放平台,且必须认证)

 

三、代码实现

1. 获取公众号access_token

通过微信公众号的 AppId 和 AppSecret 获取 公众号的 access_token

说明:

  请求ip需在公众号中的白名单

  access_token有效期为7200s(2h)

// 请求地址:
post https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=SECRET

// 返回结果
{
    "access_token": "ACCESS_TOKEN",
    "expires_in": 7200
}

 

2.获取公众号关注用户的openid

 

一次拉取调用最多拉取10000个关注者的OpenID,可以通过多次拉取的方式来满足需求。

参数说明:

  access_token:  调用凭证

  next_openid   第一个拉取的OPENID,不填默认从头开始拉取

  

// 请求地址:
get https://api.weixin.qq.com/cgi-bin/user/get?access_token=ACCESS_TOKEN&next_openid=NEXT_OPENID

// 返回结果:
{
    "count": 2,
    "data": {
        "openid": [
            "OPENID1",
            "OPENID2"
        ]
    },
    "next_openid": "NEXT_OPENID",
    "total": 2
}

 

3. 通过公众号openid获取对应unionid

微信针对公众号获取用户信息给出了2个接口:

  a. 获取单个用户信息

  b. 批量获取用户信息(每次最多100条)

我这里主要讲解批量获取用户信息,如果想获取单个用户信息,可查看官方接口

// 请求地址
https://api.weixin.qq.com/cgi-bin/user/info/batchget?access_token=ACCESS_TOKEN

// post数据:
{
    "user_list": [
        {
            "openid": "openid1", 
            "lang": "zh_CN"
        },
        {
            "openid": "openid2", 
            "lang": "zh_CN"
        }
    ]
}



// 返回数据
{
    "subscribe": 1,
    "openid": "",
    "nickname": "",
    "sex": 1,
    "language": "",
    "city": "",
    "province": "",
    "country": "",
    "headimgurl": "",
    "subscribe_time": ,
    "unionid": "",  // 绑定开放平台才会有
    "remark": "",
    "groupid": 0,
    "tagid_list": [
        128,
        2
    ],
    "subscribe_scene": "ADD_SCENE_QR_CODE",
    "qr_scene": ,
    "qr_scene_str": ""
} 

 

微信小程序推送公众号模板消息

上一篇:深度解密微信疯读狂加粉的伎俩


下一篇:微信小程序中封装网络请求方法