手机验证码-后端代码

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 ]]





发表你的评论:

提交评论
上一篇:
下一篇: