700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > PHP+TP框架实现微信公众号开发之发送模板消息

PHP+TP框架实现微信公众号开发之发送模板消息

时间:2020-11-10 17:56:38

相关推荐

PHP+TP框架实现微信公众号开发之发送模板消息

一:准备工作.

1.将需要使用到的微信配置放在config.php配置文件中方便获取.(我使用的是微信测试号)

return array(//'配置项'=>'配置值''appID'=>'wxaf7d6c*******e6','appSecret'=>'0bc58d56476*********546ab81d5e2');

二:获取使用微信公众号基本接口所需要的access_token,并全局缓存.

我在tp框架Application/Home/Common/function.php中定义公共方法getAccessToken方法获取access_token并全局缓存.

//该公共方法获取和全局缓存基本接口需要使用的access_token(该access_token为基本接口使用的access_token)function getAccessToken(){//我们将access_token全局缓存在文件中,每次获取的时候,先判断是否过期,如果过期重新获取再全局缓存//我们缓存的在文件中的数据,包括access_token和该access_token的过期时间戳.//获取缓存的access_token$access_token_data = json_decode(F('access_token'),true);//判断缓存的access_token是否存在和过期,如果不存在和过期则重新获取.if($access_token_data !== null && $access_token_data['access_token'] && $access_token_data['expires_in'] > time()){return $access_token_data['access_token'];}else{//重新获取access_token,并全局缓存$curl = curl_init();var_dump($curl);curl_setopt($curl,CURLOPT_URL,'https://api./cgi-bin/token?grant_type=client_credential&appid='.C('appID').'&secret='.C('appSecret'));curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);//获取access_token$data = json_decode(curl_exec($curl),true);var_dump($data);if($data != null && $data['access_token']){//设置access_token的过期时间,有效期是7200s$data['expires_in'] = $data['expires_in'] + time();//将access_token全局缓存,快速缓存到文件中.F('access_token',json_encode($data));//返回access_tokenreturn $data['access_token'];}else{exit('微信获取access_token失败');}}}

三:发送模板消息.

1.发送模版消息需要以post的方式请求url。

我在tp框架Application/Home/Common/function.php中定义公共方法curl_post方法发送模版消息.

//curl使用post方式请求url,参数为$arr是post方式传送的数据,为数组类型,$url为需要请求的urlfunction curl_post($arr,$url){//初始化$curl = curl_init();//设置抓取的urlcurl_setopt($curl, CURLOPT_URL, $url);//设置头文件的信息作为数据流输出curl_setopt($curl, CURLOPT_HEADER, 1);//设置获取的信息以文件流的形式返回,而不是直接输出。curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);//设置post方式提交curl_setopt($curl, CURLOPT_POST, 1);//设置post数据curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($arr));//执行命令$data = curl_exec($curl);//关闭URL请求curl_close($curl);//显示获得的数据print_r($data);}

2.在类中定义POST数据,并请求,成功发送模板消息.

//发送模版消息public function sendTemplateMessage(){//接受模板消息的用户openid$openid = 'oGRO5wHvvpLXxTu0-9p0WalaQauo';//模板消息id$template_id = 'yb2etwrd8GJ-n5zxTaRuyPWcUOSCFB7-hdtUYlNax4M';//获取access_token,该access_token为基本接口使用的access_token$access_token_arr = getAccessToken();//设置模板消息$array = array();//设置接受消息用户的openid$array['touser'] = $openid;//设置模板消息id$array['template_id'] = $template_id;//设置点击模板消息跳转的url,因为我是测试,所以写的是百度$array['url'] = '';//设置模板消息$data = array();$data['first'] = array();$data['first']['value'] = '恭喜你测试成功';$data['first']['color'] = '#173177';$array['data'] = $data;//调用公共方法curl_post,发送模板消息curl_post($array,'https://api./cgi-bin/message/template/send?access_token='.$access_token_arr);}

这就是发送模板消息的过程,如果有错误,请大家指出

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