path('PHONESMS/<id>/',PHONESMS,name='PHONESMS'),#取验证码 path('Egogogo/', Egogogo),#登录 #################################################################################################前端取手机验证码 import random def generate_verification_code_v2():# code_list = [] for i in range(2): random_num = random.randint(0, 9) a = random.randint(65, 90) b = random.randint(97, 122) random_lowercase_letter = chr(b) code_list.append(str(random_num)) code_list.append(random_lowercase_letter) code_list.append(random_lowercase_letter) verification_code = ''.join(code_list) return verification_code # 配置部分(不会变更) REGION = "cn-hangzhou" PRODUCT_NAME = "SMSapi" DOMAIN = "dysmsapi.aliyuncs.com" ACCESS_KEY_ID = '你的' # 必填 ACCESS_KEY_SECRET = '你的' # 必填 from aliyunsdkcore.client import AcsClient from aliyunsdkcore.profile import region_provider # 初始化 acs_client = AcsClient(ACCESS_KEY_ID, ACCESS_KEY_SECRET, REGION) region_provider.modify_point(PRODUCT_NAME, REGION, DOMAIN) from aliyunsdkcore.request import RpcRequest class SendSmsRequest(RpcRequest): def __init__(self): RpcRequest.__init__(self, 'Dysmsapi', '2017-05-25', 'SendSms') def set_TemplateCode(self, TemplateCode): """ 模板CODE """ self.add_query_param('TemplateCode', TemplateCode) def set_TemplateParam(self, TemplateParam): """ 模板参数,变量 """ self.add_query_param('TemplateParam', TemplateParam) def set_PhoneNumbers(self, PhoneNumbers): """ 要发送的手机号 """ self.add_query_param('PhoneNumbers', PhoneNumbers) def set_SignName(self, SignName): """ 短信签名名称 """ self.add_query_param('SignName', SignName) def send_sms(phone_numbers, sign_name='duanshuilu', template_code='SMS_187271526', template_param='{"code":"963652"}'): """ 调用短信接口,返回结果 :param phone_numbers: 手机号 :param sign_name: 短信签名名称 :param template_code: 模板CODE :param template_param: 模板参数,变量 """ sign_name = sign_name sms_request = SendSmsRequest() sms_request.set_TemplateCode(template_code) # 短信模板CODE if template_param: sms_request.set_TemplateParam(template_param) # 短信模板验证码变量 sms_request.set_SignName(sign_name) # 短信签名 sms_request.set_PhoneNumbers(phone_numbers) # 要发送的手机号 sms_response = acs_client.do_action_with_exception(sms_request) # 调用短信发送接口,返回json return sms_response # sss=send_sms('15323441764') # 返回验证码和是否成功信息给SSS ,同时往手机发送验证码 import json def phonegetmsglogin(request): if request.method == "POST": xx=request.POST.get('myphone') print(xx) myphone=xx #拿到手机号 print('获得手机号',myphone) message={} #生成验证码 smscode=generate_verification_code_v2() print(smscode) #1.发送验证码,2.返回发送状态 sss=send_sms(myphone, 'duanshuilu','SMS_187271526',{"code":smscode}) #转换类型 xx=sss t = xx.decode() # 先变为中文 jsonbb = t.encode('gbk') print(jsonbb, type(jsonbb)) hh = eval(jsonbb) print(hh, type(hh))#此时hh为字典对象 MM=hh["Code"] CC=hh["Message"]#取返回的状态符 print("sss",sss) print("MM","CC",MM,CC) if(MM=="OK" and CC=="OK"): print("信息发送成功") message=smscode #把状态码和验证码发到前端,校验 #message= json.dumps(message)#由字典对象转为json对象 #因为前端js转不了,报错,所以由后端转好了传给它 else: message = "false" # 把状态码和验证码发到前端,校验 print("message",message) #return JsonResponse(message, safe=False, json_dumps_params={'ensure_ascii': False}) return HttpResponse(message) def PHONESMS(request,id):#参数为手机号,字符串 myphone=id #拿到手机号 print('获得手机号',myphone) message={} #生成验证码 smscode=generate_verification_code_v2() print(smscode) #1.发送验证码,2.返回发送状态 sss=send_sms(myphone, 'duanshuilu','SMS_187271526',{"code":smscode}) #转换类型 xx=sss t = xx.decode() # 先变为中文 jsonbb = t.encode('gbk') print(jsonbb, type(jsonbb)) hh = eval(jsonbb) print(hh, type(hh))#此时hh为字典对象 MM=hh["Code"] CC=hh["Message"]#取返回的状态符 print("sss",sss) print("MM","CC",MM,CC) if(MM=="OK" and CC=="OK"): print("信息发送成功") message=smscode #把状态码和验证码发到前端,校验 #message= json.dumps(message)#由字典对象转为json对象 #因为前端js转不了,报错,所以由后端转好了传给它 else: message = "false" # 把状态码和验证码发到前端,校验 print("message",message) #return JsonResponse(message, safe=False, json_dumps_params={'ensure_ascii': False}) return HttpResponse(message)
手机验证码-后端代码
标签:
评论者:[[ schemeInfo.user.username ]]
评论内容:[[ schemeInfo.pbody ]]
评论时间:[[ schemeInfo.ptime ]]
发表你的评论:
提交评论
上一篇:
fristitem.vue页面代码
下一篇:
cccok.vue代码