短信验证码

   短信验证码服务商有很多。这里我们选择一个阿里通信来作为短信服务平台。通过这个平台,中小企业及开发者可以在最短的时间内实现短信验证码发送、短信服务提醒、语音验证码、语音服务通知、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

android 短信验证码方框 短信验证码界面_json

获取AccessKey和ACCESS_KEY_SECRET:

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

android 短信验证码方框 短信验证码界面_android 短信验证码方框_02

创建应用:

android 短信验证码方框 短信验证码界面_android 短信验证码方框_03

创建验证码:

创建签名:

  1. 创建验证码分为两大步,先是添加签名,然后再添加短信模版。首先添加签名:
  2. android 短信验证码方框 短信验证码界面_短信验证码_04

  3. 然后来到添加签名的页面:
  4. android 短信验证码方框 短信验证码界面_android 短信验证码方框_05

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

添加短信模板:

  1. 点击添加模板:
  2. android 短信验证码方框 短信验证码界面_短信验证码_06

  3. 填入模板相关的参数:
  4. android 短信验证码方框 短信验证码界面_android 短信验证码方框_07

Python发送短信验证码:

  1. 这里下载

Python

SDK

  1. 这里查看文档。
  2. 下载完

SDK

  1. 后,然后进入到目录中,再进入到你的

django

  1. 开发的虚拟环境中,然后执行命令

python setup.py install

  1. 即可安装

SDK

  1. 在下载的

SDK

  1. 文件中,有一个

test_sms_send.py

  1. 的文件,修改里面相关的参数,然后再修改

const.py

  1. 中的

AccessKey

SecretKey

  1. 为之前获取的参数。运行这个文件就可以发送成功了。
# 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)