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);//跳到签到页面
}
前端页面就不贴了,比较简单。
转贴请注明出处,谢谢
ibeacon的使用和应用场景简单示例的更多相关文章
- Firefly的角色跳转场景简单示例
源地址:http://bbs.9miao.com/thread-45790-1-2.html 本例演示的是模拟游戏服务端,让角色在场景1中跳转到场景2中.在实际游戏中,client将要跳转的角色id和 ...
- Optaplanner规划引擎的工作原理及简单示例(2)
开篇 在前面一篇关于规划引擎Optapalnner的文章里(Optaplanner规划引擎的工作原理及简单示例(1)),老农介绍了应用Optaplanner过程中需要掌握的一些基本概念,这些概念有且于 ...
- Unity3d-通过简单示例来理解Time.deltaTime
转载文章: Unity3d-通过简单示例来理解Time.deltaTime 2018年04月21日 18:04:14 Black_Window 阅读数:926 标签: UnityTime 更多 个人分 ...
- C#调用Python脚本的简单示例
C#调用Python脚本的简单示例 分类:Python (2311) (0) 举报 收藏 IronPython是一种在 .NET及 Mono上的 Python实现,由微软的 Jim Huguni ...
- 【Canvas】(1)---概述+简单示例
Canvas---概述+简单示例 如果通俗的去理解Canvas,我们可以去理解成它类似于我们电脑自带的画图工具一样,canvas首先是选择一块画布,然后在这个画布上描绘我们想画的东西,画好后展示给用户 ...
- Linux下的C Socket编程 -- server端的简单示例
Linux下的C Socket编程(三) server端的简单示例 经过前面的client端的学习,我们已经知道了如何创建socket,所以接下来就是去绑定他到具体的一个端口上面去. 绑定socket ...
- C# 构建XML(简单示例)
C# 构建XML的简单示例: var pars = new Dictionary<string, string> { {"url","https://www. ...
- 根据juery CSS点击一个标签弹出一个遮罩层的简单示例
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...
- ACEXML解析XML文件——简单示例程序
掌握了ACMXML库解析XML文件的方法后,下面来实现一个比较完整的程序. 定义基本结构 xml文件格式如下 <?xml version="1.0"?> <roo ...
随机推荐
- EasyUI中在表单提交之前进行验证
使用EasyUi我们可以在客户端表单提交之前进行验证,过程如下:只需在onSubmit的时候使用return $("#form1").form('validate')方法即可,E ...
- 输入参数是NSDate,输出结果是星期几的字符串
给你一个方法,输入参数是NSDate,输出结果是星期几的字符串.+ (NSString*)weekdayStringFromDate:(NSDate*)inputDate { NSArray *wee ...
- OpenCV安装配置的简单记录
在ubuntu16.04下安装OpenCV 2.4.11的简单记录 1. 安装cmake,执行$apt-get install cmake即可,cmake -version验证 2. 下载OpenCV ...
- Determining Current Block and Current Item in Oracle Forms
SYSTEM.CURSOR_BLOCK Determining current block in Oracle Forms Using SYSTEM.CURSOR_BLOCK system varia ...
- HTTP笔记之一
1 URL 统一资源定位符(URL)是资源标识符最常见的格式.大部分的URL都遵循一种标准格式,这种格式包含三个部分. URL的第一部分:方案(scheme),说明了访问资源所使用的协议类型.通常是 ...
- 使用Sonatype Nexus搭建Maven私服后如何添加第三方JAR包?
Sonatype Nexus简介 登录Nexus后,点击右侧的“Repositories”,显示当前Nexus所管理的Repository: 默认情况下Nexus为我们创建了以下主要的Reposito ...
- 02-编写第一个C语言程序
本文目录 1.打开Xcode,新建Xcode项目 2.选择最简单的命令行项目 3.输入项目信息 4.选择一个用来存放C程序代码的文件夹 5.运行项目 说明:这个C语言专题,是学习iOS开发的前奏.也为 ...
- Response.End()在Webform和ASP.NET MVC下的表现差异
前几天在博问中看到一个问题--Response.End()后,是否停止执行?MVC与WebForm不一致.看到LZ的描述后,虽然奇怪于为何用Response.End()而不用return方式去控制流程 ...
- pytessact 出现Error2错误
x pytessact安装后不起作用 一.没有安装tessact-ocr 点击下载,安装 http://jaist.dl.sourceforge.net/project/tesseract-ocr-a ...
- Java面向对象三大特点之多态
概念: 多态是同一个行为具有多个不同表现形式或形态的能力. 多态就是同一个接口,使用不同的实例而执行不同操作,如图所示: 多态性是对象多种表现形式的体现,同一个事件发生在不同的对象上会产生不同的结果. ...