php 一次性订阅消息,这可能是网上第一篇关于微信公众号“一次性订阅消息”接口的实现 之 推送消息篇...

上篇讲了用户订阅篇,这次讲解推送篇。

先列目录

一点说明

代码实现

一点说明

一次性订阅接口并不是说会员订阅一次后就能不断的推送消息,而是说会员订阅一次后你只能推送一条,如果想再次推送,需要再一次订阅,这点要先搞明白,如果你想尝试一次订阅多次推送,微信会毫不犹豫的给你如下错误提示

user refuse to accept the msg hint: [5aw330620ge21]

代码实现

上一篇我们使用一个subscribe表存放了会员的订阅信息,包含openid、sence、template_id等,现在我们实现推送代码,这个过程不复杂,只需要给一个微信指定的地址POST一组json数据即可,返回的也是一组json,代表是否成功。

具体推送的每个字段含义可以参考文档

既然是post推送,那必须使用yii官方的扩展 yii2-httpclient,实现代码如下

$config = Yii::$app->params['WECHAT'];

$wxApp = new Application($config);

$accessToken = $wxApp->access_token; // EasyWeChat\Core\AccessToken 实例

$token = $accessToken->getToken(); // token 字符串

$data = [

'touser'=>'xxx',

'template_id'=>'xxx',

'scene'=>8,

'url'=>'http://baidu.com',

'title'=>'新视频更新啦',

'data'=>[

'content'=>[

'value'=>'leapder',

'color'=>'#4d4d4d'

]

],

];

$client = new Client();

$itemsResponse = $client->createRequest()

->setFormat(Client::FORMAT_JSON)

->setMethod('post')

->setUrl("https://api.weixin.qq.com/cgi-bin/message/template/subscribe?access_token={$token}")

->setData($data)

->send();

$responseData = $itemsResponse->getData();

// todo 根据$responseData的结果执行不同的业务逻辑

你可以把上面代码放到任何一个action中并执行,如果不是yii,你也可以使用任何一种post推送的类库,或是直接用curl都没有问题,要注意一点的是,这里的access_token是api的token而不是网页授权的,因为兄弟连系统使用了easywechat,我使用了它的接口直接取得了token。

一次性订阅还有个特别大的好处是客户可不关注公众号也能收到推送,对于没有关注公众号的会在服务通知内接受推送消息,看我测试的图你就明白了。

1460000010368014

最后

这就是本次公众号更新的“一次性订阅”接口的实现解说,希望对各位小伙伴有所帮助,当然这并不是最后一篇,下一篇将对这个接口一些细节进行说明,比如那个reserved的使用等等,那才是最后一篇。

本文原创发布于微信公众号 北哥兄弟连。

1460000010303848

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值