python 实现发送手机短信验证码后台方法

1、生成4位数字验证码

def createPhoneCode(session):
    chars=['0','1','2','3','4','5','6','7','8','9']
    x = random.choice(chars),random.choice(chars),random.choice(chars),random.choice(chars)
    verifyCode = "".join(x)
    session["phoneVerifyCode"] = {"time":int(time.time()), "code":verifyCode}
    return verifyCode

2、发送给外部短信接口(post方式)

def sendTelMsg(msg, phoneID):
    SendTelMsgUrl="http://www.810086.com.cn/jk.aspx"
    params = {"zh":"china",  "mm":"china@10086", 
              "hm":phoneID,"nr":msg,"sms_type":88}
    postData=urllib.urlencode(params)
    req = urllib2.Request(SendTelMsgUrl, postData)
    req.add_header('Content-Type', "application/x-www-form-urlencoded")
    respone = urllib2.urlopen(req)
    res = respone.read()
    return res

其中session参数是django urls.py 后台方法 以request.session传入


3、前端js

	    $("button[name=getVerifyBt]").bind("click", function(){
	    	var self = this;
	    	var userPhoneEl = $("input[name=phoneNum]");
	    	var userPhone = $.trim(userPhoneEl.val());
	    	if (userPhone == ""){
	    		alert("请填写号码!");
	    		return;
	    	}
	    	$.get("/getPhoneVerifyCode/"+userPhone + "/")
	    	.success(function(msg){
	    		console.info(msg);
	    		var ddEl = $(self).siblings("dd.showTag");
	    		if(msg == "ok"){
	    			ddEl.find("span").hide();
	    			ddEl.find("span[name=success]").show();
	    		}else{
	    			ddEl.find("span").hide();
	    			ddEl.find("span[name=error]").show();	    			
	    		}
	    	})
	    	.error(function(msg){
	    		console.info(msg);
	    	});
	    	var step = 60;
	    	$(this).attr("disabled", true);	
	    	$(this).html("重新发送"+step);
	    	var interThread = setInterval(function(){
	    		step-=1;
	    		$(self).html("重新发送"+step);
	    		if(step <=0){
	    			$(self).removeAttr("disabled");
	    			$(self).html("获取验证码");
	    			clearInterval(interThread);
	    		}
	    	}, 1000);
	    	
	    	
	    });


  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值