2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > python实现发送和获取手机短信验证码

python实现发送和获取手机短信验证码

时间:2023-09-13 07:55:28

相关推荐

python实现发送和获取手机短信验证码

后端开发|Python教程

python发送短信验证码,python获取短信验证码

后端开发-Python教程

首先为大家分享python实现发送手机短信验证码后台方法,供大家参考,具体内容如下

c 界面源码,vscode安装打开浏览器,ubuntu屏幕卡住,起tomcat,页面出现,爬虫柜攻略,php数组值累加,广东求推荐好的seo公司,医院网站设计模板lzw

1、生成4位数字验证码

秦时明月源码,vscode怎么运行ui代码,ubuntu设置开机启动,iis整合tomcat8,sqlite 技术内幕,网页设计师发展方向,phpcms 数据库分表,上海电信服务器租用,shopex文章插件,前端框架配置,中国爬虫法,php500,中山seo服务商,springboot怎样设置,顺风车网站源码,网页私服一键端,车辆追踪系统网页模板,zencart后台无法登陆,同一页面调用多个图片切换,学校网站管理系统div css漏洞,小偷程序0lzw

def createPhoneCode(session): chars=[,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

手机版电视直播程序源码,vscode查看8进制,ubuntu wifi登录,tomcat启动加入服务,db和sqlite什么关系,爬虫豆瓣电影top10电影名,php批量上传插件,seo怎么建外链,检测网站是否伪静态,婚纱店价格表模板lzw

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

def sendTelMsg(msg, phoneID): SendTelMsgUrl="/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); });

下面就为大家介绍python解决接口测试获取手机验证码问题的方法:

最近在做接口测试的时候遇到一个问题,就是有个很重要的接口要用到手机短信验证码,而其他接口都依赖于这个验证码,如果没有短信验证码就不能进行下面接口的测试,所以为了定时的验证线上的接口是否正常,而且又不修改代码,所以就想到以下解决方案,如果大家有了更好方案可以一起交流分享。

Android在收到短信后会发送一个Action为android.provider.Telephony.SMS_RECEIVED的广播,所以我们只需要写个类继承BroadcastReceiver就可以很容易地监听到短信。

package com.example.getsms;import android.content.BroadcastReceiver;import android.content.ContentResolver;import android.content.Context;import android.content.Intent;import android.os.Bundle;import android.telephony.SmsMessage;import android.text.TextUtils;import android.util.Log;public class SmsInterceptReceiver extends BroadcastReceiver {private final String TAG = "SmsRec"; private static final String SMS_EXTRA_NAME ="pdus"; @Override public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub String message = ""; Log.e(TAG, "free message " );Bundle extras = intent.getExtras(); if ( extras != null ) {try {Object[] smsExtra = (Object[]) extras.get( SMS_EXTRA_NAME ); ContentResolver contentResolver = context.getContentResolver();Log.e(TAG, "free message " ); for ( int i = 0; i < smsExtra.length; ++i ) {SmsMessage sms = SmsMessage.createFromPdu((byte[]) smsExtra[i]);String body = sms.getMessageBody().toString();message += body; } Log.e(TAG, "free message : " + message);} catch (Exception e) {// TODO: handle exceptionLog.e(TAG, e.getMessage());} }}}

AndroidManifest.xml里注册一下接收器:

添加权限:

python 代码,主要通过adb log来获取apk包所截取的短信信息,然后进行分析后既可使用。

__author__ = guozhenhua#coding=utf-8import urllib2import os,time#解析短信验证码os.system("adb logcat -c")cmd="adb logcat -d |findstr E/SmsRec"#time.sleep(30);while(1): smscode= os.popen(cmd).read() #print smscode if (smscode!=""): smscode=smscode.split("验证码:")[1].split(",")[0] break;print "验证码是:"+smscode

以上就是本文的全部内容,内容很丰富,但是也存在一些不足,希望大家谅解,共同学习进步。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。