• ibeacon的使用和应用场景简单示例


          目的,用ibeacon实现签到功能,不需要太严谨,只是试水。

          拿到ibeacon的第一感觉是,这东西能用嘛,2-3年的电池,后面商家说是用个3M双面胶找个地方一贴就行,感觉不太靠谱,嘿嘿,在网上找了一些的往ibeacon里写入的文章,先后用了3种不同的写入软件,在两个平台上试(安卓及IOS),均不成功,后找商家咨询,商家给了厂家电话,厂家技术KF当时在休假,等了两天才联系到,型号核对好后人家说偶手里的是个老版本,给出了个专用的安卓版的写入软件,逐成功写入uuid/主/副码。

          微信端的不用说了,申请开通摇一摇,设置好回调地址等(必须用域名), 设置一个摇完了点击直接跳转的“页面”,不需要进授权页面,只取openid即可,语言选用php的ci,版本2.2,以前部署过ubuntu下的ci环境,其实就是php环境,在网上下了个wamp最新版本,在windows2008 R2下安装,碰到一些问题,这里不表了。

          逻辑设计如下:

          用mysql,后台设计两个表,一个是员工表,一个是签到记录表,签到记录表只需要记录openid即可,设计如下:

        为了简单测试,这些都写到了一个控制器里面了,下面是控制代码:

    	public function redirect()
    	{
    		$data['title'] = "";
    		$code = $_GET['code'];
    		$appid = "wxxxxxxxxxxxxxxxxxxxx";
    		$appsecret="ffffffffffffffffffffffffffffffffffffffff";
    		$url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=".$appid."&secret=".$appsecret."&code=".$code."&grant_type=authorization_code";
    		//获取openid
    		$content = file_get_contents($url);
    		$awithoid = json_decode($content,1);//转换为PHP数组
    		$openid = $awithoid["openid"];//
    		$data['openid'] = $openid;
    		
    		//用openid去库里比对是否有此openid,存在就说明已经注册过此用户,直接跳签到,不存在就跳注册页面
    		$data['counts'] = $this->staff_info->getCountByOpenid($openid);
    		if ($data['counts'] > 0)
    		{
    			$res = $this->staff_info->getModelByOpenid($data['openid']);
    			$data['username'] = $res->realname;
    			$data['cellphone'] = $res->cellphone1;
    			$data['openid'] = $res->openid;
    			$this->load->view('signin',$data);
    		}
    		else
    		{
    		
    			//var_dump($data);
    			$this->load->view('reg',$data);
    		}
    	}
    

          

    	//注册用户
    	public function signup()
    	{
    		
    		$data_add['title'] = "";
    		$data_add['username'] = $_POST["username"];
    		$data_add['cellphone'] = $_POST["cellphone"];
    		$data_add['openid'] = $_POST["openid"];
    		$res = $this->staff_info->addStaffInfo($data_add);
    		if ($res) $this->load->view('signin',$data_add);//跳到签到页面
    	}
    	
    	//签到记录
    	public function signed_log()
    	{
    		$data_add['title'] = "";
    		$data_add['username'] = $_POST["username"];
    		$data_add['cellphone'] = $_POST["cellphone"];
    		$data_add['openid'] = $_POST["openid"];
    		$res = $this->signed_log->addSignedLog($data_add);
    		if ($res) $this->load->view('signin_success',$data_add);//跳到签到页面
    	}
    

    前端页面就不贴了,比较简单。

    转贴请注明出处,谢谢

  • 相关阅读:
    第二次作业
    第一次作业
    新博客用户·
    李秋红130705010066
    李秋红130705010066
    李秋红130705010066
    李秋红130705010066
    李秋红130705010066
    第五次作业
    第四次作业
  • 原文地址:https://www.cnblogs.com/weiryang/p/5215855.html
Copyright © 2020-2023  润新知