zoukankan      html  css  js  c++  java
  • 短信验证码

    短信验证码

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

    官方文档:

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

    登录阿里通信:

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

    获取AccessKey和ACCESS_KEY_SECRET:

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

    创建应用:

    创建验证码:

    创建签名:

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

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

    3. 签名创建后,需要几个小时的审核。

    添加短信模板:

    1. 点击添加模板:

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

    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的代码:

       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)
  • 相关阅读:
    【原创】flash中DataGrid数据列显示顺序的解决办法(非数据排序)
    [译]C# 7系列,Part 2: Async Main 异步Main方法
    [译]C# 7系列,Part 1: Value Tuples 值元组
    我们是怎么做Code Review的
    Asp.Net 5 新增公告仓库
    微信现金红包高级红包接口开发注意事项
    解决Windows 8.1中所有的应用(Modern App)无法打开(闪退)的问题
    代码要恰如其分——记一次代码审查
    [译]DbContext API中使用SqlQuery和ExecuteSqlCommand获取存储过程的输入输出参数
    解决托管在Windows上的Stash的Pull request无法合并的问题
  • 原文地址:https://www.cnblogs.com/renshaoqi/p/10691050.html
Copyright © 2011-2022 走看看