云服务器 99 / 年,新老同享(可以99/年续费),开发者力荐特惠渠道,新客户在享受9折
阿里云推广

微信扫码登陆网站类似 58同城(基于微信开发生成带参数的二维码的讲解)

  • 内容
  • 评论
  • 相关

边说逻辑边贴出代码吧还是!

1.数据库设计:

id  nickname  state     ticket         openid    主要看下后三个字段

1    wlphp       0          ***            djsfj


2.客户端每隔1秒发送post请求一旦返回1页面跳转登陆成功:


获取ticket代码请看上篇文章:基于微信开发生成带参数的二维码的讲解

<script src="http://libs.baidu.com/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
<script>
var ticket="<?php echo $ticket?>";
setInterval("wlphp()",1000); //每隔一秒去post给服务端
function wlphp(){
 $.post("wlphp.php",{ticket:ticket},function (data){
      if(data==1){
          window.location.href="https://www.wlphp.com";
      }
      
 });
}
</script>


3.用户用微信扫描二维码的时候我们会收到

   <ToUserName>gh_eb6940eed***</ToUserName>
    <FromUserName>ofRsxuGNUpSuCBQVEF6YmbQ2y7dg</FromUserName>
    <CreateTime>1445757243</CreateTime>
    <MsgType>event</MsgType>
    <Event>SCAN</Event>
    <EventKey>123</EventKey>
    <Ticket>gQH57zoAAAAAAAAAASxodHRwOi8vd2VpeGluLnFxLmNvbS9xL3JrT0FPeG5tNjdhU3c5ZWpzRzI1AAIEAH8sVgMEgDoJAA==</Ticket>

这样子一个xml  我们需要做两件事情:

第一步操作数据库:把该xml解析成数组 FromUserName  判断数据库openid 有没有这个,若果没有insert语句:

insert into user (nickname,state,openid,ticket) values ('自己获取','0','从xml中获取','从xml中获取'),如果存在该openid了,说明该会员已经在系统中存在了对吧?更新下  update user set ticket='从xml中获取'  where openid='从xml中获取';   ok

第二步给扫码用户推送消息:   <a href='https://www.wlphp.com?openid=从xml获取的&ticket=从xml获取的'>您确定使用该微信账号登陆菜鸟博客吗?wlphp.com</a>

如果用户点击推送的a标签内容,执行操作 updtae user  set state=1 where openid='' and ticket='' ;如果用户不点击则不执行任何操作


4.wlphp.php的代码:

$sql="select * from user where ticket='{$_POST['ticket']}' and state=1";

一旦该sql可以取出数据:

就 创建session['nickname']等  然后update这条数据ticket为空 state为0

返回1   然后前台轮询js就会跳转登陆


扫码登陆ok   如果你那里还有不清楚的地方 联系我qq沟通谢谢!


本文标签:这篇文章木有标签

版权声明:若无特殊注明,本文皆为《菜鸟站长》原创,转载请保留文章出处。

本文链接:微信扫码登陆网站类似 58同城(基于微信开发生成带参数的二维码的讲解) - https://wlphp.com/?post=25

发表评论

电子邮件地址不会被公开。 必填项已用*标注

提示信息

redis加载失败。

«点击返回