概述
在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)!
最后
以上就是务实鸡为你收集整理的微信通过某个事件推送消息的全部内容,希望文章能够帮你解决微信通过某个事件推送消息所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复