zc110

各种短信接口

直接拿来用就可以了

云片网

import json
import requests
from luffyapi.utils.logger import log

def get_code():
    import random
    s_code = \'\'
    for i in range(4):
        s_code += str(random.randint(0,9))
    print(s_code)
    return s_code


def send_single_sms(code, mobile):
    from . import settings
    # 发送单条短信
    url = settings.url
    text = f"您的验证码是{code}。如非本人操作,请忽略本短信"
    apikey = settings.apikey
    try:
        res = requests.post(url, data={
            "apikey": apikey,
            "mobile": mobile,
            "text": text
        })

        re_json = json.loads(res.text)
        print(re_json)
        re = re_json[\'code\']
        if re == 53:
            return False
        else:
            return True
    except Exception as e:
        log.error(\'手机号:%s,短信发送失败,错误为:%s\' % (mobile, str(e)))
		# 这里我用日志捕获异常,如果不需要就try去掉


腾讯云

# 短信应用 SDK AppID
APPID = 1400123123  # SDK AppID 以1400开头

# 短信应用 SDK AppKey
APPKEY = "2025dfawefwfjkiokjg984100"

# 需要发送短信的手机号码
# phone_numbers = ["21212313123", "12345678902", "12345678903"]
# 短信模板ID,需要在短信控制台中申请

TEMPLATE_ID = 7839  # NOTE: 这里的模板 ID`7839`只是示例,真实的模板 ID 需要在短信控制台中申请
# 签名

SMS_SIGN = "腾讯云"  # NOTE: 签名参数使用的是`签名内容`,而不是`签名ID`。这里的签名"腾讯云"只是示例,真实的签名需要在短信控制
import random
from qcloudsms_py import SmsSingleSender

from libs.sms import settings
import utils


def make_code():
    code_list = []
    for i in range(6):
        code_list.append(str(random.randint(0, 9)))
    return \'\'.join(code_list)


def send_sms(code, telephone):
    ssender = SmsSingleSender(settings.APPID, settings.APPKEY)
    params = [code]  # 当模板没有参数时,`params = []`
    try:
        result = ssender.send_with_param(86, telephone,
                                         settings.TEMPLATE_ID, params, sign=settings.SMS_SIGN, extend="", ext="")
        """
        \'result\': 0表示成功
        result: {\'result\': 0, \'errmsg\': \'OK\', \'ext\': \'\', \'sid\': \'2025dfawefwfjkiokjg984100\', \'fee\': 1, \'isocode\': \'CN\'}
        """
        # print(\'result:\', result)
        if not result.get(\'result\'):
            return True
        return False

    except Exception as e:
        utils.log.error(f\'手机号:{telephone},短信发送失败,错误为:{e}\')


if __name__ == \'__main__\':
    test_phone = [\'13333333333\']
    for phone in range(3):
        send_sms(make_code(), telephone=test_phone[0])

阿里云

# aliyun 短信服务基本配置参数

accessKeyId = \'xxxxxxxxxxxxxxxxx\'
accessSecret = \'xxxxxxxxxxxxxxxxxxxxxxx\'
RegionId = \'cn-hangzhou\'
request_type = \'POST\'
SignName = \'xxxxxxx\'
TemplateCode = \'xxxxxxxxxxxxxxxxx\'



import string
import random

from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.request import CommonRequest

from . import settings


def gen_code():
    code = random.choices(string.digits, k=4)
    return \'\'.join(code)


def send_sms(phone, code):
    print(\'code\', code)
    client = AcsClient(
        settings.accessKeyId,
        settings.accessSecret,
        settings.RegionId
    )
    request = CommonRequest()
    request.set_accept_format(\'json\')
    request.set_domain(\'dysmsapi.aliyuncs.com\')
    request.set_method(settings.request_type)
    request.set_protocol_type(\'https\')  # https | http
    request.set_version(\'2017-05-25\')
    request.set_action_name(settings.SignName)

    request.add_query_param(\'RegionId\', settings.RegionId)
    request.add_query_param(\'PhoneNumbers\', phone)
    request.add_query_param(\'SignName\', settings.SignName)
    request.add_query_param(\'TemplateCode\', settings.TemplateCode)
    request.add_query_param(\'TemplateParam\', "{\"code\": \"12345678\"}")
    response = client.do_action_with_exception(request)
    return True

分类:

技术点:

相关文章: