php实现发送微信模板消息的方法
本文实例讲述了php实现发送微信模板消息的方法。分享给大家供大家参考。具体如下:
该方法基于thinkphp实现实现,具体OrderPush.class.php文件如下:
<?php
namespaceOrg\Weixin;
/**
*CreatedbyPhpStorm.
*User:StandOpen
*Date:15-1-7
*Time:9:41
*/
classOrderPush
{
protected$appid;
protected$secrect;
protected$accessToken;
function __construct($appid,$secrect)
{
$this->appid=$appid;
$this->secrect=$secrect;
$this->accessToken=$this->getToken($appid,$secrect);
}
/**
*发送post请求
*@paramstring$url
*@paramstring$param
*@returnbool|mixed
*/
functionrequest_post($url='',$param='')
{
if(empty($url)||empty($param)){
returnfalse;
}
$postUrl=$url;
$curlPost=$param;
$ch=curl_init();//初始化curl
curl_setopt($ch,CURLOPT_URL,$postUrl);//抓取指定网页
curl_setopt($ch,CURLOPT_HEADER,0);//设置header
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);//要求结果为字符串且输出到屏幕上
curl_setopt($ch,CURLOPT_POST,1);//post提交方式
curl_setopt($ch,CURLOPT_POSTFIELDS,$curlPost);
$data=curl_exec($ch);//运行curl
curl_close($ch);
return$data;
}
/**
*发送get请求
*@paramstring$url
*@returnbool|mixed
*/
functionrequest_get($url='')
{
if(empty($url)){
returnfalse;
}
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
$data=curl_exec($ch);
curl_close($ch);
return$data;
}
/**
*@param$appid
*@param$appsecret
*@returnmixed
*获取token
*/
protectedfunctiongetToken($appid,$appsecret)
{
if(S($appid)){
$access_token=S($appid);
}else{
$url="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$appsecret;
$token=$this->request_get($url);
$token=json_decode(stripslashes($token));
$arr=json_decode(json_encode($token),true);
$access_token=$arr['access_token'];
S($appid,$access_token,720);
}
return$access_token;
}
/**
*发送自定义的模板消息
*@param$touser
*@param$template_id
*@param$url
*@param$data
*@paramstring$topcolor
*@returnbool
*/
publicfunctiondoSend($touser,$template_id,$url,$data,$topcolor='#7B68EE')
{
/*
*data=>array(
'first'=>array('value'=>urlencode("您好,您已购买成功"),'color'=>"#743A3A"),
'name'=>array('value'=>urlencode("商品信息:微时代电影票"),'color'=>'#EEEEEE'),
'remark'=>array('value'=>urlencode('永久有效!密码为:1231313'),'color'=>'#FFFFFF'),
)
*/
$template=array(
'touser'=>$touser,
'template_id'=>$template_id,
'url'=>$url,
'topcolor'=>$topcolor,
'data'=>$data
);
$json_template=json_encode($template);
$url="https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=".$this->accessToken;
$dataRes=$this->request_post($url,urldecode($json_template));
if($dataRes['errcode']==0){
returntrue;
}else{
returnfalse;
}
}
}
希望本文所述对大家的php程序设计有所帮助。