18910140161

基于php的微信公众号模板消息发送还有遇到的问题

顺晟科技

2021-06-16 10:56:44

295

最近在做企业微信的公共开发,其实就是简单的做一个服务号群发,给关注的用户发消息。相比客服消息和群发消息,模板消息无疑是更符合需求的。

直接在这里编码:

?服务器端编程语言(Professional Hypertext Preprocessor的缩写)

header(' content-type : text/html;charset=utf-8 ');

define('TOKEN ',' my _ weixin ');//定义您的令牌

Oauth类{

//获取全局访问令牌

公共函数get_token(){//如果已经存在,直接返回access_token

$ appid=//appid

$ appsecret=

$ URL=' https://API . weixin . QQ.com/CGI-bin/token?grant _ type=client _ credentialpid='。$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 _ close($ ch);

$arr=json_decode($res,true);//将结果转换成数组

$ _ SESSION[' access _ token ']=$ arr[' access _ token '];//在会话中保存access_token,但不保存,每次都得到一个新的token

$ _ SESSION[' expire _ time ']=time()7200;

返回$ arr[' access _ token '];

}

//推送模板信息参数:openid给谁,客户名称,客户电话,推荐属性(参数自定义)

函数sendMessage($openid,$customName,$customPhone,$reportBuilding) {

//获取全局令牌

$ 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,//to who,openid

template _ id '=' drauvkmbfsognrkxxexsmuxhpm _ tcj 1 MDN 4 XJ 6 gsfie ',//微信后台模板信息id

Url'=',//下面是订房模板的例子。

数据'=数组(

first'=数组(

Value'='您有新客户,请及时查看!

color'='#173177 '

),

keyword1 '=数组(

值'=$customName,//传递的变量

color'='#173177 '

),

keyword2 '=数组(

值'=$customPhone,

color'='#173177 '

),

keyword3 '=数组(

value'=$reportBuilding,

color'='#173177 '

),

keyword4'=数组(

值'=日期(' Y-m-d H:i:s '),

color'='#173177 '

),

备注'=数组(

值'='请及时联系客户!

color'='#173177 '

),

)

);

//将上述数组数据转换成json格式

$ post _ data=JSON _ encode($ post _ data);

//以post模式发送数据br //配置curl请求

}

}

$ send=new Oauth();//实例化类

$ send-send message(' o9 arg 1 uvow0 tnpsjhoxc _ ZK tacw ',' 1 ','肖祥宁',' 3 ');//调用方法

代码还读取了互联网上大佬们的分享和接口文档。在这个过程中,我遇到了一个很蠢的问题,就是本来想执行这个方法一次,但是在访问页面的时候,总是刷模板消息,直到刷出接口访问次数。查了半天,发现这个代码是写在微信官方账号和服务器配置的url默认页面上的。当微信成功发送消息时,它会将成功的消息返回到网址页面。这是一次新的访问,模板消息将再次发送。所以解决了在其他页面写这个代码的问题,挺尴尬的

相关文章
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航