1. 程式人生 > >使用者在小程式操作後通過公眾號(服務號)推送通知

使用者在小程式操作後通過公眾號(服務號)推送通知

一、前言

使用者在小程式進行了一個操作,操作結果不是立馬返回的可能需要隔一段時間才能有處理結果,那麼這時候需要讓使用者知道操作的結果,應該怎麼辦呢?總的來說有兩種解決方案。一種是通過小程式模板訊息,推送服務通知。這種方式只能支援使用者提交表單或者進行了支付這兩種場景,支援的場景過少是這種方式的缺點。一種是通過公眾號(服務號)來推送訊息。這種方式相比第一種方式要好的多,沒有場景限制,能夠滿足所有需要通知的場景。

在上面說到的需求基礎上如果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"
}

注:此結果表示推送訊息成功。