标签:curl函数 ice 深度 扫描 公众平台 接口 loader else 抓取
1 <?php 2 define("APPID","wx123456");//填写自己的APPID 3 define("APPSECRET","abcdefg");//填写自己的APPSECRET 4 define("TOKEN", "token");//token随便填,只要一致就行。 5 $wechat = new wechat(); 6 $wechat->valid();//微信公众号安全验证 7 8 class wechat{ 9 private $_appid; 10 private $_appsecret; 11 private $_token; 12 public function __construct(){ 13 $this->_appid =APPID; 14 $this->_appsecret =APPSECRET; 15 $this->_token =TOKEN; 16 } 17 /** 18 *接入微信平台时验证 19 **/ 20 public function valid()//检查安全性 21 { 22 $echoStr = $_GET["echostr"]; 23 24 //valid signature , option 25 if($this->checkSignature()){//检查签名是否一致 26 echo $echoStr;//验证成功后,输出 27 exit; 28 } 29 } 30 /** 31 *验证签名 32 **/ 33 private function checkSignature() 34 { 35 $signature = $_GET["signature"]; 36 $timestamp = $_GET["timestamp"]; 37 $nonce = $_GET["nonce"]; 38 $token = TOKEN; 39 $tmpArr = array($token, $timestamp, $nonce); 40 sort($tmpArr, SORT_STRING); 41 $tmpStr = implode( $tmpArr ); 42 $tmpStr = sha1( $tmpStr ); 43 44 if( $tmpStr == $signature ){ 45 return true; 46 }else{ 47 return false; 48 } 49 } 50 }
MsgType
|
Event
|
信息类型
|
text
|
|
用户发送了文本消息
|
image
|
|
用户发送了图片消息
|
voice
|
|
用户发送了语音消息
|
video
|
|
用户发送了视频消息
|
shortvideo
|
|
用户发送了小视频消息
|
location
|
|
用户发送了地理位置消息
|
link
|
|
用户发送了连接消息
|
event
|
subscribe
|
用户关注了公众号
|
event
|
unsubscribe
|
用户取消关注了公众号
|
event
|
subscribe+ EventKey
|
用户通过扫描带参二维码关注了公众号
|
event
|
SCAN
|
已关注公众号的用户扫描了带参数二维码
|
event
|
LOCATION
|
用户进入公众号时上报地理位置
|
event
|
CLICK
|
用户点击菜单拉取消息
|
event
|
VIEW
|
用户点击菜单跳转链接
|
ToUserName
|
开发者微信号,是接收推送的开发者
|
FromUserName
|
发送方帐号(一个OpenID),用户相对于公众号的唯一标识
|
直接修改wechatMsgAction.php,添加事件处理函数,并使微信公众号推送事件调用该函数。
1 define("APPID","wx123456");//填写自己的APPID 2 define("APPSECRET","abcdefg");//填写自己的APPSECRET 3 define("TOKEN", "token");//token随便填,只要一致就行。 4 $wechat = new wechat(); 5 $WeChatMessage->Action();//不同于第三步的调用,此处是处理事件的函数 6 class WeChatMessage{ 7 public function Action(){ 8 /*获得请求时POST:XML字符串不能用$_POST获取,因为没有key*/ 9 $xml_str = $GLOBALS[‘HTTP_RAW_POST_DATA‘]; 10 if(empty($xml_str)){ 11 die(‘‘); 12 } 13 if(!empty($xml_str)){ 14 // 解析该xml字符串,利用simpleXML 15 libxml_disable_entity_loader(true); 16 //禁止xml实体解析,防止xml注入 17 $request_xml = simplexml_load_string($xml_str, ‘SimpleXMLElement‘, LIBXML_NOCDATA); 18 //判断该消息的类型,通过元素MsgType 19 switch ($request_xml->MsgType){ 20 case ‘event‘: 21 //判断具体的时间类型(关注、取消、点击) 22 $event = $request_xml->Event; 23 $Ticket = $request_xml->Ticket; 24 if ($event==‘subscribe‘&&$Ticket==‘‘) { // 普通关注事件 25 $this->_doSubscribe($request_xml); 26 } 27 if ($event==‘subscribe‘&&$Ticket!=‘‘) {//扫描渠道二维码关注 28 $this->_doQRSubscribe($request_xml); 29 } 30 if ($event==‘SCAN‘&&$Ticket!=‘‘) {//已关注公众号扫描渠道二维码事件 31 $this->_doSCAN($request_xml); 32 } 33 break; 34 case ‘text‘://文本消息 35 $this->_doText($request_xml); 36 break; 37 case ‘image‘://图片消息 38 $this->_doImage($request_xml); 39 break; 40 case ‘voice‘://语音消息 41 $this->_doVoice($request_xml); 42 break; 43 case ‘video‘://视频消息 44 $this->_doVideo($request_xml); 45 break; 46 case ‘shortvideo‘://短视频消息 47 $this->_doShortvideo($request_xml); 48 break; 49 case ‘location‘://位置消息 50 $this->_doLocation($request_xml); 51 break; 52 case ‘link‘://链接消息 53 $this->_doLink($request_xml); 54 break; 55 } 56 } 57 } 58 }
1 //初始化 2 $curl = curl_init(); 3 //设置抓取的url 4 curl_setopt($curl, CURLOPT_URL, ‘http://www.baidu.com‘); 5 //设置头文件的信息作为数据流输出 6 curl_setopt($curl, CURLOPT_HEADER, 1); 7 //设置获取的信息以文件流的形式返回,而不是直接输出。 8 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 9 //执行命令 10 $data = curl_exec($curl); 11 //关闭URL请求 12 curl_close($curl); 13 //显示获得的数据 14 print_r($data);
1 //初始化 2 $curl = curl_init(); 3 //设置抓取的url 4 curl_setopt($curl, CURLOPT_URL, ‘http://www.baidu.com‘); 5 //设置头文件的信息作为数据流输出 6 curl_setopt($curl, CURLOPT_HEADER, 1); 7 //设置获取的信息以文件流的形式返回,而不是直接输出。 8 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 9 //设置post方式提交 10 curl_setopt($curl, CURLOPT_POST, 1); 11 //设置post数据 12 $post_data = array( 13 "username" => "coder", 14 "password" => "12345" 15 ); 16 curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data); 17 //执行命令 18 $data = curl_exec($curl); 19 //关闭URL请求 20 curl_close($curl); 21 //显示获得的数据 22 print_r($data);
标签:curl函数 ice 深度 扫描 公众平台 接口 loader else 抓取
原文地址:https://www.cnblogs.com/mudaoyuye/p/9673986.html