接着上一篇写 聊聊公众号[服务号]的模板消息功能开发-1 按照上一篇把模板消息的相关要求申请完 就可以调服务端这边了 例子用PHP来写了 其他语言按照业务要求自己修改吧
服务端这边我们 新建了2个类 1个作为基类 1个专门处理模板消息发送[继承基类] 直接贴一下代码 需要先获取一下接口调用凭据 调用说明在下面这个官方文档里[空了再单独记录一篇]
https://developers.weixin.qq.com/doc/service/api/base/api_getaccesstoken.html
class WxPublicMessageBase{ protected $tplID; protected $page; protected $data; private string $sendPublicUrl = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=%s"; function __construct() { $bis = new PublicAcTokenBis(); //获取微信公众号 $token = $bis->wxPublicAcTokenGet(); $this -> sendPublicUrl = sprintf($this->sendPublicUrl, $token); } /** * Notes:发送公众号消息 * User: Z * Date: 2023/10/10 * Time: 18:59 * @param $openID * @return true * @throws Exception */ protected function sendMessage($openID) { $data = [ //接收通知的用户OPENID 'touser' => $openID, //模板消息ID 'template_id' => $this->tplID, //模板消息内容 'data' => $this->data, ]; $result = curl_post($this->sendPublicUrl, $data); $result = json_decode($result, true); if ($result['errcode'] == 0) { return true; } else { throw new Exception('微信公众号消息发送失败, ' . $result['errmsg']); } }}
然后下面专门处理消息发送类的代码
class SendWxMessageBis extends WxPublicMessageBase{ //订单成功ID 这个地方使用公众号模板消息的模板ID const ORDER_SUCCESS_ID = 'XXXXXXXXXXXX'; /** * Notes:用公众号模板消息给管理员发送新订单通知 * User: Z * Date: 2023/10/10 * Time: 19:08 * @param $tplJumpPage * @return true **/ public function orderSuccessPubMsgSend(string $tplJumpPage = '') { $this->tplID = self::ORDER_SUCCESS_ID; //$dataArr的数据源需要自己按照业务整理一下 $this->pubMsgDataHandle($dataArr); return parent::sendMessage('这里填写接收模板消息用户的openid'); } /** * Notes:处理模板消息内容 * User: Z * Date: 2023/10/10 * Time: 19:16 * @param $order */ public function pubMsgDataHandle($order) { $data = [ 'time3' => [ 'value' => $order['create_time'] ], 'thing5' => [ 'value' => $order['name'] ], 'character_string6' => [ 'value' => $order['client_no'] ], 'phone_number8' => [ 'value' => $order['client_phone'] ], 'thing10' => [ 'value' =>$order['shop_name'] ] ]; $this->data = $data; }
pubMsgDataHandle 这个方法里的$data数组 里面的每个元素 都需要严格按照公众号模板消息的字段填写 不能填错 不然就会发送消息出错 对应下面这个图 就是自己申请的新模板 每个字段都要对应填 这个比较重要 还有的话就是要特别注意下字段的长度和格式 非常容易发送失败 检查的时候得多注意

发送的话 差不多就是这些代码 可以直接固定填一些内容测试消息发送 记得收信息的用户一定得关注好发信息的公众号哈 这个别忘了
保持好奇 不断进步 下期见~