1. 程式人生 > >php之微信公眾號傳送模板訊息

php之微信公眾號傳送模板訊息

講一下開發專案中微信公眾號傳送模板訊息的實現過程(我用的還是Thinkphp5.0)。先看一下效果,如圖:

就是類似於這樣的,下面講一下實現過程:

第一步:微信公眾號申請模板訊息許可權:

立即申請:

申請過程就不說了,提交併且申請通過後,可以在模板庫中看到模板訊息列表:

想用哪個模板點選進去新增就行了:

新增模板後就存放到“我的模板庫”中了,這是我新增的需要用到的一些:

點選檢視模板的詳情,可以看到模板的id及各項內容引數名,不同的模板訊息的內容結構不一樣。這些id及欄位名在程式中會使用到:

第二步:程式實現模板訊息SDK:

同樣的,模板訊息是使用access token來發送的,所以要獲取token。

我把模板訊息的類檔案放在了extend下面,大致位置如圖:

程式碼截圖如下:

類檔案這樣就可以了,到時候直接引入使用就可以了。

第三步:構建模板訊息:

我把需要用到的模板訊息 都寫成一個個方法,放在公共類檔案中了,可以參考一下:

1 //下單成功通知模板
 2 /*
 3  * openid:微信唯一標識
 4  * orderSn:訂單號
 5  * goods_name:商品名稱
 6  * goods_num:商品數量
 7  * allMoney:總價格
 8  */
 9 function orderSuccess($openid=null,$orderSn=null,$goods_name=null,$goods_num=null,$allMoney=null
){ 10 $template = array( 11 "touser" => "$openid", 12 "template_id" => "gApc7CzZSiJOZ7OeoXKK8APmz-dcuQuwfBTzPblEWv4", 13 'url' => '跳轉地址', 14 'topcolor' => '#ccc', 15 'data' => array('first' => array('value' =>urlencode('親,您的訂單已建立成功,我們會立即為您備貨,並在第一時間內為您安排專人免費送貨到家!訂單詳情如下'), 16
'color' =>"#743A3A", 17 ), 18 'keyword1' => array('value' =>urlencode($orderSn), 19 'color' =>'#FF0000' 20 ), 21 'keyword2' => array('value' =>urlencode($goods_name), 22 'color' =>'#FF0000' 23 ), 24 'keyword3' => array('value' =>urlencode($goods_num), 25 'color' =>'#FF0000' 26 ), 27 'keyword4' => array('value' =>urlencode($allMoney), 28 'color' =>'#FF0000' 29 ), 30 'keyword5' => array('value' =>urlencode('線上支付'), 31 'color' =>'#FF0000' 32 ), 33 'remark' => array('value' =>urlencode('如果您對以上資訊有任何疑問,請直接在平臺上回復您的問題即可,或撥打客服電話4001021789。再次感謝您的惠顧!'), 34 'color' =>'#FF0000' 35 ), 36 ) 37 ); 38 return $template; 39 }

這只是我寫的其中一個下單成功的模板訊息,放在common檔案中了,這樣基本上就完成了:

下面引用模板訊息傳送到微信公眾號中

1  
2                     //構造訊息模板
3                     $template =orderSuccess($openid,$reoderSn,$goodsNames,$sum,$money);
4                     //引入模板訊息類
5                     Loader::import('org\WxMessage', EXTEND_PATH);
6                     //例項化訊息類
7                     $message = new \WxMessage();
8                     //傳送訊息
9                     $message->send_template_message(urldecode(json_encode($template)));

用loader引入extend下的訊息類檔案,傳送訊息後,就得到了剛開始的那張圖片內容。

挺簡單的,感覺有用的可以參考一下試試看。

原創:http://www.cnblogs.com/luokakale/p/8143684.html