700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > php 异步请求微信模板消息_使用php发送微信公众号模板消息推送的方法

php 异步请求微信模板消息_使用php发送微信公众号模板消息推送的方法

时间:2021-10-15 11:50:50

相关推荐

php 异步请求微信模板消息_使用php发送微信公众号模板消息推送的方法

我们在微信公众号开发过程中经常会需要向用户推送消息,最常用到的就是微信公众号模板消息了,下面是代码工坊整理的php实现微信公众号模板消息的使用思路。

1、开通模板消息功能。

2、添加模板消息模板。

3、代码中首先先获取公众号的access_token。

4、获取到了access_token进行缓存,接下来我们拼接数据,组合出正确的格式。

5、向微信模板消息接口发送数据,微信会把信息发送给指定用户。(用户需已经关注公众号)

代码如下:

//推送消息

public function push(){

$access_token = $this->access_token();

if ($access_token == 400){

return json(['code'=>0,'message'=>'获取access_token失败']);

}

$url = "https://api./cgi-bin/message/template/send?access_token=".$access_token;

$data = array(

"touser" => $openid, //openid

"template_id" => '模板id', //模板id

"url" => '/',

"data" => array(

'first' => array(

'value'=>'尊敬的客户,您的订单有了新的进展',

'color'=>''

),

'keyword1'=>array(

'value'=>123465,

'color'=>''

),

'keyword2'=>array(

'value'=>'订单进度提醒',

'color'=>''

),

'keyword3'=>array(

'value'=>66666,

'color'=>''

),

'keyword4'=>array(

'value'=>date('Y-m-d H:i:s', time()),

'color'=>''

),

'remark' => array(

'value'=>'最新订单状态',

'color'=>''

),

), //模板数据

);

return $this->http_post_json($url,json_encode($data));//发送请求

}

public function http_post_json($url, $jsonStr)

{

$ch = curl_init();

curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonStr);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_HTTPHEADER, array(

'Content-Type: application/json; charset=utf-8',

'Content-Length: ' . strlen($jsonStr)

)

);

$response = curl_exec($ch);

$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

curl_close($ch);

return json_encode(array($httpCode, $response),true);

}

//获取access_token

public function access_token(){

$access_token = Cache::get('access_token');

if (!empty($access_token)){

return $access_token;

}

$appId = APPID;

$appSecret = appsecret;

$url = "https://api./cgi-bin/token?grant_type=client_credential&appid=".$appId."&secret=".$appSecret;

$ch = curl_init();//初始化curl

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); // 从证书中检查SSL加密算法是否存在

$data = json_decode(curl_exec($ch),true);

if(curl_errno($ch)){

var_dump(curl_error($ch)); //若错误打印错误信息

}

curl_close($ch);//关闭curl

if(Cache::set('access_token',$data['access_token'],172800)){

return $data['access_token'];

}else{

return 400;

}

}

其中access_token每天获取量有限制,请将本参数缓存下来,两小时更新一次。

微信公众号模板消息目前每天调用量为10万条。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。