这篇文章给大家分享的是有关微信开发之通过某个事件推送消息的示例的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
创新互联专注于兴宁企业网站建设,成都响应式网站建设,商城网站定制开发。兴宁网站建设公司,为兴宁等地区提供建站服务。全流程按需策划设计,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务
在model里新建CustomServiceModel 为微信接口
<?php namespace Home\Model; use Think\Model; 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 Home\Model; use Think\Model; 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"); }
感谢各位的阅读!关于“微信开发之通过某个事件推送消息的示例”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
网站名称:微信开发之通过某个事件推送消息的示例
本文来源:https://www.cdcxhl.com/article20/joscjo.html
成都网站建设公司_创新互联,为您提供品牌网站制作、网站营销、虚拟主机、移动网站建设、App开发、
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联