python自动发送短信验证码、短信通知、营销短信、语音短信

流程

发送手机号码通知或者短信,我们可以通过平台来自动批量的发送短信。

需要先在平台上面完成身份认证、签名认证、信息内容报备,平台审核通过后才可以使用。

测试

下面是以"秒赛科技"来进行测试,之前有试过阿里云,平台验证比较严格,要求是企业信息验证,个人测试不方便。

#!/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'])

注意

  1. 签名信息,平台会自动进行添加,在message内容里面不需要再添加【短信签名】
  2. message信息需要再平台先报备审核,平台会进行信息匹配,如果已经审核通过才会发送出去。
  3. 发送成功返回result为0,如果message信息匹配失败,返回115。
  4. 第一条审核短信可能慢一点,正常状态短信是秒发效果。

参考

平台例子:
https://www.shmiaosai.com/support/show-76.html
其他的信息也可以通过平台进行参考

发布了141 篇原创文章 · 获赞 107 · 访问量 30万+

猜你喜欢

转载自blog.csdn.net/ternence_hsu/article/details/104493846
今日推荐