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下的消息类文件,发送消息后,就得到了刚开始的那张图片内容。

Buy me a cup of coffee :)

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在 PHP发送微信公众号模板消息,首先需要在微信公众平台中创建一个模板消息并获取模板 ID。接下来,您需要在 PHP 中使用 cURL 库向微信 API 发送 POST 请求,以便将模板消息发送给用户。以下是示例代码: ```php $access_token = 'YOUR_ACCESS_TOKEN'; $template_id = 'YOUR_TEMPLATE_ID'; $url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=".$access_token; $data = array( 'touser' => 'OPENID', 'template_id' => $template_id, 'data' => array( 'first' => array('value' => 'Hello, world!'), 'keyword1' => array('value' => 'Keyword 1'), 'keyword2' => array('value' => 'Keyword 2'), 'remark' => array('value' => 'This is a remark.') ) ); $data_string = json_encode($data); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'Content-Length: ' . strlen($data_string) )); $result = curl_exec($ch); curl_close($ch); echo $result; ``` 上述代码中,`$access_token` 是您的公众号访问令牌,`$template_id` 是您创建的模板消息的 ID。您需要将 `OPENID` 替换为要接收模板消息的用户的 OpenID。`$data` 数组包含模板消息的详细信息,其中 `first`、`keyword1`、`keyword2` 和 `remark` 分别对应模板消息中的不同部分。最后,使用 cURL 库将 `$data` 数组作为 JSON 字符串发送到微信 API,然后解析响应以查看是否成功。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值