手机短信验证码

下列代码都是以本身的项目实例讲述的,相关的文本内容不多,主要说明全在代码注释中。python

我是使用阿里云云通讯的短信服务,第一次使用会摸不着头绪,这里咱们须要作些准备工做:json

  一、登录本身的帐号进入阿里云官网,没有帐号的朋友们自行注册api

  二、在导航栏上搜索“短信服务”,没有添加的话应该会有“免费开通”按钮,再进入管理控制台(咱们须要添加这个短信服务板块,这样控制台会有短信服务这个模块),管理控制台的页面:服务器

 

 

 

 

   三、添加api密钥,成功以后会自行生成一个入口api密钥 id 和 secret。restful

 

 

   四、在第一张图片上点击“添加签名”和“添加模板”,添加完相关信息,须要相关人员审核。添加模板时须要注意:dom

 

 

 

  五、写完全部的步骤,记得充值,冲个5块钱应该够了吧(反正是测试用的)函数

  六、准备工做作完,如今接下来的都是复制粘贴代码了(python3的朋友须要:pip install aliyun-python-sdk-core-v3`  python2的朋友:pip install aliyun-python-sdk-core)测试

  七、发送短信api接口配置阿里云

from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.request import CommonRequest


class Alidayu(object):
    """
    api接口的初始化操做
    accessKeyId: api密钥的入口id
    accessSecret: api密钥的入口密码
    regionId: 通常是你云服务器的地区
    以上三个参数必不可少,封装成客户端实例
    发送配置(都是固定的配置)分别是发送短信的格式、域名、方式、协议、版本
    """
    def __init__(self):
        self.accessKeyId = "你的密钥入口id"
        self.accessSecret = "你的密钥入口secret"
        self.regionId = "cn-shanghai"   # 通常是上海或者杭州
        self.client = AcsClient(self.accessKeyId, self.accessSecret, self.regionId)

        # 发送配置(都是固定的配置)
        self.comRequest = CommonRequest()
        self.comRequest.set_accept_format("json")
        self.comRequest.set_domain("dysmsapi.aliyuncs.com")
        self.comRequest.set_method("POST")
        self.comRequest.set_protocol_type("https")
        self.comRequest.set_version("2017-05-25")

    def send_sms(self, telephone, code):
        """
        发送配置定义好,如今就是发送信息(验证码)
        发送信息以前的四个参数也是必不可少的:
        手机号码、短信签名名称、短信模板CODE、短信模板的内容参数值
        最后经过客户发送便可
        :param telephone: 手机号码
        :param code: 随机验证码
        :return:
        """
        self.comRequest.set_action_name("SendSms")
        self.comRequest.add_query_param("PhoneNumbers", "你的手机号码")
        self.comRequest.add_query_param("SignName", "你的短信签名名称")
        self.comRequest.add_query_param("TemplateCode", "你的模板CODE")
        # 这个是你配置的短信模板的内容里的参数名称,变量名必定要同样
        self.comRequest.add_query_param("TemplateParam", "{\"code\":\"%s\"}" % code)
        response = self.client.do_action(self.comRequest)
        print(response)
        return response

  八、编写一个视图函数,经过url访问就能够了url

@bp.route("/sms_captcha")
def sms_captcha():
    telephone = request.args.get("telephone")
    if not telephone:
        return restful.params_error(message="请输入手机号码")

    # 借用图形验证码类中的获取随机验证码的方法
    captcha = Captcha.gene_text(numbers=4).replace(" ", "")
    # 上面的代码你能够删掉,把telephone换成具体的手机号码,captcha换成具体的验证码值
    alidayu = Alidayu()
    if alidayu.send_sms(telephone, captcha):
        # 能够print打印一下验证
        return restful.success()
    else:
        return restful.params_error(message="验证码发送失败!")