前几天专门为本文提前配了一段录屏,到 https://v.youku.com/v_show/id_XNDA0MTU0NzI4OA==.html 观看。
第一次用爱剪辑,老厉害了,时间轴都没有,所有涉及到精确时间只能靠猜,已卸载。
肤浅
说到发短信验证码接口,第一印象就是好货不便宜,速度快、送达率高的通道各大短信接口厂商收费也好贵的哟,小微个人不舍得接入,也不符合大部分大厂的准入门槛(大部分怎么也得不是个个人吧),还好有Bmob,5分价钱也适,我还是不舍得用(抠!)。
想着自己几张手机卡面每月还有几千条免费短信是不是能好好利用一下,做个能发送短信的app在后台运行问题也不大,不过自己手机号还是不要乱搞的为好。
曙光
研发App过程中发现有几个大平台对App提供免费短信验证码,微博开放平台
、Mob
,App上用完全免费,但Web Api都不免费,也许App内接入SDK可以让他们收回成本吧(真实情况是:收益远大于成本)。
虽然不直接提供免费Web Api,那我们是不是可以通过App来发验证码:手机打开App在后台运行,只有有发验证码的需求时,App自动调用SDK发送验证码。
通过研究微博和Mob的文档发现,理论上是可行的,除了符合国情的标准限制(单手机号每分钟、每天限制)外,每个应用也有速率限制。但对小微网站来讲(没啥流量的博客啥的),远远够用,一天撑死了发100条短信,一小时下来也发不了几条。
注意:流量大的不能用本文这个方法,稳定性和安全性大幅下降,都有这么大流量了,应该不差钱接稳定的短信接口吧。本文只适用于学习、小流量网站之用
说干就干
首先要有个App,并且接入了免费短信SDK,能正常发短信(没有?写一个App,然后尝试申请一下)。我是搞Android的,所以好好利用一下本来要换不锈钢脸盆的旧手机来充当发短信Api网关。
流程图:
流程分解
一、自研短信API网关
就是个普通REST API,提供3个接口:
- 单条验证码短信发送请求接口,只需提交手机号参数,然后接口把请求加入队列
- 发送请求队列拉取接口,用于手机App后台任务定时拉取发送队列 (改为WebSocket推送会不会快一些,复杂且没价值!)。
- [可选]App发送短信后的回执接口,保存发送结果信息。
二、一个手机+自研App(只要成功接入第三方就行)
当然是手机后台跑着我们的App,然后定时拉取自研短信API网关的队列数据,有发送请求数据就调用第三方SDK进行验证码发送,顺带保存回执。
三、网站使用
在需要发短信验证码的地方调用我们自己的短信API网关。
用户提交短信验证码后调用第三方接口对验证码进行校验(也许有第三方可以发自定义短信,验证码由我们自己生成,就不需要和第三方打交道了)。
注意要点
- 我们要保证手机App在后台长时间稳定驻留,保证网络稳定。
- 有备用收费短信接口,避免在我们的短信API网关无法正常发送短信时,直连收费短信接口。
- 提高可用性,如果用户是首次点击发送验证码按钮,这次请求发往我们的短信API网关,如果是第二次点击发送验证码按钮(没有收到验证码用户重试),发往收费短信接口,稳定性大幅提高。
- 此方法小流量网站可用,大流量硬要强上,也许准备个手机集群、申请N个App轮换使用,哈哈哈。
使用案例
祝福贺卡助手已经上线啦,春节版提供:过年拜年春节祝福贺卡助手提供拜年短信祝福语、亲戚称谓叫法关系谱、春联、记录分享拜年互动等实用免尴尬功能。
由于我不舍得用(抠!)5分钱的短信接口,用户首次发送验证码走的是老东家App的SDK免费短信接口。比如:注册、找回密码、绑定支付宝账号使用到此接口。
我用一个老手机来运行的App,15秒播报语音播报一次错误数量(报警用),一直放在那里不动,一直报0,效果还不错。文章顶部看我录的屏(传到优酷的)。
后台App
纯javascript代码实现的,截了个图:
祝福贺卡助手
网页版扫码体验:
小程序版扫码体验:
围绕着小程序《祝福贺卡助手》的开发和审核上线过程,对于其中一些有趣的东西,我会分享出来。
注:上篇说说写Hybrid小程序混合开发之路 - H5录音和水果的对抗,还是放一放,有时间再写。
下篇内容预告:干货:小微个人如何接入微信、支付宝勉强低费率支付接口。
原文地址:https://www.cnblogs.com/xiangyuecn/p/10349725.html