python --- 短信接口开发手机验证码发送

现在网络环境下,基本上任何网站注册都会验证手机号,已达到防止机器人注册的目的。除此之外短信群发,查询回复,找回密码等相关功能也需要短信验证码功能。那么网站的验证码发送是如何实现的呢?现在我们学习一下(完整代码附在文末)。

目前市面上的短信验证码通信平台非常之多,所以可供选择的平台也多,例如阿里云,腾讯云等,介于这些通讯平台多面向企业,对于学习者不是很适合,我们本次使用的是互亿无线云通信(主要是它送的有10条免费短信,足够我们学习使用了)。


  1. 首先我们到互亿无线注册账号,此处省略若干字,进入我们需要用到的信息页面

    python --- 短信接口开发手机验证码发送_第1张图片

    python --- 短信接口开发手机验证码发送_第2张图片

  2. 通过查看文档我们可以知道:短信接口通过 POST、 GET 方式进行短信提交,数据编码采用 utf-8 格式,请求地址为:http://106.ihuyi.com/webservice/sms.php?method=Submit,请求参数等信息如下图,其他内容在这里就不一一赘述了,具体内容参考文档。

    python --- 短信接口开发手机验证码发送_第3张图片

  3. 由于这个平台给出的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函数

    到这里我们就完成短信接口的使用

你可能感兴趣的:(python)