好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

微信公共账号第三方管理工具开发 - php高级应用

微信公共账号第三方管理工具开发

最近在捣鼓微信公共平台提供的API,等确实一个获取用户信息的API,所以没有办法,只能自己去获取,手动填写当然可以解决问题,当然编程不就是为了让生活变的更简单么? 

当然,远程抓取微信公共平台数据的想法就油然而生,当然第一个想到了CURL,CURL可以远程提交表达,我感觉微信是提议让我们怎么的,只要不是恶意刷接口,就不会出现验证码.

主要注意的几个问题:

1.远程登录接口是时候的HTTPS协议.

2.登录成功后页面有跳转.

3.返回的HTML页面是可以直接输出的.

下面展示了一个CURL的具体写法,代码如下:

//微信远程登录绑定账号        public   function  Curl_login( $username , $pwd ){        $config_token  =  "XiaoDengPHP" ;        $pwd  = md5( $pwd );        $url  =  "https://mp.weixin.qq.com/cgi-bin/login?lang=zh_CN" ;        $postArray  =  array ( "username=" . $username , "pwd=" . $pwd , "imgcode=" , "f=json" );        $fields  = implode( "&" ,  $postArray );        $filedir  =  $_SERVER [ 'DOCUMENT_ROOT' ]. "/Cookies" ;        $cookie_file  =   $filedir . "/cookie.txt" ;        $ch  = curl_init();  www.111cn.net      curl_setopt( $ch , CURLOPT_URL,  $url );       curl_setopt( $ch , CURLOPT_SSL_VERIFYPEER, 0);       curl_setopt( $ch , CURLOPT_SSL_VERIFYHOST, 1);  //表示是https协议提交        curl_setopt( $ch , CURLOPT_HEADER, 0);  //不返回header部分        curl_setopt( $ch , CURLOPT_USERAGENT,  "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" );       curl_setopt( $ch , CURLOPT_POST, 1);       curl_setopt( $ch , CURLOPT_POSTFIELDS,  $fields );       curl_setopt( $ch , CURLOPT_COOKIEJAR,  $cookie_file );  //生产Cookies并保存在指定目录下        curl_setopt( $ch , CURLOPT_RETURNTRANSFER,1);  //将curl_exec()获取的信息以文件流的形式返回,而不是直接输出。        curl_setopt( $ch , CURLOPT_REFERER, "https://mp.weixin.qq.com/cgi-bin/login?lang=zh_CN" ); //跳转指向        $result  = curl_exec( $ch );        return  json_decode( $result );        // 关闭CURL会话        curl_close( $ch );   }  

上面这个方法就实现了,远程登录微信公共平台,接下来的事,就是去让账号变成开发者模式,一样的CURL.

注意这次的curl要带上cookies而不是生产cookies,重点代码在于验证服务器的相应,你需要设置一个服务器的连接和一个token,代码如下:

public   function  auth( $token )     {           $data  =  array (           $_GET [ 'timestamp' ],           $_GET [ 'nonce' ],           $token );           $sign  =  $_GET [ 'signature' ];          sort( $data );           $signature  = sha1(implode( $data ));            if ( $signature  ===  $sign ){                  echo  ( $_GET [ 'echostr' ]);              exit ;  //开源代码phpfensi.com           } else {              return  false;             }    }  

这样如果开通成功了,应该会返回一个MES=302的json数据和一个微信平台认证的token的信息.

只要你细心,你就会发现,微信连接里面TOKEN是一个动态变化的,但有是在一段时间内不变的,所以你需要这个token来构造URL,来获取其他页面信息,但开发现过程中,你一定遇到一个很崩溃的问题.

查看更多关于微信公共账号第三方管理工具开发 - php高级应用的详细内容...

  阅读:39次