[TOC] #### 1. 前言 --- EasyWechat 4.x 訂閱消息文檔:<https://easywechat.com/4.x/mini-program/subscribe_message.html> 微信官方文檔訂閱消息:[https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/subscribe-message.html](https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/subscribe-message.html) 下發(fā)訂閱消息官方文檔(注意:訂閱消息參數(shù)值內(nèi)容限制):[https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/subscribe-message/subscribeMessage.send.html](https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/subscribe-message/subscribeMessage.send.html) #### 2. 發(fā)送訂閱消息 --- **`page` 參數(shù)** 點(diǎn)擊模板卡片后的跳轉(zhuǎn)頁(yè)面,僅限本小程序內(nèi)的頁(yè)面。 支持帶參數(shù),(示例index?foo=bar)。該字段不填則模板無(wú)跳轉(zhuǎn)。 **`miniprogram_state` 參數(shù)** 跳轉(zhuǎn)小程序類型 formal 正式版 trial 體驗(yàn)版 developer 開發(fā)版, 省略時(shí)默認(rèn)為正式版 EasyWechat 訂閱消息示例中并沒有該參數(shù),我是在微信訂閱消息官方文檔發(fā)現(xiàn)的,經(jīng)測(cè)試,該參數(shù)可用 ```php $data = [ 'template_id' => 'bDmywsp2oEHjwAadTGKxxxxxx', // 訂閱消息模板id 'touser' => 'oSyZp5OBNPBRhG-7BVgWxbiNZm', // 接收者用戶openid 'page' => 'pages/index/index', // 小程序頁(yè)面路徑 'data' => [ // 模板內(nèi)容 'date01' => [ 'value' => '2019-12-01', ], 'number01' => [ 'value' => 10, ], ], 'miniprogram_state' => 'formal', // formal 正式版 trial 體驗(yàn)版 developer 開發(fā)版 ]; // 返回?cái)?shù)組 $result = $app->subscribe_message->send($data); ``` **特別注意:模板id為空時(shí)會(huì)拋出異常而不是以返回值的形式返回,所以最好使用 `try catch` 捕獲下錯(cuò)誤** ```php try { // 返回?cái)?shù)組 模板id為空時(shí)拋出異常 $result = $app->subscribe_message->send($data); } catch (\Throwable $e) { fault($e->getMessage()); } ``` **發(fā)送成功** ```php [ "errcode" => 0, "errmsg" => "ok", "msgid" => 1888884277765816322, ] ``` **判斷是否發(fā)送成功** ``` if (isset($result['errcode']) && $result['errcode'] == 0 ) { // 發(fā)送成功 } ``` #### 3. 發(fā)送失敗時(shí)常見返回值 --- **用戶沒有授權(quán)或授權(quán)的次數(shù)已用盡** ``` [ "errcode" => 43101, "errmsg" => "user refuse to accept the msg rid: 60b07a4d-07ed4b8e-286b09ae", ] ```