首先为大家分享python实现发送手机短信验证码后台方法,供大家参考,具体内容如下
1、生成4位数字验证码
1 def createPhoneCode(session): 2 chars=['0','1','2','3','4','5','6','7','8','9'] 3 x = random.choice(chars),random.choice(chars),random.choice(chars),random.choice(chars) 4 verifyCode = "".join(x) 5 session["phoneVerifyCode"] = {"time":int(time.time()), "code":verifyCode} 6 return verifyCode 2、发送给外部短信接口(post方式)
1 def sendTelMsg(msg, phoneID): 2 SendTelMsgUrl="http://www.810086.com.cn/jk.aspx" 3 params = {"zh":"china", "mm":"china@10086",
4 "hm":phoneID,"nr":msg,"sms_type":88} 5 postData=urllib.urlencode(params) 6 req = urllib2.Request(SendTelMsgUrl, postData) 7 req.add_header('Content-Type', "application/x-www-form-urlencoded") 8 respone = urllib2.urlopen(req) 9 res = respone.read() 10 return res 其中session参数是django urls.py 后台方法 以request.session传入
3、前端js
下面就为大家介绍python解决接口测试获取手机验证码问题的方法:
最近在做接口测试的时候遇到一个问题,就是有个很重要的接口要用到手机短信验证码,而其他接口都依赖于这个验证码,如果没有短信验证码就不能进行下面接口的测试,所以为了定时的验证线上的接口是否正常,而且又不修改代码,所以就想到以下解决方案,如果大家有了更好方案可以一起交流分享。
Android在收到短信后会发送一个Action为android.provider.Telephony.SMS_RECEIVED的广播,所以我们只需要写个类继承BroadcastReceiver就可以很容易地监听到短信
AndroidManifest.xml里注册一下接收器:
1 <receiver android:name=".SmsInterceptReceiver"> 2 <intent-filter> 3 <action android:name="android.provider.Telephony.SMS_RECEIVED" /> 4 </intent-filter> 5 </receiver> 添加权限:
1 <uses-permission android:name="android.permission.RECEIVE_SMS"/>
python 代码,主要通过adb log来获取apk包所截取的短信信息,然后进行分析后既可使用。
1 author = 'guozhenhua' 2 #coding=utf-8 3 import urllib2 4 import os,time 5 6 7 8 #解析短信验证码 9 os.system("adb logcat -c") 10 cmd="adb logcat -d |findstr E/SmsRec" 11 #time.sleep(30); 12 while(1): 13 smscode= os.popen(cmd).read() 14 #print smscode 15 if (smscode!=""): 16 smscode=smscode.split("验证码:")[1].split(",")[0] 17 break; 18
19 20 print "验证码是:"+smscode
来源:oschina
链接:https://my.oschina.net/baichibaicai/blog/3212252