当前位置:   article > 正文

PHP tp5微信扫码登陆_php对接微信公众号扫码登录开发

php对接微信公众号扫码登录开发

PC端微信公众号扫码关注登陆

一  公众号信息设置

(注:公众号必须具备网页授权获取用户基本信息

    1.  服务器配置
      1.  启用服务器配置
      2.  填写服务器配置信息

其中url是之后公众号收到的信息微信都将推送到你这个url上

      1. 服务器端验证接口

要判断微信有没有传echostr参数,第一次验证时微信时有传echostr参数,之后微信推送事件给你这个接口时是不带echostr参数,不做三元运算就会报错。$this->reponseMwg是验证完后微信推送事件给我们 我们处理事件的接口(下文附带代码)

    1. 配置接口信息
      1.  配置网页授权获取用户基本信息

开发——>接口权限——>网页服务——>网页授权获取用户基本信息——>设置

这个的话很简单的,就下载个证数放到域名/网站的根目录下 不会的自行百度下,我就不说了

 

配置完成后可以查看下

 

 

    1.  获取二维码

IndexController控制器

//初始化

public function _initialize()

{

$this->data = input();

        $this->loginTicket = new AgentTicketModel;

$this->weixin = new WeiXin;

}

//获取二维码

Public function getCode(){

     $scene_id = rand(1000,9999);     //这个时二维码的场景值,后期用户扫码该二维码就可以获取这个场景值,我们就知道该用户通过什么码进来,实现不同的业务逻辑 ,这里的话就不需要,我们只是简单的扫码登陆,无需判断他是通过什么码进来,所有可以随机生成就好

 //获取二维码票据

 $result = $this->weixin->code($scene_id);

//将微信返回的结果转化成数组

 $result = json_decode($result);

 $result = (array)$result;

//请求成功

if (!isset($result['errcode'])) {

    $ticket = $result['ticket'];

//用票据向微信换取二维码路径

    $ticket_img = 'https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=' . urlencode($ticket);

//这里我是把票据存进数据库,再把票据传给前端,前端用这个票据请求我的验证接口,如果接口返回验证通过,则说明用户扫码关注成功(注:这里你可以存一开始自己设置的$scene_id 一样的道理,不过个人觉得票据稳妥,而且可以不一定要存进数据库,也可以存session  看个人喜好)

     $this->loginTicket->addTicket($ticket);

     $this->assign('ticket',$ticket);

     $this->assign('image',$ticket_img);

     return $this->fetch();

   } else {

     echo '发生错误:错误代码 ' . $json['errcode'] . ',微信返回错误信息:' . $json['errmsg'];

            exit;

  }

}

 

附带存储票据方法和表

 

其中is_login就是检验用户是否登陆成功    opneid和check是本人做其他逻辑所需你们可以不用加

 

WeiXin 类

 

获取token

 

Config配置文件

appid 和 appsecret分别为公众号的appid和密钥

 

前端

前端获取到后台传来ticket  然后轮询请求登陆验证接口

 

前端轮询JS

 

登陆验证接口

 

 

回到1.1.3中的$this->reponseMwg()

其中的$this->callback()是你自己处理自己业务逻辑的方法

$postObj->EventKey  是你生成二维码时的$scene_id

$postObj->Ticket   是票据

 

你在callback里面修改存取票据的验证表中is_login的值改成1,即可  

到这里你也可以获取用户的微信信息

 

 

 

 

 

如有不懂 可+QQ2421168518我们一起讨论

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号