扫码关注公众号登陆网站

扫描微信公众号登陆网站

注释:本文章是扫码关注公众号登陆网站的功能(给公众号拉粉丝

首先申请微信公众号(类型为:‘服务号’),然后进行下面两条设置。

  1. 公众号设置ip白名单,就是把网站的ip填入白名单,在“基本配置”里面:
    在这里插入图片描述

  2. 服务器推送链接填写,不管是关注公众号,还是给公众号发消息,微信服务器都会把相关的信息,推送到这个链接,相当于微信支付的回调函数(自己的理解…),在这个链接方法下处理自己的业务逻辑。
    注意:如果网站启用了https,那么url就必须写https的
    在这里插入图片描述

逻辑实现思路:

  1. 结合微信公众号开发文档去生成微信公众号的关注二维码,生成二维码时可自己定义一个唯一的场景值id。
  2. 用户扫码后场景值id会由微信服务器推送到前边配置的url链接,我们在url链接方法中把场景值id存入数据库(当然扫码后用户的信息如头像,昵称都可以获取到,利用这些信息我们直接就创建账号了)。
  3. 前端页面做轮询(两秒一次setIntval),监控数据库有没有相同的场景值id存在,监控到场景值id存在了,将场景值id关联的用户信息返回执行登录即可。

下面是代码实现部分,代码直接可以用。

1.首先在微信公众号配置的url链接要做验证,就是让微信服务器能够找到并准确的把信息推送给我们的url链接,我们好来处理业务逻辑,填写URL,填写TOKNE,TOKEN自己随便定义。
在这里插入图片描述

class sns{
	const TOKEN='xxxx';//自己定义token,要填写入上图TOKEN位置
	//处理业务逻辑的URL方法,这个方法的链接写入上方URL处
	public function wei_get(){
		// 任何情况下都应首先验证消息的合法性
		if ($this->checkSignature(self::TOKEN) === true) {
			if(isset($_GET['echostr'])){
				// wechat 开启开发者模式接入时的认证
				echo $_GET['echostr'];
			}else {
				//公众平台消息转发 业务处理

			}
		}
	}
	//验证方法
	private function checkSignature(){
        $signature = isset($_GET["signature"]) ? $_GET["signature"] : '';
        $timestamp = isset($_GET["timestamp"]) ? $_GET["timestamp"] : '';
        $nonce = isset($_GET["nonce"]) ? $_GET["nonce"] : '';    
              
        $tmpArr = array(self::TOKEN, $timestamp, $nonce);
        sort($tmpArr);
        $tmpStr = implode( $tmpArr );
        $tmpStr = sha1( $tmpStr );
         
        if( $tmpStr == $signature ){
            return true;
        }else{
            return false;
        }
  }
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值