微信公众号推送模板消息
24-12-07
slbcun
814℃
0
公众号的类型分为服务号、订阅号和企业号,其中服务号和订阅号比较常见。要想实现公众号推动消息给指定的用户,其类型必须为服务号。
首次设置需要开启模板消息功能,登录公众号后台: mp.weixin.qq.com ,在左侧导航栏最下方有「添加新的功能」,打开,在「广告与服务」一类中找到「模板消息」,开通即可。
打开「模板消息」,选择模板库,需先选择所在行业(一个月只能修改一次),之后在下方的行业模板中选择合适的模板(可以搜索模板关键字)。
生成的模板ID就是我们推送模板消息需要的
需要获取ACCESS_TOKEN
其中的appid和appsecret,请在公号基本配置中查找。
https请求方式: GET
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
正常情况下,请求GET请求这个地址微信会返回如下数据:
{"access_token":"ACCESS_TOKEN","expires_in":7200}
其中的access_token就是我们需要的,将数据对应申请的模板填写一下 执行发送就可以了,完整代码如下:
public function http_curl($url,$type,$res,$arr){ /* $url 请求的url $type 请求类型 $res 返回数据类型 $arr post请求参数 */ $ch=curl_init(); /*$url='https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=SECRET'; */ curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); if($type=='post'){ curl_setopt($ch,CURLOPT_POST,1); curl_setopt($ch,CURLOPT_POSTFIELDS,$arr); } $output = curl_exec($ch); curl_close($ch); if($res=='json'){ return json_decode($output,true); } } function send(){ $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=SECRET"; $urlgetcon = file_get_contents($url); $usera = json_decode($urlgetcon, TRUE); $token = $usera['access_token']; $posturl = 'https://api.weixin.qq.com/cgi-bin/message/template/send?access_token='.$token; $openid = '获取用户openid'; $data = array( "touser"=>$openid, "template_id"=>"模板ID", "data" => array( "thing2" => array( "value"=>"消费项目", "color"=>"#173177" ), "amount3" => array( "value"=>"消费金额", "color"=>"#173177" ), "character_string14" => array( "value"=>"订单号", "color"=>"#173177" ), "thing28" => array( "value"=>"消费门店", "color"=>"#173177" ), "character_string35" => array( "value"=>"会员积分", "color"=>"#173177" ) ) ); $postjson = json_encode($data ); $resder = $this->http_curl($posturl,'post','json',$postjson); }
效果如下: