微信开发与thinkphp

tp中有wechat类,这样我们直接使用就会快很多了,不必反复造轮子。下面进入实例,微信有免费的接口测试账号号,https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login,   进去设置好接口配置信息,js安全配置域名,这些步骤就不讲了,自己看代码,配置一下就可以了,或者可以邮件联系我.

<?php
/**
 * Created by PhpStorm.
 * User: kok2015
 * Date: 2017/2/24
 * Time: 11:32
 */

//namespace Admin\Controller;
namespace Home\Controller;


class TestController extends \Think\Controller
{
    private $appid  ='wxc9aba9022d949xxx';//应替换成为你自己实际的
 private $secret = 'd9196aaa21549fdc8e6e792dfxxxxx';//应替换成为你自己实际的
 private $token ='ax1axxx';//应替换成为你自己实际的
    
    //配置相关 应该放在 配置文件中,这里举例子就没那么严谨了
 function index(){
        Vendor("Wechat.wechat#class");
 $option = ['token'=>$this->token,'appid'=>$this->appid,'appsecret'=>$this->secret];
 $wechat = new \Wechat($option);

 $res = $wechat->getUserList();
 $res2 = $res['data']['openid'];
 foreach($res2 as $v) {
            print_r($wechat->getUserInfo($v));
 }//获取已关注的列表 详细信息 然后可以进行业务操作,数据库存储等等

 }
    
    //网页授权 获取用户信息
 function auth2(){
        //网页 授权 获取用户信息
 if(I('get.code')){
                $url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid='.$this->appid.'&secret='.$this->secret.'&code='.I('get.code').'&grant_type=authorization_code';

 $res = json_decode($this->http_get($url));


 if(!$res)exit(__LINE__.'错误');
 $accessToken=$res->access_token;
 $openid= $res->openid;
                
 $res = json_decode($this->http_get('https://api.weixin.qq.com/sns/userinfo?access_token='.$accessToken.'&openid='.$openid.'&lang=zh_CN'),true);
 echo '欢迎来到kok的网页授权测试接口<br/>';
 foreach($res as $k=>$v){
                    //按需重载 这个地方 只是简单 举个栗子
 if(is_array($v)){
                        dump($v);
 }
                    if($k=='headimgurl'){
                        echo '<img src="'.$v.'" alt="图片">';
 echo  '<br/>';
 }else{
                        echo $k.'---'.$v.'<br/>';
 }
                }

            }else{
                exit('用户未授权');
 }
    }

    function refreshToken($refreshToken){
        $res = $this->http_get('https://api.weixin.qq.com/sns/oauth2/refresh_token?appid='.$this->appid.'&grant_type=refresh_token&refresh_token='.$refreshToken);
 var_dump($res);
 //按需要重载
 }
    
    function getUserUrl(){
        $url = urlencode('http://iphp.cc/Home/Test/auth2');//这个地方填你实际的需要授权访问地址, 然后在下面获得用户访问的地址,授权后就会去你回调的地址
 echo urldecode('https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxc9aba9022d949470&redirect_uri='.$url.'&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect');
 }

    function http_get($url){
        $oCurl = curl_init();
 if(stripos($url,"https://")!==FALSE){
            curl_setopt($oCurl, CURLOPT_SSL_VERIFYPEER, FALSE);
 curl_setopt($oCurl, CURLOPT_SSL_VERIFYHOST, FALSE);
 curl_setopt($oCurl, CURLOPT_SSLVERSION, 1); //CURL_SSLVERSION_TLSv1
 }
        curl_setopt($oCurl, CURLOPT_URL, $url);
 curl_setopt($oCurl, CURLOPT_RETURNTRANSFER, 1 );
 $sContent = curl_exec($oCurl);
 $aStatus = curl_getinfo($oCurl);
 curl_close($oCurl);
 if(intval($aStatus["http_code"])==200){
            return $sContent;
 }else{
            return false;
 }
    }
}

我的这个检测授权地址 就为

https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxc9aba9022d949470&redirect_uri=http%3A%2F%2Fiphp.cc%2FHome%2FTest%2Fauth2&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect

,将其复制到微信,点开这个url,授权以后就会打印出你的微信信息

nickname
content