在创业团队中,一个重要的原则是能省就省,该花就花,把银子用在刀刃上。

现在的app,为了获取用户的社交关系,需要用户的手机号注册。用手机号注册就涉及到一个发送短信验证码的问题,那怎么才能在短信服务上投入最少的成本获得最大的收益?

1.    选择什么短信平台?

短信服务主要考虑下面2个方面:

1.发短信不便宜啊,发送一条短信的价格在5分钱-8分钱之间。

2.考虑短信的到达率和延时。

之前我的手机经常收到各种乱七八糟的短信,例如,发票啊,个人贷款等。在2013年年底,3大运营商终于整顿短信,那时一大批小的短信平台倒了,我们使用的哪个短信平台也收到很大的影响,发送到移动,联通的短信没啥问题,但发送到电信的短信,居然延迟了2个小时!!!

为了解决这个问题,我试了不下5家短信平台,后来觉得ucloud的监控短信到达率非常高,还把ucloud的发送短信的python sdk改写成php sdk。用了一段时间的ucloud的短信后到达率变低了,又找了一家很贵的短信平台,好像是8分钱一条短信。

记得在那个时期,我的一个朋友吐糟,他实在找不到可靠的短信平台,就干脆把短信验证码这块去掉,用户随便输入手机号都能注册。

现在的短信平台都有一个试用的额度,在这里:apistore.baidu.com/astore/classificationservicelist/39.html列举了一些短信平台,大家选择一家试用一下短信服务。

记住,一定要亲自试用,别人推荐的平台,可能只有那时靠谱,过后就难说了。

2.    如何发送短信最节省成本?

首先声明,我和sharesdk没有任何关系,如果硬要有点关系,就是sharesdk的办公地点曾经在我工作的公司的隔壁。

现在sharesdk提供了免费的短信验证码服务(mob.com/sms),试运营期间为开发者提供每个App每天10000条免费短信验证。

大家算一下,按最便宜的每条短信5分钱,一天免费发10000条就能节省500块,一个月就能节省15000元。

但我咨询过客服,这个试运营期间是什么时候结束,她也没有明确的答复,只能关注官网的通知。

因此,在享用这个免费服务的同时,我们要做好准备,如果有一天,sharesdk的短信服务不靠谱了,就要把它换掉。

但sharesdk发送短信是通过app端的sdk包,如果app已经发布出去了,怎么更换这个短信服务呢?

这里提供两重解决方案:

第一重解决方案:服务端要有发送短信的api,当需要替换sharesdk发送短信功能时,就调用这个api发送短信。每次app端发送短信的时候,必须要有一个判断,如果通过sharesdk发送短信超时或返回的状态码不正确,就调用服务端的发送短信api。

在上面的解决方案,是app每次发短信都要做判断,怎么才能不需要每次判断,也能让已经发布出去的app自由选择使用哪种方式发短信:通过服务端api,或者sharesdk发送短信sdk?

还记得在《14.app后端如何设计api》中提到,“(8)在app启动时,调用一个初始化api获取必要的信息”?

第二重解决方案:在这个api中返回一个参数控制app端选择使用哪种方式发送短信。

----------------------------------------------------------

本人把网络上发表的一系列“app后端”文章加以整理并增加了运维和架构方面的内容,出版了书籍《App 后台开发运维和架构实践》,该书已在京东,当当和亚马逊上销售。

《App后台开发运维和架构实践》的购买链接

京东 
当当 
亚马逊 
互动出版网 
天猫

---------------------------------------------------------------------------------------------------------------------------

打开链接  app后端系列文章总目录 总目录 ,能查看本人发表过的所有原创“app后端”文章。

【作者】曾健生
【QQ】190678908
【app后端qq群】254659220 
【微信公众号】 appbackend
【新浪微博】 @newjueqi
【博客】http://blog.csdn.net/newjueqi

19.最省钱的app发短信方法相关推荐

  1. 虚拟机打电话发短信方法

    发送短信的方法 有两种方法可以实现发送短信,其一是使用intent-startActivity,URI数据格式为"smsto:num",调用的action为Intent.ACTIO ...

  2. 猫猫学iOS(四十五)之常用的小功能比如打电话、打开网址、发邮件、发短信打开其他应用。...

    猫猫分享,必须精品 原创文章,欢迎转载.转载请注明:翟乃玉的博客 地址:http://blog.csdn.net/u013357243?viewmode=contents 简介 iOS中的很多小功能都 ...

  3. 常用小功能(打电话、发短信、发邮件)

    打电话-⽅方法1 ● 最简单最直接的⽅方式:直接跳到拨号界⾯面 NSURL *url = [NSURL URLWithString:@"tel://10010"]; [[UIApp ...

  4. 利用阿里大于接口发短信(Delphi版)

    阿里大于是阿里通信旗下产品,融合了三大运营商的通信能力,提供包括短信.语音.流量直充.私密专线.店铺手机号等个性化服务.每条四分五,价钱还算公道,经老农测试,响应速度非常快,基本上是秒到.官方文档提供 ...

  5. 利用飞信给自己发短信的shell脚本

    利用飞信给自己发短信的shell脚本翻译自一个python脚本因为openwrt要装python太大了.所以用了两天非工作时间 翻译成了 shell脚本 .测试可用. http://dl.dbank. ...

  6. PHP实现飞信接口来通过网页免费发短信

    首先感谢郝同学告诉我这么一个神奇的接口 可以输入你的手机号.密码.对方手机号.发送内容直接给对方发短信. 源作者博客地址为:http://blog.quanhz.com/ 郝同学的博客地址:http: ...

  7. 清单文件,测试,打电话和发短信应用

    android:layout_width="fill_parent":表示水平包裹元素 android:layout_width="wrap_content": ...

  8. iOS开发之打电话,发短信,发送邮件

    iOS开发中,拨打电话的实现主要有三种方式: 直接拨号:拨打完电话之后回不到原来的应用,会停留在通讯录里面,而且是直接拨打,不弹出提示 - (void)makePhoneCall {NSMutable ...

  9. iOS开发中打电话发短信等功能的实现

    在APP开发中,可能会涉及到打电话.发短信.发邮件等功能.比如说,通常一个产品的"关于"页面,会有开发者的联系方式,理想情况下,当用户点击该电话号码时,能够自动的帮用户拨出去,就涉 ...

最新文章

  1. C# 对应 Oracle 存储过程 的 SYS_REFCURSOR 应该 传入什么类型的参数?
  2. 3.7 PPP协议和HDLC协议
  3. 编程之美2.3 寻找发帖水王
  4. uart接口_UART串行总线舵机转接板规格、接线说明 amp; 驱动安装
  5. 大型站点技术架构(七)--站点的可扩展性架构
  6. java 飞行记录器_Java 11功能– Java飞行记录器
  7. PHP stomp 连接判断,php实现通过stomp协议连接ActiveMQ操作示例
  8. 常见web前台技术之间的关系html,css,javascript...
  9. 万测试验机软件,万测TestStar®新秀®100kN微机控制电子万能试验机
  10. CLRS2e读书笔记—Chapter10
  11. matlab 做中值滤波时K = filter2(fspecial('average',3),J)/255,为什么要除以255
  12. Spotlight – Recommend Node.js Projects For January
  13. Linux运维面试题
  14. 用友nc6.5详细安装过程
  15. Unity3D 退出游戏应用的代码
  16. 苹果cmsv10黑色炫酷自适应在线视频网站简约模板源码
  17. ps切图后 JAVA开发_ps切图抠图详解-web前端(转)
  18. 系统状态空间模型c语言,【单选题】能完全描述系统动态行为的数学模型是() A. 传递函数 B. 微分方程 C. 状态 空间表...
  19. android binder - 客户端(c++层) 调用 服务端(java层),服务端回调客户端 例子
  20. codeforces1149B. Three Religions

热门文章

  1. 小米笔记本15.6装win10系统
  2. git命令之git clone用法
  3. HDU1114 存钱罐 完全背包
  4. HmacSHA1 js和java加密的结果不一致
  5. 虚拟盘rpc服务器不可用,rpc服务器不可用,手把手教你rpc服务器不可用怎么办
  6. 本地ping不通虚拟机的各种情况
  7. 原生JS设置和获取transform样式
  8. cap数据包文件解析
  9. unigui 验证码生成
  10. ubuntu下打乱txt文件行序(搬运)批量修改文件名