短信验证开发的方案分享

王志勇 发表于 2017年11月26日 22:01

最近做的项目中,需要验证用户的手机号码。很多的运营者都是采用106端口向用户发送短信的方式,如果是用第三方的短信服务,那么运营者需要支付0.05元/条,也就是向用户发送1万条验证码,需要支付500元,以此类推。如果是申请一个独立的106端口,对资质、资金的要求都非常高。

也有的运营商是采用用户主动发送验证信息的方式,例如申请QQ、或微信解封的时候需要向1069端口发送一条短信。(在去年,移动、联通手机发送106短信都不收费,电信收费;今年,移动、联通用户发106短信都要收费了,0.1元/条)
这种方式,运营商可以减少很多的短信成本,短信费用均由用户支付。

起初我是这样构思的:运营者可以为项目申请一个固定电话、或手机号转无线固定接入,连接电话录音机。当需要验证用户的手机号码时,用户拨打这个号码,来电显示里就记录了这个号码。然后,再人工通过验证,这样十分繁琐。

现在,终于试验成功了,用户发短信至一个专用的手机号(选择一个较好的号码、靓号,手机卡可以是任意运营商、任意归属地或国家),然后短信会自动连接网站的数据进行验证,无需任何人工操作。方案和步骤如下,已调试成功:

1. 手机卡放在一个安卓4.0以上的手机里,安装AndroPHP,让手机能运行PHP程序。因为后面要用到SQLite3,安卓手机安装SQLite3相当繁琐,并且安卓手机里的Shell命令远不如用PHP程序来控制文件方便得多。所以手机上安装PHP,作用是将短信数据库发送给远程VPS。
2. 这个手机接收的短信,是存放在/data/data/com.android.providers.telephony/databases/mmssms.db 。首先安卓手机必须Root(最好的Root软件,推荐Kingroot、或360 Root),用R.E.管理器,将mmssms.db的权限改为777,否则很可能这个文件无法被PHP访问。
3. 写一段PHP程序,让其检测这个mmssms.db的修改时间,并记录最后的修改时间,让其隔30-60秒检测一次,一旦修改时间发生改变,则执行步骤4。
4. 需要一台VPS,安装FTP。系统建议用Ubuntu12,因为安装SQLite3很顺利。给它安装vsftpd。
然后,在步骤3里,一旦修改时间发生改变,则让PHP执行将这个mmssms.db文件通过FTP上传至VPS(PHP的FTP上传程序可在网上搜索到)。
5. 这个VPS,需要事先安装好SQLite3、Apache、PHP5。
SQLite3的安装方法,只要这个命令就可以,测试通过:
apt-get -y install sqlite sqlite3

6. 为什么不给PHP安装SQLite3?因为时间的关系,没有调试成功(我的电脑无法安装Apache2.4)。
只能暂时让Ubuntu12安装SQLite3,然后PHP程序里通过exec()函数调用Shell命令来执行SQLite3。
7. Ubuntu12下,显示数据库里所有的短信内容的命令是:
sqlite3 mmssms.db
select * from sms;
8. Shell命令传给VPS上的PHP程序就是:
<?exec('sqlite3 mmssms.db && select * from sms;');?>
9. 步骤1里的手机,需要24小时开机。需要将手机电池取下,然后用TP4056从5V转4.1V给手机供电,或者用LM2596S、或MP2307DN将直流转为3.9~4.18V,给手机24小时×365天供电。不可将5V直接给手机电池输入供电,可能会烧坏主板。
10. 这个方案,电脑无需开机。只要手机保持开机、手机一直连接WIFI、AndroPHP保持在手机后台运行。

这样,手机会自动在接到新短信时,将短信的数据库上传给远程的VPS服务器,并被VPS上的PHP程序读取并分析用户的手机号码、短信的内容、验证码是否正确。PHP程序远比Shell命令易调试、功能多得多,所以能用PHP完成,就尽量交给PHP程序。

0条评论:

发表评论:
名字: (*必填)
博客: (可省,仅限于Blog地址)
验证码: p48u58r68e78 (*必填)

正文:

  记住信息?

直接发送Trackback到此文章

说明:本评论系统不支持HTML代码。(您的留言需要审核,审核规则请见这里。)

文章分类 Category:
真相与UFO Truth and UFO
编程 Program
PHP
Blog的发展 Development
为什么写博客 W-do we Blog
互联网 Internet
BBS社区研究 Community
QQ研究 QQ Research

置顶的文章:
程序开发的门槛儿
为什么不能夸孩子调皮?
我的3种博客写作方法
最大的公益事业是UFO
再谈四维空间
开发文档和程序注释
Arsue Blog程序的扩展
独立微博开发之设想

近期的主题:
2017.7第2篇
auiou.com今天换上了KVM
CentOS, Debian, Ubuntu三种VPS系统的LAMP属性小结
Debian 6.0和Ubuntu 14.04新装机的参数记录
Linux VPS的速度优化
Nginx与.htaccess
CentOS 6新装机的参数记录
auiou.com的VPS的内存占用测试
2016年8月第一帖
不喜欢锻炼身体的朋友
看《第五空间》
看《爱情公寓》的一点感想
生命的意义在于每一天都是人生的开始
安卓机顶盒收到小记
人生中最可怕的事情是拖延
不能贪吃/不能贪喝/不能贪凉
“世面”和人生意义
计划推出一个重要的“网络存档”(网络记事本)快速小程序
最近几个月博客更新减缓的原因
汽车越来越多
编写完成了清爽的贴吧浏览程序/贴吧占用内存测试
猫/无线路由器/瑞银无线网卡 最简单有效的散热方法
最近录制的歌
家用无线路由器选购的一些建议
网络电视机顶盒选购的一些建议
无线路由器当作无线交换机实例
2013-08-08:人生的意义&谨言慎行
怎样对治重症的拖沓的毛病?
磊科NW336无线网卡使用感受
腾达311R无线路由器频繁掉线解决一例(其它品牌和型号可能也适用)
网络电视杰科T1使用感受(杰科T1/T2/T3怎么样?)
人为什么会无聊?无聊的时候该做什么?
2013-07-14:看不见的全息摄像机
想法:2013-07-12
有趣的植物3:景天科多肉植物
有趣的植物2:米邦塔食用仙人掌
最有趣的植物
想法:2013-06-30
好好地修心
中国现代和未来的黑人问题/广州黑人
KVM主机竟然死机
想法:2013-06-13
行人的过错
为什么不能夸孩子调皮?/怎样教出一个好孩子?
打招呼的一瞬间
欢迎哥们儿们加我的QQ
好心一定会有好报
拜金女的下场都是不好的
最近很忙,写作的思路断了
狂做好事,消除烦恼
最大的公益事业是UFO/怎样做UFO研究?
  

王志勇:程序设计者。
1980-09-26 (37周岁)

版权声明:本博客所有文章,均符合原创的定义,禁止转载,违者将必究;正确的方法是贴原文的标题和网址即可。

与此相关的链接
自由勇专栏 | Arsue官方Blog
Gratitude | Time | Auciou
matnue | aucist | Taimt | Caimt | ac315 | Arsue | IC Search | TDNote | HKANS | aroat | Vaimt Panel | txfor | 网树 | cdfor | aufirm | ixnes | AnyDiary | Tuarm | Tovate | Urtal | coumit | cersta | tratom54.92.194.75 2017-12-12_07:21

Blog存档 Archives

2013年08月(9)
2013年07月(6)
2013年06月(7)
2013年05月(22)
2013年04月(17)
2013年03月(20)
2013年02月(21)
2013年01月(6)
2012年12月(3)
2012年08月(8)
2012年07月(4)
2012年06月(4)
2012年05月(6)
2012年04月(13)
2012年03月(11)
2012年01月(7)
2011年10月(8)
2011年09月(4)
2011年08月(2)
2011年06月(2)
2011年05月(6)
2011年04月(10)
2011年03月(16)
2011年02月(16)
2011年01月(15)
2010年12月(12)
2010年11月(9)
2010年10月(3)
2010年05月(4)
2010年01月(7)
2009年12月(10)
2009年11月(4)
2009年10月(8)
2009年09月(24)
2009年08月(20)
2009年07月(6)
2009年06月(11)
2009年05月(16)
2009年04月(20)
2009年03月(29)
2009年02月(18)
2009年01月(15)
2008年12月(17)
2008年11月(10)
2008年10月(13)
2008年09月(8)
2008年08月(4)
2008年07月(5)
2008年06月(9)
2008年05月(12)
2008年04月(15)
2008年03月(26)
2008年02月(22)
2008年01月(29)
2007年12月(30)
2007年11月(28)
2007年10月(30)
2007年09月(8)
2007年08月(8)
2007年07月(21)
2007年06月(23)
2007年05月(31)
2007年04月(34)
2007年03月(29)
2007年02月(18)
2007年01月(41)
2006年12月(23)
2006年11月(10)
2006年10月(10)
2006年09月(29)
2006年08月(33)
2006年07月(17)
2006年06月(30)
2006年05月(4)
2006年01月(3)
2005年09月(4)


Copyright © 2006-2017 auiou.com All rights reserved.
此Blog程序由王志勇编写 已经发布在Arsue