在之前的文章中我讲了项目的开发过程,有兴趣的同学可以翻看一下微信小程序的开发—日历小记
当时说后续会增加短信提醒的功能,现在已经上线了,同时配合了微信官方的流量主,增加了一两个广告,个人还是很不喜欢在小程序中加入过多的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"}
}'
这就是关键代码了,按理来说就成了,但是这里我遇到三个问题:
- signature是什么;
- templateId是什么;
- php通过curl发送post请求总是说body中没有content
四、解决问题
1、signature签名名称,在“短信报备”里,是需要申请的,这个比较简单,就是上传营业执照等,轻松拿下。刚开始看文档并不知道需要报备,以为是跟微信一样,先去请求一个接口获取,再来发短信,搞了半天,咨询客服才解决。
2、templateId是模板id,文档说templateId和content二选一,但是我没成功,最终还是走模板。但是模板有两个条件:一是不能全变量,比如模板只有{tip}这样,二是即便你有了前后文案,里面的变量也要尽可能意义单一,比如验证码,就只是code作变量。我写的日程提醒:{tip}详情可进入“日历小记”微信小程序查看!,但也被认定是不合规的,跟客服沟通确认变量内容的安全性才审核通过了。
3、我这边的php发post请求按理来说是没问题的,在其他场景验证过,这里总是提示缺少参数,猜测是服务商禁用了这种请求模式,毕竟他们提供了各种语言的sdk,引入后,发送成功。
总结:摸着石头过河。
业务方面还是跟订阅一样,查询三天后的日程,有手机号的就发短信就行了。最后还是欢迎大家多来支持一下“日历小记”