PHP菜鸟博客_共同学习分享PHP技术心得【PHP爱好者】
微信扫码登陆网站类似 58同城(基于微信开发生成带参数的二维码的讲解)
2015-11-1 菜鸟站长


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



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沟通谢谢!





发表评论:
昵称

邮件地址 (选填)

个人主页 (选填)

内容