干货:小微个人如何接入免费短信验证码

前几天专门为本文提前配了一段录屏,到 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个接口:

  1. 单条验证码短信发送请求接口,只需提交手机号参数,然后接口把请求加入队列
  2. 发送请求队列拉取接口,用于手机App后台任务定时拉取发送队列 (改为WebSocket推送会不会快一些,复杂且没价值!)。
  3. [可选]App发送短信后的回执接口,保存发送结果信息。

二、一个手机+自研App(只要成功接入第三方就行)

当然是手机后台跑着我们的App,然后定时拉取自研短信API网关的队列数据,有发送请求数据就调用第三方SDK进行验证码发送,顺带保存回执。

三、网站使用

在需要发短信验证码的地方调用我们自己的短信API网关。

用户提交短信验证码后调用第三方接口对验证码进行校验(也许有第三方可以发自定义短信,验证码由我们自己生成,就不需要和第三方打交道了)。

注意要点

  1. 我们要保证手机App在后台长时间稳定驻留,保证网络稳定。
  2. 有备用收费短信接口,避免在我们的短信API网关无法正常发送短信时,直连收费短信接口。
  3. 提高可用性,如果用户是首次点击发送验证码按钮,这次请求发往我们的短信API网关,如果是第二次点击发送验证码按钮(没有收到验证码用户重试),发往收费短信接口,稳定性大幅提高。
  4. 此方法小流量网站可用,大流量硬要强上,也许准备个手机集群、申请N个App轮换使用,哈哈哈。

使用案例

祝福贺卡助手已经上线啦,春节版提供:过年拜年春节祝福贺卡助手提供拜年短信祝福语、亲戚称谓叫法关系谱、春联、记录分享拜年互动等实用免尴尬功能。

由于我不舍得用(抠!)5分钱的短信接口,用户首次发送验证码走的是老东家App的SDK免费短信接口。比如:注册、找回密码、绑定支付宝账号使用到此接口。

我用一个老手机来运行的App,15秒播报语音播报一次错误数量(报警用),一直放在那里不动,一直报0,效果还不错。文章顶部看我录的屏(传到优酷的)。

后台App

纯javascript代码实现的,截了个图:

祝福贺卡助手

网页版扫码体验:

小程序版扫码体验:



围绕着小程序《祝福贺卡助手》的开发和审核上线过程,对于其中一些有趣的东西,我会分享出来。

注:上篇说说写Hybrid小程序混合开发之路 - H5录音和水果的对抗,还是放一放,有时间再写。

下篇内容预告:干货:小微个人如何接入微信、支付宝勉强低费率支付接口。

原文地址:https://www.cnblogs.com/xiangyuecn/p/10349725.html

时间: 2024-11-05 17:28:46

干货:小微个人如何接入免费短信验证码的相关文章

40%股权分配给员工的小微金服集团, 微贷无线, 招人啦

40%股权分配给员工的小微金服集团(原阿里金融.支付宝合并后集团) 微贷无线, 招人啦 (也欢迎刚毕业的专业对口的优秀同学) 亲, 你想了解世界第一的第三方支付公司如何处理海量的业务吗? 你想要推动中国金融变革, 书写互联网金融历史吗? 你梦想成长为公司合伙人吗? 来这里书写属于你的历史吧~ 联系人旺旺: 玉龙    Email: [email protected] 高级Java架构师\开发工程师(微贷事业部-技术部) 岗位描述 1. 深入发掘业务需求为软件开发提供架构设计: 2. 主持和参与系

#干货#小微信贷风控中类IPC模式和集中审批模式

浅析小微信贷风控中类IPC模式和集中审批模式 席占斌 常言道瑕不掩瑜,反过来讲瑜自然也不能掩瑕,看问题需要客观公正辩证. 在小微信贷中,风控模式依旧是核心,目前比较流行和占比较大的风控模式有很经典的IPC模式和集中审批模式.为什么要说是模式呢?因为不管是IPC还是集中审批,很多的具体操作到各个公司均不相同.本文仅就这两种模式的整体情况做一浅显的分析. 一.两种风控模式完整流程简介 1.完整的类IPC的流程 产品设计--信贷员营销--后台入申请--信贷员进行类IPC尽职调查--门店电话审核--权限

2星|《25%的回头客创造75%的利润》:针对10多年前日本小微服务业的二八法则

日文原版是2016年出的,不过内容说的大概是再往前至少10年的日本.面向的读者主要是单体小饭店.小理发店之类的服务业小微企业主. 主要内容就是二八法则,告诫小微企业主,不要光注重拉新客户,要重视老客户,最好给老客户特殊待遇. 实际案例以个人经历为主.也有一些逻辑上的推演和其他的书籍的引用. 基本没提互联网的冲击,一些提到具体时间的信息,最近的时间也是2004年,由此判断本书大概是10多年前写就的. 总体评价2星,不推荐阅读. 以下是书中一些内容的摘抄: 1:如今有一种匪夷所思的现实已是屡见不鲜.

【干货】微服务技术栈选型手册2.0

一.前言 2014年可以认为是微服务1.0的元年,当年有几个标志性事件,一是Martin Fowler在其博客上发表了"Microservices"一文,正式提出微服务架构风格:二是Netflix微服务架构经过多年大规模生产验证,最终抽象落地形成一整套开源的微服务基础组件,统称NetflixOSS,Netflix的成功经验开始被业界认可并推崇:三是Pivotal将NetflixOSS开源微服务组件集成到其Spring体系,推出Spring Cloud微服务开发技术栈. 一晃三四年过去,

微信小程序如何发送短信验证码,无需搭建服务器

自从微信小程序提供云开发支持,开发者无需搭建后台服务器,使用微信提供的核心API就可以实现应用功能,此时就需要小程序能够自己发送短信,比如短信验证码,榛子云短信(http://smsow.zhenzikj.com)为此开发了一套专门用于小城的SDK,详情参考: http://smsow.zhenzikj.com/doc/sdk.html 下面小编就详细讲解一下如何使用: 1.安装 下载后的SDK只包含一个zhenzisms.js文件,可直接放在utils文件夹中,然后通过require引入,如下

Discuz常见小问题-如何取消登陆发帖验证码

1 正常情况下,用户点击登录之后,需要填写验证码 2 进入后台,点击防灌水,验证设置,然后下面的各个选项可以设置是否启用验证码.

mob免费短信验证码安卓SDK调用方法

很不错的一款免费验证码平台,支持IOS.安卓,比那些收费的稳定.开发容易.分享给大家,希望大家不要滥用 官网: http://mob.com/ 官方有开发文档,但是有几点要注意的官方没有提到,导致初始化失败:安卓导入SDKSMS Android的jar包出错,项目运行起来报:unfortunately Stopd 下面开始开发安卓项目调用接口API 核心的代码来自官方文档: http://wiki.mob.com/android-%E7%9F%AD%E4%BF%A1sdk%E9%9B%86%E6

微信小程序的初次认识(手机验证码登录+item列表)

微信小程序开发接触最多的文件应该是.wxml,.wxss,.js文件,他们类似于html,css,js的关系. 花了两天的时间学习并开发了这样两个界面的微信小程序 github地址:https://github.com/Jiangwr/wxwx 因为github仓库中没有给出接口,所以特此说明一下,其中列表的接口数据格式如下: { "opResult": 0, "opResultDes": "请求成功!", "opResultObj&q

Mob免费短信验证码SDK

根据目前总结Mob的短信验证首先 1.MobCommons.jar  MobTools.jar   SMSSDK-<version>.aar    SMSSDKGUI-<version>.aar 将这四个复制导入libs 2.build.gradle里面将libs加入仓库(repositories),然后添加依赖(dependencies ) repositories{     flatDir{         dirs 'libs' //就是你放aar的目录地址     } }