首先需要安装aliyun的sdk
pip install aliyun-python-sdk-core-v3
下面是代码部分
import uuid
from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.profile import region_provider
from aliyunsdkcore.request import RpcRequest
import random
class alisms(RpcRequest):
def __init__(self,sign,templateCode,keyId,keySecret):
RpcRequest.__init__(self, 'Dysmsapi', '2017-05-25', 'SendSms')
# 注意:不要更改
REGION = "cn-hangzhou"
PRODUCT_NAME = "Dysmsapi"
DOMAIN = "dysmsapi.aliyuncs.com"
#下面参数在实例化的时候已经要填进来的
self.sign_name = sign # 短信签名
self.template_code = templateCode # 短信模板CODE
self.ACCESS_KEY_ID = keyId # ACCESS_KEY_ID
self.ACCESS_KEY_SECRET = keySecret # ACCESS_KEY_SECRET
self.acs_client = AcsClient(self.ACCESS_KEY_ID, self.ACCESS_KEY_SECRET, REGION)
region_provider.add_endpoint(PRODUCT_NAME, REGION, DOMAIN)
def get_TemplateCode(self):
return self.get_query_params().get('TemplateCode')
def set_TemplateCode(self, TemplateCode):
self.add_query_param('TemplateCode', TemplateCode)
def get_PhoneNumbers(self):
return self.get_query_params().get('PhoneNumbers')
def set_PhoneNumbers(self, PhoneNumbers):
self.add_query_param('PhoneNumbers', PhoneNumbers)
def get_SignName(self):
return self.get_query_params().get('SignName')
def set_SignName(self, SignName):
self.add_query_param('SignName', SignName)
def get_ResourceOwnerAccount(self):
return self.get_query_params().get('ResourceOwnerAccount')
def set_ResourceOwnerAccount(self, ResourceOwnerAccount):
self.add_query_param('ResourceOwnerAccount', ResourceOwnerAccount)
def get_TemplateParam(self):
return self.get_query_params().get('TemplateParam')
def set_TemplateParam(self, TemplateParam):
self.add_query_param('TemplateParam', TemplateParam)
def get_ResourceOwnerId(self):
return self.get_query_params().get('ResourceOwnerId')
def set_ResourceOwnerId(self, ResourceOwnerId):
self.add_query_param('ResourceOwnerId', ResourceOwnerId)
def get_OwnerId(self):
return self.get_query_params().get('OwnerId')
def set_OwnerId(self, OwnerId):
self.add_query_param('OwnerId', OwnerId)
def get_SmsUpExtendCode(self):
return self.get_query_params().get('SmsUpExtendCode')
def set_SmsUpExtendCode(self, SmsUpExtendCode):
self.add_query_param('SmsUpExtendCode', SmsUpExtendCode)
def get_OutId(self):
return self.get_query_params().get('OutId')
def set_OutId(self, OutId):
self.add_query_param('OutId', OutId)
def send_sms(self,phone_numbers):
#验证码
code = {'code':self.randrom_num()}
business_id = uuid.uuid4()
sms_request = alisms(self.sign_name,self.template_code,self.ACCESS_KEY_ID,self.ACCESS_KEY_SECRET)
sms_request.set_TemplateCode(self.template_code) # 短信模板变量参数
sms_request.set_TemplateParam(code)
sms_request.set_OutId(business_id) # 设置业务请求流水号,必填。
sms_request.set_SignName(self.sign_name) # 短信签名
sms_request.set_PhoneNumbers(phone_numbers) # 短信发送的号码列表,必填。
sms_response = self.acs_client.do_action_with_exception(sms_request) # 调用短信发送接口,返回json
result = str(sms_response, encoding='utf-8')
print(result)
# return result
def randrom_num(self):
#生成6位随机纯数字验证码
code = random.randint(100000, 999999)
# #生成带字母的验证码
# index = 6
# count = 0
# code = '' # 存放验证码
# while index > count:
# num = random.randrange(48, 122)
# if (num <= 57) or (num >= 65 and num <= 90) or (num >= 97): # 符合条件
# code += chr(num)
# count += 1
return code
#只需要把下面的替换成实际配置就可以直接用
Alisms = alisms('你的短信签名','你的短信模板','你的keyid','你的key-serect')
Alisms.send_sms('接收验证码的手机号')