使用者在小程式操作後通過公眾號(服務號)推送通知
阿新 • • 發佈:2018-12-17
一、前言
使用者在小程式進行了一個操作,操作結果不是立馬返回的可能需要隔一段時間才能有處理結果,那麼這時候需要讓使用者知道操作的結果,應該怎麼辦呢?總的來說有兩種解決方案。一種是通過小程式模板訊息,推送服務通知。這種方式只能支援使用者提交表單或者進行了支付這兩種場景,支援的場景過少是這種方式的缺點。一種是通過公眾號(服務號)來推送訊息。這種方式相比第一種方式要好的多,沒有場景限制,能夠滿足所有需要通知的場景。
在上面說到的需求基礎上如果A使用者在小程式進行了操作需要通知B使用者,只要B使用者關注了公眾號(服務號),那麼推送訊息進行通知就是可以實現的。
二、實現方案
由於第一種方案的場景限制以及實現比較方便,參考官方文件即可,在這裡不再描述。
第二種方式實現思路:
將微信公眾號和小程式關聯繫結,開發者資料庫記錄每個使用者的unionID以及在公眾號和小程式賬號下不同的openID,公眾號必須是服務號型別,訂閱號型別不支援開發者單獨給某個微信使用者主動傳送模版訊息。小程式的A使用者觸發某個操作,公眾號去提醒B使用者,開發者伺服器端呼叫sendUniformMessage介面給服務號下的某個繫結使用者傳送模版訊息。
三、具體步驟
a、公眾號(服務號)進行認證。
b、公眾號關聯小程式。具體關聯步驟,網上很多,搜一下即可。
c、伺服器端呼叫sendUniformMessage介面,實現推送。
程式碼如下:
sendUniformMessage介面請求地址:
POST https://api.weixin.qq.com/cgi-bin/message/wxopen/template/uniform_send?access_token=ACCESS_TOKEN
注:access_token——小程式介面呼叫憑證
請求資料示例:
{ "touser":"ojzW05MCMmYnD3xZZ-0kFa-SK6if", // 接收推送的使用者的openid "mp_template_msg":{ // 有此節點發送公眾號模板訊息 "appid":"wxae29545104ff81fb", // 公眾號appid "template_id":"gEb1-jKjtvSrIFNGCadGdFHf5_DmJxZ_iLT7j-ZOAYU", // 模板id "url":"#", // 公眾號模板訊息所要跳轉的url "miniprogram":{ "appid":"wxd5672a9b86a06fb9", // 小程式appid "pagepath":"" // 小程式頁面路由(路徑) }, "data":{ // 訊息模板中的資料(推送訊息要展示的內容) "first":{ "value":"恭喜你購買成功!", "color":"#173177" }, "keyword1":{ "value":"巧克力", "color":"#173177" }, "keyword2":{ "value":"39.8元", "color":"#173177" }, "remark":{ "value":"歡迎再次購買!", "color":"#173177" } } } }
返回資料:
{
"errcode": 0,
"errmsg": "ok"
}
注:此結果表示推送訊息成功。