流程
发送手机号码通知或者短信,我们可以通过平台来自动批量的发送短信。
需要先在平台上面完成身份认证、签名认证、信息内容报备,平台审核通过后才可以使用。
测试
下面是以"秒赛科技"来进行测试,之前有试过阿里云,平台验证比较严格,要求是企业信息验证,个人测试不方便。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import requests
import json
import hashlib
import time
class SendCode:
def send(self, account, pswd, mobile, msg, ts, state):
url = 'http://139.196.108.241:8080' + {
1: '/Api/HttpSendSMYzm.ashx',
2: '/Api/HttpSendSMYx.ashx',
3: '/Api/HttpSendSMVoice.ashx'
}[state];
if ts != "":
m = hashlib.md5()
strs = account + pswd + str(ts)
m.update(strs.encode("utf8"))
pswd = m.hexdigest()
body = {"account": account, "pswd": pswd, "mobile": mobile, "msg": msg, "ts": str(ts)}
header_dict = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko',
"Content-Type": "application/x-www-form-urlencoded"}
response = requests.post(url, data=body, headers=header_dict)
return json.loads(response.text)
# account 用户账号
# pswd 必填参数。用户密码
# mobile 必填参数。合法的手机号码
# msg 必填参数。短信内容
# ts 可选参数,时间戳,格式yyyyMMddHHmmss
# state 必填参数 状态 1:验证码短信 2:营销短信 3:语音验证码
message = "您的验证码为:%d,如非本人操作注意账户安全。" % (323456)
send = SendCode()
res = send.send('186xxxx5808', 'xrRiGiSt5pgpve.', '186xxxx5808', message, (int(time.time())), 1)
print(res['result'])
注意
- 签名信息,平台会自动进行添加,在message内容里面不需要再添加【短信签名】
- message信息需要再平台先报备审核,平台会进行信息匹配,如果已经审核通过才会发送出去。
- 发送成功返回result为0,如果message信息匹配失败,返回115。
- 第一条审核短信可能慢一点,正常状态短信是秒发效果。
参考
平台例子:
https://www.shmiaosai.com/support/show-76.html
其他的信息也可以通过平台进行参考