美文网首页
接口操作

接口操作

作者: yuanlu954 | 来源:发表于2019-03-13 12:28 被阅读0次

    微信扫码登录:

    第一步:去 微信开放平台 申请权限接口 创建应用

    微信扫码登录

    第二步:在代码里创建微信登录方法

        //微信扫码登录
        public function wxLogin()
        {
            header("Content-type: text/html; charset=utf-8");
            $redirect_uri="http://www.wxqfx1688.com\get_user_info";
            $redirect_uri=urlencode($redirect_uri);//该回调需要url编码
            $appID="wx5bf9a4b25fd3ec3d";
            $scope="snsapi_login";//写死,微信暂时只支持这个值
            //准备向微信发请求
            $url = "https://open.weixin.qq.com/connect/qrconnect?appid=" . $appID."&redirect_uri=".$redirect_uri
                ."&response_type=code&scope=".$scope."&state=STATE#wechat_redirect";
            //请求返回的结果(实际上是个html的字符串)
            $result = file_get_contents($url);
            //替换图片的src才能显示二维码
            $result = str_replace("/connect/qrcode/", "https://open.weixin.qq.com/connect/qrcode/", $result);
            return $result; //返回页面
        }
    

    第三步:微信授权回调域 同步返回地址

    返回的数据:
    array(10) {
      ["openid"] => string(28) "oA9I11vLa_dx33eeRdHn28BdN4yk"
      ["nickname"] => string(11) "hello world"
      ["sex"] => int(1)
      ["language"] => string(5) "zh_CN"
      ["city"] => string(0) ""
      ["province"] => string(0) ""
      ["country"] => string(2) "AD"
      ["headimgurl"] => string(129) "http://thirdwx.qlogo.cn/mmopen/vi_32/DYAIOgq83eo1FN51iaAdhGUbAXmAjskOqSobVaFSDMHaMBdyP2f5jqGIk66rKK7wMc3j6GASkjR7uh7HKqgic5Xw/132"
      ["privilege"] => array(0) {
      }
      ["unionid"] => string(28) "oS5sU5mrcU7-KGiW7BYnlT67Q5iU"
    }
    

    返回地址方法处理

    方法处理:
        public function get_user_info()
        {
            $code = $_GET["code"];
            $appid = "wx5bf9a4b25fd3ec3d";
            $secret = "2862c4b1cdeb57ff6484e5529d8fcaf4";
            if (!empty($code))  //有code
            {
                //通过code获得 access_token + openid
                $url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=" . $appid
                    . "&secret=" . $secret . "&code=" . $code . "&grant_type=authorization_code";
                $jsonResult = file_get_contents($url);
                $resultArray = json_decode($jsonResult, true);
                $access_token = $resultArray["access_token"];
                $openid = $resultArray["openid"];
    
                //通过access_token + openid 获得用户所有信息,结果全部存储在$infoArray里,后面再写自己的代码逻辑
                $infoUrl = "https://api.weixin.qq.com/sns/userinfo?access_token=" . $access_token . "&openid=" . $openid;
                $infoResult = file_get_contents($infoUrl);
                $infoArray = json_decode($infoResult, true);
               //写你的逻辑带代码
          }
        }
    
    内嵌JS显示:

    这里就是通过js端实例化一个对象即可,首先在<head>标签内添加如下js文件,

     <script src="http://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js"></script>
    

    其次在html中定义一个div包含二维码,

    <div id="login_container"></div>
    

    最后在$(document).ready()内进行实例化:

    $(document).ready(function()
    {
        var obj = new WxLogin
        ({
            id:"login_container",//div的id
            appid: "你的appid",
            scope: "snsapi_login",//写死
            redirect_uri:encodeURI("你的处理扫码事件的方法") ,
            state: "",
            style: "black",//二维码黑白风格        
            href: "https://某个域名下的css文件"
        });
    });
    

    注意其中href里指向的css文件必须放在https协议下才能引用的到,不然页面上就是默认样式(显示上是一个比较大的二维码,你无法调节二维码的大小,位置,太痛苦了)。最后部分页面大概长成这样,这里的二维码大概只有140px:

    逻辑图:

    逻辑图

    相关文章

      网友评论

          本文标题:接口操作

          本文链接:https://www.haomeiwen.com/subject/emyzpqtx.html