php实现微信开发模板消息执行一次方法为什么会不断发送模板消息

我好饿我想吃饭 2018-05-25 05:25:51
以下是代码,执行结果一直发送模板消息然乎调用接口次数达到上线,是哪里循环了吗,还是和微信返回的内容有关,我用的是测试帐号,然后用自己的帐号关注测试号进行的


<?php
header('content-type:text/html;charset=utf-8');
define("TOKEN", "my_weixin"); //define your token
$send = new Oauth();//实例化类
$send->sendMessage('o4Kif1KnvSAd1vdRcCudansktMAI','1','肖翔宁','3');//调用方法

class Oauth {
//获得全局access_token
public function get_token(){//如果已经存在直接返回access_token
/*if($_SESSION['access_token'] && $_SESSION['expire_time']>time()){
return $_SESSION['access_token'];
}else{*/
//1.请求url地址
$appid ='wx091c8457b37ccbe6'; //appid
$appsecret ='9db09814ee18460579a4db2caa89520e';//appsecret
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$appsecret;//请求地址
//2初始化curl请求
$ch = curl_init();
//3.配置请求参数
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); // 从证书中检查SSL加密算法是否存在
curl_setopt($ch, CURLOPT_URL, $url);//请求
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//不直接输出数据
//4.开始请求
$res = curl_exec($ch);//获取请求结果
if( curl_errno($ch) ){
var_dump( curl_error($ch) );//打印错误信息
}
//5.关闭curl
curl_close( $ch );
$arr = json_decode($res, true);//将结果转为数组
$_SESSION['access_token']=$arr['access_token'];//将access_token存入session中,可以不存,每次都获得新的token
$_SESSION['expire_time']=time()+7200;

return $arr['access_token'];
// }
}

//推送模板信息 参数:发送给谁的openid,客户姓名,客户电话,推荐楼盘(参数自定)
function sendMessage($openid,$customName,$customPhone,$reportBuilding) {
//获取全局token
$token = $this->get_token();
$url="https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=".$token;//模板信息请求地址
//发送的模板信息(微信要求json格式,这里为数组(方便添加变量)格式,然后转为json)
$post_data = array(
"touser"=>$openid, //推送给谁,openid
"template_id"=>"d7yJRpmfXcH68S9k33xPPxg78hfEusTpPH-IsQaYhnw", //微信后台的模板信息id
"url"=>"", //下面为预约看房模板示例
"data"=> array(
"first" => array(
"value"=>"您有新客户,请及时查看!",
"color"=>"#173177"
),
"keyword1"=>array(
"value"=>$customName, //传的变量
"color"=>"#173177"
),
"keyword2"=>array(
"value"=>$customPhone,
"color"=>"#173177"
),
"keyword3"=>array(
"value"=>$reportBuilding,
"color"=>"#173177"
),
"keyword4"=> array(
"value"=>date('Y-m-d H:i:s'),
"color"=>"#173177"
),
"remark"=> array(
"value"=>"请及时联系客户哦!",
"color"=>"#173177"
),
)
);
//将上面的数组数据转为json格式
$post_data = json_encode($post_data);
//发送数据,post方式<br>         //配置curl请求
$ch = curl_init();//创建curl请求
curl_setopt($ch, CURLOPT_URL,$url); //设置发送数据的网址
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); //设置有返回值,0,直接显示
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,0); //禁用证书验证
curl_setopt($ch, CURLOPT_POST, 1);//post方法请求
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);//post请求发送的数据包
//接收执行返回的数据
$data = curl_exec($ch);
//关闭句柄
curl_close($ch);
$data = json_decode($data,true); //将json数据转成数组
return $data;
}

}
?>
...全文
1405 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
那请问老哥这个加什么判断,我想实现就发一条消息,是因为他会有返回信息给我所以一直访问这个页面执行吗
  • 打赏
  • 举报
回复
问题解决了,问题在于服务器端配置,微信开发配置的url我在这个页面的index.php写的,先在修改了就可以了
Flyinsky1 2018-05-26
  • 打赏
  • 举报
回复
上线 应该是上限?急性子?
$send->sendMessage('o4Kif1KnvSAd1vdRcCudansktMAI','1','肖翔宁','3');//调用方法
这个不加判断,每次进页面都调用,
yt_php 2018-05-26
  • 打赏
  • 举报
回复
post方式发送curl请求 post_data直接是数组就行 如果要求的json格式 需要声明下发送的是json格式 curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type:application/json', 'Content-Length:'.strlen($post_data) ));

20,398

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧