小故事
在工作中经常会遇到这样的需求:
产品老王:小李啊,我们要支持手机号注册了,能加一个手机输短信验证码直接注册的功能吗,只要半天就可以了吧?
开发小李:。。。
运营田田:小李啊,我们这个活动页面要加个输手机号的框,用户输完手机号后才能领,最好能有个短信验证码,这样就不担心被薅羊毛了,这个能现在马上做好吗?
开发小李:。。。
客户张老板:小李啊,我们要经常给用户发推广短信,你能不能加个可以给好多用户同时发短信的功能,这个我看挺简单的嘛,200块能搞定不啦?
开发小李:。。。
产品老王、运营田田、客户张老板:小李啊,好了噻没?怎么还没有上线?怎么短信收不到啊?你这个内容不对啊?。。。。。。。。。。。啊。。。。。。啊。。。。
开发小李:我选择死亡
虽然随着微信等IM应用的普及,短信已经不是人与人之间联系的第一通道,但是短信作为一种注册方式、一种企业和客户保持联系的渠道,而短信的开放性和低成本,决定了他依然是企业与客户沟通最重要的方式之一。
那么,作为一名开发者、产品、运营,短信是非常常见的功能或推广方式,我们就要仔细了解短信验证码、推广短信的实现方式和常用工具,只有这样,才能迅速缩短开发时间,做到随时复用,尽可能实现零成本开发。
最近为了彻底解决这个问题,我试用了几款比较出名的短信服务商,包括榛子云短信、twillo等,自己做一个记录,也希望能够帮助其他人,减少后来者的选择成本。
首先就说一下国内使用人数比较多,在开发者中口碑比较高的榛子云短信吧。看完这篇文章,就能学会怎么使用短信验证码或者其他短信业务。
申请测试账号
进入官网, smsow.zhenzikj.com/ , 官网一看就是偏技术性的。榛子云短信不需要注册,直接找工作人员开通测试账号即可,一般只需几分钟。之后就可测试发送短信了,可以使用手工发送,登录sms.zhenzikj.com/zhenzisms_u…, 也可以使用SDK开发包。
使用网页手工发送
登录sms.zhenzikj.com/zhenzisms_u…, 进入用户中心
另外,如果你嫌每次都手工编辑短信内容,可以创建短信模板:
如何使用模板,可参考: smsow.zhenzikj.com/bbs/index.h…
使用SDK发送
使用测试账号登录管理后台获取appId、appSecret, 地址: sms.zhenzikj.com/zhenzisms_u…
在"我的应用"->"详情"中打开:
1.安装
下载后的SDK只包含一个jar文件,并且不依赖任何其他jar包或文件,直接导入到工程中即可使用。
1.安装
下载后的SDK只包含一个jar文件,并且不依赖任何其他jar包或文件,直接导入到工程中即可使用。
2.用法
使用事先申请的AppId、AppSecret初始化ZhenziSmsClient:
ZhenziSmsClient client = new ZhenziSmsClient(appId, appSecret);
复制代码
AppId、AppSecret是短信平台分配的
1)发送短信
String result = client.send("15811111111", "您的验证码为4534,有效时间为5分钟");
复制代码
send方法用于单条发送短信
参数1:接收者手机号码,参数2:短信内容
返回结果是json格式的字符串, code: 发送状态,0为成功。非0为发送失败,可从data中查看错误信息
{ "code":0, "data":"发送成功" }复制代码
错误代码表
错误码 | 原因 | 解决方案 |
---|---|---|
100 | 参数格式错误 | 检查请求参数是否为空, 或手机号码格式错误 |
101 | 短信内容超过1000字 | 短信内容过长,请筛检或分多次发送 |
105 | appId错误或应用不存在 | 请联系工作人员申请应用或检查appId是否输入错误 |
106 | 应用被禁止 | 请联系工作人员查看原因 |
107 | ip错误 | 如果设置了ip白名单,系统会检查请求服务器的ip地址,已确定是否为安全的来源访问 |
108 | 短信余额不足 | 需要到用户中心进行充值 |
109 | 今日发送超过限额 | 如果设置了日发送数量,则每个接收号码不得超过这个数量 |
110 | 应用秘钥(AppSecret)错误 | 检查AppSecret是否输入错误,或是否已在用户中心进行了秘钥重置 |
111 | 账号不存在 | 请联系工作人员申请账号 |
1000 | 系统位置错误 | 请联系工作人员或技术人员检查原因 |