微信小程序實現訂閱消息發送一共分爲三部實現
一:獲取訂閱消息模板ID
登錄微信小程序獲取模板:https://mp.weixin.qq.com/
二:獲取小程序的訂閱消息下發權限
在我們發送小程序的訂閱消息之前我們需要用戶來自己決定是否需要收到訂閱消息,如:
實現方法如下,在小程序端調用wx.requestSubscribeMessage接口來彈出用戶授權訂閱消息
wx.requestSubscribeMessage({
tmplIds: [模板ID],
success:(res)=> {
//成功回調
console.log(res)
}
})
三:調用接口發送訂閱消息
當用戶同意接受訂閱消息,實現第三步後用戶就可以接收到訂閱消息了,如果用戶拒絕接收的話,執行第三步也不會收到訂閱消息
發送訂閱消息的請求地址爲:https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=ACCESS_TOKEN
請求參數如下:
touser:接收者(用戶)的 openid
template_id:所需下發的訂閱模板id
page:點擊模板卡片後的跳轉頁面,僅限本小程序內的頁面。支持帶參數,(示例index?foo=bar)。該字段不填則模板無跳轉。
data:模板內容,格式形如 { "key1": { "value": any }, "key2": { "value": any } }
實例如:
{
"touser": "OPENID",
"template_id": "TEMPLATE_ID",
"page": "index",
"data": {
"number01": {
"value": "339208499"
},
"date01": {
"value": "2015年01月05日"
},
"site01": {
"value": "TIT創意園"
} ,
"site02": {
"value": "廣州市新港中路397號"
}
}
}
實現訂閱發送的具體操作如下,這裏我是用的時Yii框架實現,使用了easywechat和yii2-httpclient插件:
//獲取access_token
$miniProgram = Yii::$app->wechat->miniProgram;
$token = $miniProgram->access_token->getToken(true);
$token = $token['access_token'];
//設置接口參數
$datas = [
'template_id' => 'XXX',
'touser' => 'XXXX',
'page' => 'index',
'data' => [
'date3' => [
'value' => 'xx',
],
'name1' => [
'value' => 'xx',
],
'phone_number4' => [
'value' => 'xx',
],
'phrase14' => [
'value' => 'xx',
],
'thing8' => [
'value' => 'xx',
],
],
];
$client = new Client();
$itemsResponse = $client->createRequest()
->setFormat(Client::FORMAT_JSON)
->setMethod('post')
->setUrl("https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token={$token}")
->setData($datas)
->send();
$responseData = $itemsResponse->getData();
根據如上步驟就可以實現小程序的訂閱消息發送