阿里云短信验证码接口的使用

安装python核心SDK库(推荐用新版)

旧版:pip install aliyun-python-sdk-core3

新版:pip install aliyun-python-sdk-core-v3

创建签名

创建AccessKey

image-20200719154644128

image-20200719154708203

AccessKey IDAccessKey Secret后面会用到

搜索阿里云的短信服务

image-20200719155611239

image-20200719155718067

获取官方提供的demo

image-20200719160035841

image-20200719160452863

官方提供的DEMO如下

from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.request import CommonRequest
client = AcsClient(\'<accessKeyId>\', \'<accessSecret>\', \'default\')

request = CommonRequest()
request.set_accept_format(\'json\')
request.set_domain(\'dysmsapi.aliyuncs.com\')
request.set_method(\'POST\')
request.set_protocol_type(\'https\') # https | http
request.set_version(\'2017-05-25\')
request.set_action_name(\'SendSms\')

request.add_query_param(\'RegionId\', "default")
request.add_query_param(\'PhoneNumbers\', "接收验证码的手机号")
request.add_query_param(\'SignName\', "你的签名名称")
request.add_query_param(\'TemplateCode\', "你的模版CODE")

response = client.do_action(request)
# python2:  print(response) 
print(str(response, encoding = \'utf-8\'))

将代码写成一个公共方法以便我们使用

# checkCode.py
from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.request import CommonRequest

def send_sms(template, mobile):
    client = AcsClient(\'你的AccessKey ID\', \'你的Access Key Secret\', \'default\')

    request = CommonRequest()
    request.set_accept_format(\'json\')
    request.set_domain(\'dysmsapi.aliyuncs.com\')
    request.set_method(\'POST\')
    request.set_protocol_type(\'https\')  # https | http  注意当项目发布到服务器上需要修改协议
    request.set_version(\'2017-05-25\')

    # set_action_name 选择调用的接口的名称,如:SendSms,SendBatchSms等
    request.set_action_name(\'SendSms\')

    request.add_query_param(\'RegionId\', "default")  # 98A66994-3DF4-4FA5-A33F-CCB36EB599D0
    # request.add_query_param(\'RegionId\', "cn-hangzhou")
    request.add_query_param(\'PhoneNumbers\', mobile)  # 发送的人
    request.add_query_param(\'SignName\', "你的签名名称")    # 签名
    request.add_query_param(\'TemplateCode\', "你的模板编号")    # 模板编号
    request.add_query_param(\'TemplateParam\', f"{template}")  # 发送验证码内容
    response = client.do_action_with_exception(request)

    # response = client.do_action(request)
    # # python2:  print(response)
    # print(str(response, encoding=\'utf-8\'))

    return response

使用公共方法

code = "%06d" % random.randint(0, 999999)
# 将验证码存入session
request.session[\'sms\'] = code
template = {
    \'code\': code,
}
res = send_sms(template, mobile)  #
res_dict = json.loads(res)
if res_dict.get(\'Message\') == \'OK\' and res_dict.get(\'Code\') == \'OK\':
    return APIResponse(\'ok\')
else:
    return APIResponse(status=0, msg=\'error\')

版权声明:本文为guanxiying原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/guanxiying/p/13340398.html