虚拟号码接收验证码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
APP注册时用户收到的验证码是该APP采用了第三方短信服务商提供的短信送达服务。
各大短信服务商提供SDK和API接口,在APP里集成短信SDK然后调用API即可。
原理:
1、生成短信内容,调用发送接口,传入APIKEY、手机号、内容等参数发送短信。
短信内容需和通过审核的模板匹配上才能发送,如不匹配接口会返回报错信息,报错记录在后台失败请求页可以看到。
如不确定内容是否匹配,后台模板报备页有测试匹配功能。
2、如短信验证接口用于web、移动网页版,需在注册页增加图形验证码避免恶意轰炸消耗账户余额。iOS及Android APP无需在注册页添加图形验证码。
此外,靠谱的短信群发平台是短信营销的基石,否则很容易被用户认定为“垃圾短信”,从而降低用户体验。
要说这个功能的原理其实并不难(我可没说不复杂:P)。首先当然要把手机和PC连接起来。怎么连倒是次要的,数据线/红外/蓝牙什么的都可以。通常连接好以后PC会虚拟出一个串行通讯口,这下就好办了,我们只要把手机看作一个普通的串口终端设备来进行给它下命令就行了!当然,给手机发命令也是有标准的,通常是GSM AT指令集,不过各厂商可能会有自己的扩充。最后只要命令手机把编过码的短信(一般通用的是PDU格式)替你发出去就可以了!
所以要实现这个功能牵涉到的知识点有点多:
1 串口通讯
2 GSM AT指令
3 PDU编码(如果需要接收的话还要知道怎么解码)
一样一样来。
在 2005里,新加了个SerialPort控件(不过我还是喜欢直接定义个SerialPort,记得要先引用IO.Ports),用起来还是很方便的,所以串口通讯应该问题不大。
PDU编码算法网上有文章的,有兴趣的不妨自己搜一下。主要关键点就是PDU字符串各个字段的编排,还有短信中心和接收方手机号码的编码(很简单,奇偶位互换,长度为奇数的话先补F。例如,1234变成2143),中文正文的编码(BigEndian字节顺序的Unicode格式编码,说白了就是汉字的“Ascii”码)等等。
GSM AT相对可能就陌生点了。不过如果以前开发过modem设备应用的话肯定会很容易上手-- 工作方式很像的。简单来说,发送短信的过程:
向手机发送AT+CMGS=PUD长度
成功的话手机回送> 提示符(大于符后有个空格)
接着向手机发送短信PDU字串,以0x1A(Ctrl Z)结束。
成功的话手机回送OK,整个过程结束。
这个过程如果用超级终端的话很容易看清楚。当然需要事先计算好PDU和长度。