uni-sms短信服务接入

312 阅读3分钟

在之前的文章中我讲了项目的开发过程,有兴趣的同学可以翻看一下微信小程序的开发—日历小记

当时说后续会增加短信提醒的功能,现在已经上线了,同时配合了微信官方的流量主,增加了一两个广告,个人还是很不喜欢在小程序中加入过多的banner和格子广告,整个页面看起来很“脏”,但是确实每一条短信都是花钱的,所以无奈增加了激励广告,希望用户宝子们多多包容了。

如题目所示,采用了uni-sms这个服务,我只是从价格上对比简单看了一下,一条的费用0.04元,其他有便宜的,但是短信数得10w+,所以果断选择了uni,不过也期待真的有那么多短信费用吧。

也是第一次使用这种服务,也遇到一些问题,除了文档有些点不明了,大部分还是因为没有做过,这里梳理一下。

一、登录注册

这里不细说了,主要是实名认证,自行操作。

二、凭证管理

这里有个accessKeyId,是你最重要的一个字段,也是所有请求的必填参数

三、短信发送

curl -X POST 'https://uni.apistd.com/?action=sms.message.send&accessKeyId=上面的accessKeyId' \ 
-H 'Content-Type: application/json' \ 
-d '{ 
    "to": "1860571xxxx", 
    "signature": "日历小记", 
    "templateId": "signup", 
    "templateData": {"code": "3241", "ttl": "10"} 
    }'

这就是关键代码了,按理来说就成了,但是这里我遇到三个问题:

  1. signature是什么;
  2. templateId是什么;
  3. php通过curl发送post请求总是说body中没有content

四、解决问题

1、signature签名名称,在“短信报备”里,是需要申请的,这个比较简单,就是上传营业执照等,轻松拿下。刚开始看文档并不知道需要报备,以为是跟微信一样,先去请求一个接口获取,再来发短信,搞了半天,咨询客服才解决。

2、templateId是模板id,文档说templateId和content二选一,但是我没成功,最终还是走模板。但是模板有两个条件:一是不能全变量,比如模板只有{tip}这样,二是即便你有了前后文案,里面的变量也要尽可能意义单一,比如验证码,就只是code作变量。我写的日程提醒:{tip}详情可进入“日历小记”微信小程序查看!,但也被认定是不合规的,跟客服沟通确认变量内容的安全性才审核通过了。

3、我这边的php发post请求按理来说是没问题的,在其他场景验证过,这里总是提示缺少参数,猜测是服务商禁用了这种请求模式,毕竟他们提供了各种语言的sdk,引入后,发送成功。

总结:摸着石头过河。

业务方面还是跟订阅一样,查询三天后的日程,有手机号的就发短信就行了。最后还是欢迎大家多来支持一下“日历小记