python基于Kewail云服务平台的短信验证码发送

短信验证码发送功能的实现可以通过一些平台来进行实现,这里我也使用过一些发送平台进行了测试:
当然这些平台都只是进行测试,允许免费发送短信的条数都有所限制
一、Twillo:
优点:操作简单(傻瓜操作)
缺点:

  1. twilio是一个国外的平台进入网站费时费力,(毕竟是国外的网站)。
  2. 注册时对中国的一些邮箱很不友好(例如:QQ), 可以使用Google邮箱注册来注册。
  3. 短信发送时只能发送给已经经过验证的手机号。

二、云通讯:
优点:稳定,简单;
缺点:短信发送时只能发送给已经经过验证的手机号。

三、Kewail:
优点:可以发送给任何你想发送到的手机号
下面给出使用python语言编写的基于Kewail的短信验证码发送功能的代码:

# -*- coding: utf-8 -*-

"""
平台官网:https://www.kewail.com/
"""
import hashlib
import requests
import time
import random
import datetime
import re


def sms_send_from_Kewail(name, mobile,):

    """

    :param name: 标记发送来源的签名
    :param mobile: 接受验证码的手机号
    短信内容格式:【{name}】您的验证码xxxxxx工作人员不会索取,请勿泄漏。
    例如:【中国移动】您的验证码111111工作人员不会索取,请勿泄漏。
    :return:
    """
    # access_key_ID and Secret_access_key get from www.Kewail.com
    access_key_ID = "xxxxx access_key xxxxxx"
    secret_access_key = "xxxxxx secret_access_key xxxxxx"

    # 验证码
    sms_code = "{:0>6}".format(random.randint(0, 999999))

    # url
    url = "https://live.kewail.com/sms/v1/sendsinglesms?accesskey={0}&random={1}".format(access_key_ID, sms_code)

    # 时间戳计算
    dt = str(datetime.datetime.now())
    dt = re.findall(r"(.*?)\.", dt)
    dt = dt[0]
    time_unix = int(time.mktime(time.strptime(dt, "%Y-%m-%d %H:%M:%S")))

    # sig拼接
    sig_not_sha = "secretkey={0}&random={1}&time={2}&mobile={3}".format(
        secret_access_key, sms_code, str(time_unix), mobile)
    hash = hashlib.sha256()
    hash.update(sig_not_sha.encode("utf-8"))
    sig = hash.hexdigest()

    # json数据
    data = {
        "tel": {
            "nationcode": "86",
            "mobile": mobile
        },
        "type": 0,
        "msg": "【{}】您的验证码{}工作人员不会索取,请勿泄漏。".format(name, sms_code),
        "sig": sig,
        "time": time_unix,
        "extend": "",
        "ext": "",
    }
    f = requests.post(url, json=data)
    print(f.text)


name = "测试"
mobile = "13535353535" 
sms_send_from_Kewail(name, mobile)



如果还有配置上的问题:可参考官方文档:
https://www.kewail.com/doc/index.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值