前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP 对接微信公众号订阅消息详细教程

PHP 对接微信公众号订阅消息详细教程

原创
作者头像
CRMEB商城源码
发布2022-06-02 11:04:56
1.7K0
发布2022-06-02 11:04:56
举报
文章被收录于专栏:crmeb

订阅通知是一个用户主动订阅、服务号按需下发的通知能力。使用过程请遵守《微信公众平台服务协议》《微信公众平台运营规范》。 用户在前述场景主动订阅后,服务号可通过接口向用户发送订阅通知,如信用卡动账提醒、物流到货通知等。订阅通知分为一次性订阅和长期订阅,一次性订阅是指用户订阅一次,服务号可不限时间地下发一条对应的订阅通知;长期订阅是指用户订阅一次,服务号可长期多次下发通知,长期订阅通知仅向政务民生、医疗等公共服务领域开放。

微信订阅消息和微信模版消息的区别在于模版消息可以无视用户的主观意识,直接发给用户;而订阅消息则必须用户同意系统才能发给用户。这样避免了给用户带来的骚扰。

因为微信有打算使用订阅消息来取代模版消息,所以知识付费新增了订阅消息功能,知识付费系统可以选择使用模版消息还是订阅消息。下面我们就来看看知识付费是如何加订阅消息功能的。

知识付费订阅消息如何添加呢?

第一步:公众号添加订阅消息

图片1.png
图片1.png
图片2.png
图片2.png
图片3.png
图片3.png
图片4.png
图片4.png
图片5.png
图片5.png

第二步:对照我们知识付费后台的订阅消息添加订阅消息

图片6.png
图片6.png
图片7.png
图片7.png
图片8.png
图片8.png
图片9.png
图片9.png
图片10.png
图片10.png
图片11.png
图片11.png

第三步:代码里添加订阅消息

知识付费根目录下 extend\service\RoutineTemplateService

图片12.png
图片12.png

添加新的订阅消息

添加发送方法:

图片13.png
图片13.png

例如下面的方法:

public static function sendOrderSuccess(array $data, $uid, $link = '')

{

代码语言:txt
复制
RoutineTemplateService::sendTemplate(WechatUser::uidToOpenid($uid), RoutineTemplateService::setTemplateId(RoutineTemplateService::ORDER_PAY_SUCCESS), $link, $data);

}

发送订阅消息

$data'character_string1' = $orderId;

$data'amount3' = $order'pay_price';

$data'time2' = date('Y-m-d H:i:s', time());

$data'thing6' = '您购买的资料已支付成功!';

RoutineTemplate::sendOrderSuccess($data, $order'uid', $site_url . Url::build('wap/material/my_material'));

第四步:前端用户触发订阅消息

通过微信文档,我们可以看到微信公众号的订阅消息是通过 wx-open-subscribe 标签来调起选择的。如下事例:

<wx-open-subscrib template="TenvU22BA1jCp4YHfYEpRuESXYReQyDuhs4vbdWA99I" id="subscribe-btn">

<script type="text/wxtag-template" slot="style">

代码语言:txt
复制
<style>
代码语言:txt
复制
  .subscribe-btn {color: #fff;background-color: #07c160;}
代码语言:txt
复制
</style>

</script>

<script type="text/wxtag-template">

代码语言:txt
复制
<button class="subscribe-btn">
代码语言:txt
复制
  一次性模版消息订阅              
代码语言:txt
复制
</button>

</script>

</wx-open-subscribe>

<script>

var btn = document.getElementById('subscribe-btn');

btn.addEventListener('success', function (e) {

console.log('success', e.detail);

});

btn.addEventListener('error',function (e) {

console.log('fail', e.detail);

});

</script>

根据事例我们可以了解使用 wx-open-subscribe 标签给 template 属性传入你需要弹出的订阅消息模板 ID 即可,多个以英文逗号分隔。

通过下面的方法获得需要的订阅消息模板 ID;

图片14.png
图片14.png

下面的方法中加触发时返回的订阅消息模板 ID

图片15.png
图片15.png

源码附件已经打包好上传到百度云了,大家自行下载即可~

链接: https://pan.baidu.com/s/14G-bpVthImHD4eosZUNSFA?pwd=yu27

开源地址

码云地址:

http://github.crmeb.net/u/defu

Github 地址:

http://github.crmeb.net/u/defu

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档