短信验证码

短信验证码

   短信验证码服务商有不少。这里咱们选择一个阿里通讯来做为短信服务平台。经过这个平台,中小企业及开发者能够在最短的时间内实现短信验证码发送、短信服务提醒、语音验证码、语音服务通知、IVR及呼叫中心、码号、后向流量、隐私保护相关的能力,实现互联网电信化。html

官方文档:

https://help.aliyun.com/document_detail/59210.htmlpython

登陆阿里通讯:

  1. 连接:https://www.aliyun.com/product/sms
  2. 而后用淘宝帐号进行登陆。
  3. 登陆成功后,进入到这个界面:https://dysms.console.aliyun.com/dysms.htm#/overview

获取AccessKey和ACCESS_KEY_SECRET:

在右上角的头像下,选择AccessKey:web

建立应用:

建立验证码:

建立签名:

  1. 建立验证码分为两大步,先是添加签名,而后再添加短信模版。首先添加签名:
    django

  2. 而后来到添加签名的页面:
    json

  3. 签名建立后,须要几个小时的审核。api

添加短信模板:

  1. 点击添加模板:
    ide

  2. 填入模板相关的参数:
    ui

Python发送短信验证码:

  1. 这里下载PythonSDK
  2. 这里查看文档。
  3. 下载完SDK后,而后进入到目录中,再进入到你的django开发的虚拟环境中,而后执行命令python setup.py install便可安装SDK
  4. 在下载的SDK文件中,有一个test_sms_send.py的文件,修改里面相关的参数,而后再修改const.py中的AccessKeySecretKey为以前获取的参数。运行这个文件就能够发送成功了。编码

    # const.py文件
     # ACCESS_KEY_ID/ACCESS_KEY_SECRET 根据实际申请的帐号信息进行替换
     ACCESS_KEY_ID = "你的用户的AccessKey"
     ACCESS_KEY_SECRET = "你的用户的Secretkey"

    而后修改test_sms_send.py的代码:spa

    import sys
     from aliyunsdkdysmsapi.request.v20170525 import SendSmsRequest
     from aliyunsdkdysmsapi.request.v20170525 import QuerySendDetailsRequest
     from aliyunsdkcore.client import AcsClient
     import uuid
     from aliyunsdkcore.profile import region_provider
     from aliyunsdkcore.http import method_type as MT
     from aliyunsdkcore.http import format_type as FT
     import const
     import json
    
     """ 短信业务调用接口示例,版本号:v20170525 Created on 2017-06-12 """
     # 注意:不要更改
     REGION = "cn-hangzhou"
     PRODUCT_NAME = "Dysmsapi"
     DOMAIN = "dysmsapi.aliyuncs.com"
    
     acs_client = AcsClient(const.ACCESS_KEY_ID, const.ACCESS_KEY_SECRET, REGION)
     region_provider.add_endpoint(PRODUCT_NAME, REGION, DOMAIN)
    
     def send_sms(business_id, phone_numbers, sign_name, template_code, template_param=None):
         smsRequest = SendSmsRequest.SendSmsRequest()
         # 申请的短信模板编码,必填
         smsRequest.set_TemplateCode(template_code)
    
         # 短信模板变量参数
         if template_param is not None:
             smsRequest.set_TemplateParam(template_param)
    
         # 设置业务请求流水号,必填。
         smsRequest.set_OutId(business_id)
    
         # 短信签名
         smsRequest.set_SignName(sign_name)
    
         # 数据提交方式
         # smsRequest.set_method(MT.POST)
    
         # 数据提交格式
         # smsRequest.set_accept_format(FT.JSON)
    
         # 短信发送的号码列表,必填。
         smsRequest.set_PhoneNumbers(phone_numbers)
    
         # 调用短信发送接口,返回json
         smsResponse = acs_client.do_action_with_exception(smsRequest)
    
         # TODO 业务处理
         return smsResponse
    
     if __name__ == '__main__':
         __business_id = uuid.uuid1()
         #print(__business_id)
         params = {
             'code': 1234
         }
         #params = u'{"name":"wqb","code":"12345678","address":"bz","phone":"13000000000"}'
         print(send_sms(__business_id, "18515287309", "小饭桌应用", "SMS_68465012", json.dumps(params)
相关文章
相关标签/搜索