CRMEB多商戶使用,新增一個消息模板或訂閱消息。因為操作的邏輯是一樣的,所以這里就以消息模板來操作的,訂閱消息大同小異。
一、 先登錄自己的微信公眾號后臺,申請模板。我這里以《訪客接待消息通知》為例,下圖是我申請好的截圖。
二、將剛才申請的模板信息填寫到平臺后臺的模板管理中去,如下圖:
三、代碼實現部分,以下 … … 是省略了源代碼中的未修改的代碼部分:
- 修改配置文件,config/template.php 文件,因為我們增加的是微信公眾號消息,所以在wechat數組下增加一行,這里的鍵可以自定義,值就是剛才申請的模板編號,如圖:
- 增加模板消息的內容設定,所有模板消息或者訂閱消息的內容都在
crmeb/services/WechatTemplateMessageService.php
? 文件中實現的。
- 修改入口文件,因為我們這個模板需要傳入額外的參數,但是原來的方法中并沒有這個,所以我們增加一個
???$data[‘data’] ?? []
? 參數的傳入。public function sendTemplate(array $data) { $res = $this->templateMessage($data['tempCode'],$data['id'], $data['data'] ?? []); if(!$res || !is_array($res)) return true; ... ... }
- 新增模板消息的內容設定
public function templateMessage(string $tempCode, $id, $params = []) { $bill_make = app()->make(UserBillRepository::class); $order_make = app()->make(StoreOrderRepository::class); $refund_make = app()->make(StoreRefundOrderRepository::class); $order_status_make = app()->make(StoreOrderStatusRepository::class); switch ($tempCode) { ... ... case'SERVER_NOTICE': /* {{first.DATA}} 訪客姓名:{{keyword1.DATA}} 聯系方式:{{keyword2.DATA}} 項目名稱:{{keyword3.DATA}} {{remark.DATA}} */ $mer = app()->make(MerchantRepository::class)->get($params['mer_id']); $user = app()->make(UserRepository::class)->get($id); $data[] = [ 'tempCode' => 'SERVER_NOTICE', 'uid' => $id, 'data' => [ 'first' => '親,您有新的消息請注意查看~', 'keyword1' => $user['nickname'], 'keyword2' => $mer['mer_name'], 'keyword3' => $params['keyword3'], 'remark' => '' ], 'link' => '', 'color' => null ]; break; default: return false; break; } return $data; }
四、修改需要調用的代碼
- 上面就將模板消息的內容也設定好了,現在就去需要使用的地方調用就好了,我們找到客服消息的監聽文件,然后替換之前的發短信提醒的地方,如下圖:
這樣我們就完成了整個的流程開發了,重啟一下項目服務,即可。