在model里新建CustomServiceModel 为微信接口
<?php
namespace HomeModel;
use ThinkModel;
class CustomServiceModel extends Model {
// protected $tableName = 'wxmenu_statistics';
private static $wxInterFace;
public function Service($uid,$json){
$Model = D('Token');
$access_token = $Model->getToken();
$url = 'https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token='.$access_token;
$this->getHttpResponsePOST($url,$json);
}
//获取微信凭证 ACCESS_TOKEN
public function getACCESS_TOKEN($uid){
$interface = M('wxinterface','wxmenu');
$data = $interface->getInterfacebyUid($uid);
$AppId = $data[0]['AppId'];
$AppSecret = $data[0]['AppSecret'];
$ctime = $data[0]['ctime'];
if(time()-$ctime<7200){
$ACCESS_TOKEN = $data[0]['token'];
}else{
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$AppId."&secret=".$AppSecret;
$info = $interface->getHttpResponseGET($url);
$arr = json_decode($info,$assoc=true);
$ACCESS_TOKEN = $arr['access_token'];
$data[0]['token'] = $ACCESS_TOKEN;
$data[0]['ctime'] = time();
$interface->save($data[0]);
}
return $ACCESS_TOKEN;
}
/** 远程获取数据,GET模式
* 注意:
* 1.使用Crul需要修改服务器中php.ini文件的设置,找到php_curl.dll去掉前面的";"就行了
* 2.文件夹中cacert.pem是SSL证书请保证其路径有效,目前默认路径是:getcwd().'\cacert.pem'
* @param $url 指定URL完整路径地址
* @param $cacert_url 指定当前工作目录绝对路径
* return 远程输出的数据
*/
public function getHttpResponseGET($url) {
$curl = curl_init($url);
//curl_setopt($curl, CURLOPT_URL, $url);
//curl_setopt($curl, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, CURL_SSLVERSION_TLSv1);//SSL证书认证
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);//不认证
curl_setopt($curl, CURLOPT_HEADER, 0 ); // 过滤HTTP头
curl_setopt($curl,CURLOPT_RETURNTRANSFER, 1);// 显示输出结果
$responseText = curl_exec($curl);
//var_dump( curl_error($curl) );//如果执行curl过程中出现异常,可打开此开关,以便查看异常内容
curl_close($curl);
return $responseText;
}
/**
* 远程获取数据,POST模式
* 注意:
* 1.使用Crul需要修改服务器中php.ini文件的设置,找到php_curl.dll去掉前面的";"就行了
* 2.文件夹中cacert.pem是SSL证书请保证其路径有效,目前默认路径是:getcwd().'\cacert.pem'
* @param $url 指定URL完整路径地址
* @param $cacert_url 指定当前工作目录绝对路径
* @param $para 请求的数据
* @param $input_charset 编码格式。默认值:空值
* return 远程输出的数据
*/
function getHttpResponsePOST($url, $para, $input_charset = '') {
if (trim($input_charset) != '') {
$url = $url."_input_charset=".$input_charset;
}
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, CURL_SSLVERSION_TLSv1);//SSL证书认证
//curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);//SSL证书认证
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);//严格认证
curl_setopt($curl, CURLOPT_HEADER, 0 ); // 过滤HTTP头
curl_setopt($curl,CURLOPT_RETURNTRANSFER, 1);// 显示输出结果
curl_setopt($curl,CURLOPT_POST,true); // post传输数据
curl_setopt($curl,CURLOPT_POSTFIELDS,$para);// post传输数据
$responseText = curl_exec($curl);
//var_dump( curl_error($curl) );//如果执行curl过程中出现异常,可打开此开关,以便查看异常内容
curl_close($curl);
return $responseText;
}
}
?>
//---TOkenmodel 获取token
<?php
namespace HomeModel;
use ThinkModel;
class TokenModel extends Model{
public function getToken(){
$data['uid']=330;
$arr = $this->table('wxm_wxmenu_interface')->where($data)->find();
//file_put_contents("g.txt",$arr['token'],FILE_APPEND);
return $arr['token'];
}
public function setToken($token){
$to['token']=$token;
$arr= $this->table('wxm_wxmenu_interface')->where('uid=330')->save($to);
//file_put_contents("s.txt",$token,FILE_APPEND);
return true;
}
}
?>
//---然后在需要使用的action里面新增方法
//文本回复
public function msgReturn($openid,$array){
$json = '{
"touser":"'.strval($openid).'",
"msgtype":"text",
"text":
{
"content":"'.$array['content'].'"
}
}';
//调用客服接口
$uid=330;
D("CustomService")->Service($uid,$json);
}
//最后在需要使用的地方调用此接口
//修改未审核状态 //-----赵信------//
public function modn(){
$data['xid']=$_GET['xid'];
$data['bstate']=$_GET['bstate'];
$data['update_time'] = time();
$customer=M("Customer");
$member = M('members');
$cus = $customer->where('xid='.$data['xid'])->find();
$m_data = $member->where('oid='.$cus['oid'])->find();
$c=$customer->save($data);
if($c){
if($data['bstate']==5){
$array['content'] ="您推荐的客户“".$cus['xname']."”已被确认审核通过";
$this->msgReturn($m_data['openid'], $array);
}else if($data['bstate']==3){
$array['content'] ="您推荐的客户“".$cus['xname']."”已被确认已被推荐";
$this->msgReturn($m_data['openid'], $array);
}else if($data['bstate']==4){
$array['content'] ="您推荐的客户“".$cus['xname']."”已被确认为已成交客户";
$this->msgReturn($m_data['openid'], $array);
}
}
$this->redirect("success_customer");
}
登录后复制
以上就是微信通过某个事件推送消息的内容,更多相关内容请关注PHP中文网(www.uoften.com)!
发表评论 取消回复