訂閱通知是一個用戶主動訂閱、服務(wù)號按需下發(fā)的通知能力。使用過程請遵守《微信公眾平臺服務(wù)協(xié)議》《微信公眾平臺運營規(guī)范》。 用戶在前述場景主動訂閱后,服務(wù)號可通過接口向用戶發(fā)送訂閱通知,如信用卡動賬提醒、物流到貨通知等。訂閱通知分為一次性訂閱和長期訂閱,一次性訂閱是指用戶訂閱一次,服務(wù)號可不限時間地下發(fā)一條對應(yīng)的訂閱通知;長期訂閱是指用戶訂閱一次,服務(wù)號可長期多次下發(fā)通知,長期訂閱通知僅向政務(wù)民生、醫(yī)療等公共服務(wù)領(lǐng)域開放。
微信訂閱消息和微信模版消息的區(qū)別在于模版消息可以無視用戶的主觀意識,直接發(fā)給用戶;而訂閱消息則必須用戶同意系統(tǒng)才能發(fā)給用戶。這樣避免了給用戶帶來的騷擾。
因為微信有打算使用訂閱消息來取代模版消息,所以知識付費新增了訂閱消息功能,知識付費系統(tǒng)可以選擇使用模版消息還是訂閱消息。下面我們就來看看知識付費是如何加訂閱消息功能的。
知識付費訂閱消息如何添加呢?
第一步:公眾號添加訂閱消息
第二步:對照我們知識付費后臺的訂閱消息添加訂閱消息
第三步:代碼里添加訂閱消息
知識付費根目錄下extend\service\RoutineTemplateService
添加新的訂閱消息
添加發(fā)送方法:
例如下面的方法:
public static function sendOrderSuccess(array $data, $uid, $link = '')
{
RoutineTemplateService::sendTemplate(WechatUser::uidToOpenid($uid), RoutineTemplateService::setTemplateId(RoutineTemplateService::ORDER_PAY_SUCCESS), $link, $data);
}
發(fā)送訂閱消息
$data['character_string1']['value'] = $orderId;
$data['amount3']['value'] = $order['pay_price'];
$data['time2']['value'] = date('Y-m-d H:i:s', time());
$data['thing6']['value'] = '您購買的資料已支付成功!';
RoutineTemplate::sendOrderSuccess($data, $order['uid'], $site_url . Url::build('wap/material/my_material'));
第四步:前端用戶觸發(fā)訂閱消息
通過微信文檔,我們可以看到微信公眾號的訂閱消息是通過wx-open-subscribe標(biāo)簽來調(diào)起選擇的。如下事例:
<wx-open-subscrib template="TenvU22BA1jCp4YHfYEpRuESXYReQyDuhs4vbdWA99I" id="subscribe-btn">
<script type="text/wxtag-template" slot="style">
<style>
.subscribe-btn {color: #fff;background-color: #07c160;}
</style>
</script>
<script type="text/wxtag-template">
<button class="subscribe-btn">
一次性模版消息訂閱
</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>
根據(jù)事例我們可以了解使用wx-open-subscribe標(biāo)簽給template屬性傳入你需要彈出的訂閱消息模板ID即可,多個以英文逗號分隔。
通過下面的方法獲得需要的訂閱消息模板ID;
下面的方法中加觸發(fā)時返回的訂閱消息模板ID