现在网络环境下,基本上任何网站注册都会验证手机号,已达到防止机器人注册的目的。除此之外短信群发,查询回复,找回密码等相关功能也需要短信验证码功能。那么网站的验证码发送是如何实现的呢?现在我们学习一下(完整代码附在文末)。
目前市面上的短信验证码通信平台非常之多,所以可供选择的平台也多,例如阿里云,腾讯云等,介于这些通讯平台多面向企业,对于学习者不是很适合,我们本次使用的是互亿无线云通信(主要是它送的有10条免费短信,足够我们学习使用了)。
-
首先我们到互亿无线注册账号,此处省略若干字,进入我们需要用到的信息页面
-
通过查看文档我们可以知道:短信接口通过 POST、 GET 方式进行短信提交,数据编码采用 utf-8 格式,请求地址为:http://106.ihuyi.com/webservice/sms.php?method=Submit,请求参数等信息如下图,其他内容在这里就不一一赘述了,具体内容参考文档。
-
由于这个平台给出的python参考文档为python2的,所以python3下代码略作调整
import requests,random def send_sms(number,mobile): url = "http://106.ihuyi.com/webservice/sms.php?method=Submit" #请求地址 mobile = mobile account = "C18154439" #提交账户APIID password = "de5e1f6ac14c0892674325ff6cc66055" #提交密码APIKEY #请求的头部 headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"} #数据整合 data = { "account": account, "mobile": mobile, "password": password, "content": "您的验证码是:"+number+"。请不要把验证码泄露给其他人。" #发送的验证码短信,要注意符合模板格式,不然无法发送成功 } #请求数据必须为字典类型 #发起请求 response = requests.post(url = url,data = data, headers = headers) #接收返回内容 resutl = response.content.decode() print(resutl) if __name__ == '__main__': number = str(random.randrange(1000, 9999)) #随机生成四位验证码 mobile = "18888888888" #目标手机号码 send_sms(number, mobile) #调用send_sms函数
到这里我们就完成短信接口的使用