1、短信发送开发指南地址:https://help.aliyun.com/document_detail/55491.html?spm=a2c4g.11186623.6.568.l5zTwH

2、SDK和Demo下载地址:https://help.aliyun.com/document_detail/55359.html?spm=a2c4g.11186623.4.3.IvyHwo

3、总结前两步:开发前先到开发指南按步骤去做一系列前期工作,即:

(1)到阿里云去申请一个accessKey Id和Access Key Secret

(2)在短信服务平台申请短信签名和短信模板

(3)下载对应的Python的SDK和Demo

4、开发工作:

(1)将下载到的SDK和DEMO解压后放到项目相应的地方

(2)运行cmd,cd到上诉的解压文件夹中运行 python setup.py install命令

(3)安装依赖到虚拟环境:

  ① pip install aliyuncli

  ② pip install -Iv aliyun-python-sdk-cms==5.0.0

  ③ aliyuncli configure(配置默认信息):   

Aliyun Access Key ID [None]: 你申请的Access Key Id
Aliyun Access Key Secret [None]: 你申请的Access Key Id 对应的 Access Key Secret
Default Region Id [None]: cn-hangzhou (区域,就填阿里云默认给的就好)
Default output format [None]: json (默认输出格式,按自己的需求来,我选的是json)

  ④ 跑完上面的步骤可能已经有下面两个依赖的,不过跑跑也无妨:

    pip install aliyun-python-sdk-core

    pip install aliyun-python-sdk-cms

  ⑤ pip install top

5、贴一下接口代码,其实和给的demo几乎一样

import sysfrom ali_sms.aliyunsdkdysmsapi.request.v20170525 import SendSmsRequest
from ali_sms.aliyunsdkdysmsapi.request.v20170525 import QuerySendDetailsRequest
from aliyunsdkcore.client import AcsClientfrom aliyunsdkcore.profile import region_providerfrom aliyunsdkcore.http import method_type as MT
from aliyunsdkcore.http import format_type as FT """
短信业务接口 吾延 2018-07-13
"""# 设置AccessKeyId和AccessKeySecret
acs_client = AcsClient('你申请的access key id', '你申请的access key id 对应的secret','cn-hangzhou')
region_provider.add_endpoint('Dysmsapi', 'cn-hangzhou', 'dysmsapi.aliyuncs.com') def send_sms(business_id, phone_numbers, sign_name, template_code, template_param=None):
""""
发送短信
请求参数:{
business_id: 阿里云流水号,可用于查询
phone_numbers: 要发送的电话号码列表,多个或一个
sign_name: 短信签名名称
template_code: 短信模板编码
template_param: 模板参数(验证码 或 其他在阿里云申请时设置的短信模板参数)
}
返回:{
{
Message: 信息,
RequestId: 请求id,
Code: 短信发送状态回执码(查询链接:https://help.aliyun.com/document_detail/55323.html?spm=a2c4g.11174283.4.9.fkf6vH )
}
"""
try:
reload(sys)
sys.setdefaultencoding('utf8')
except Exception as err:
log.exception(err)
return False
sms_request = SendSmsRequest.SendSmsRequest()
sms_request.set_TemplateCode(template_code)
if template_param is not None:
sms_request.set_TemplateParam(template_param)
sms_request.set_OutId(business_id)
sms_request.set_SignName(sign_name)
sms_request.set_PhoneNumbers(phone_numbers)
sms_response = acs_client.do_action_with_exception(sms_request)
# print sms_response
return sms_response def query_send_detail(biz_id, phone_number, page_size, current_page, send_date):
""""
短信详情查询
请求参数{
biz_id: 流水号
phone_number: 手机号码
page_size: 每页大小
current_page: 当前页
send_date : 发送日期(30天内的记录查询)
}
返回参数{
TotalCount
Message
RequestId
SmsSendDetailDTOs
Code
}
"""
try:
reload(sys)
sys.setdefaultencoding('utf8')
except Exception as err:
log.exception(err)
return False
query_request = QuerySendDetailsRequest.QuerySendDetailsRequest()
query_request.set_PhoneNumber(phone_number)
query_request.set_BizId(biz_id)
query_request.set_SendDate(send_date)
query_request.set_CurrentPage(current_page)
query_request.set_PageSize(page_size)
# 数据提交方式
# queryRequest.set_method(MT.POST)
# 数据提交格式
# queryRequest.set_accept_format(FT.JSON)
# 返回json数据
query_response = acs_client.do_action_with_exception(query_request)
# TODO 业务处理
# print 'query_response'+query_response
return query_response

6、调用接口,也直接贴代码了(我的项目返回的都是json数据,看个人开发需要)
  

  

 # 调用生成验证码方法
business_id = uuid.uuid1() # 产生阿里的流水号,必填,用于短信详情的查询
verify = str_utils.random_number_verify(5) 生成随机验证码函数
params = "{\"code\": " + verify + "}"
res = eval(sms_utils.send_sms(business_id, mobile_no, '你申请的签名','你申请的模板', params))
if res['Code'] == 'OK':
create_time = time.time()
info = {'verify': verify, 'phone': mobile_no, 'create_time': create_time}
set_session(request=request, s_key=sms_verify, s_info=info) # set_session是自己写的一个方法,根据项目需求保存到session中,当然建个表来保存就更好了
return Response({'code': constants.RESULT_SUCCESS, 'message': u'生成成功,请查收!'})
elif res['Code'] == 'isv.BUSINESS_LIMIT_CONTROL':
return Response({'code': constants.RESULT_FAIL, 'message': u'次数受限!'})
else:
return Response({'code': constants.RESULT_FAIL, 'message': u'该号码受限,换个号码试试!'})

至此,配置一个阿里大于短信获取验证码的接口就全部完成了

Python2-Django配置阿里大于的短信验证码接口的更多相关文章

  1. php 阿里云短信服务及阿里大鱼实现短信验证码的发送

    一:使用阿里云的短信服务 ① 申请短信签名 ②申请短信模板 ③创建Access Key,获取AccessKeyId 与 AccessKeySecret.(为了安全起见,这里建议使用子用户的Access ...

  2. PHP阿里大于发短信教程

    PHP阿里大于发短信教程 1 先去控制台 https://www.alidayu.com/center/user/account?spm=a3142.7791109.1999204004.5.ZtBQ ...

  3. php短信验证码接口接入流程及代码示例

    对于绝大部分企业来说,所使用的短信验证码接口都是第三方短信服务商所提供,目前市场上短信服务商有很多,在此向大家推荐一家动力思维乐信,运营13年,值得信赖! 就拿动力思维乐信短信验证码接口为例,详细介绍 ...

  4. 通过sails和阿里大于实现短信验证

    通过sails与阿里大于来实现注册短信验证码的发送,逻辑图如下 1.用户在客户端发送手机号给服务器,服务器接收到手机号,生成对应时间戳,随机四位数验证码 2.服务器将电话号码和验证码告诉阿里大于服务器 ...

  5. Node 接入阿里云实现短信验证码

    本文介绍在案例云开通短信服务的流程以及在Node项目中使用的方法. 一.开通阿里云短信服务 登陆阿里云,然后进入 https://dysms.console.aliyun.com/dysms.htm  ...

  6. 潭州课堂25班:Ph201805201 django 项目 第十三课 短信验证码后台的实现 (课堂笔记)

    d 发送短信验证码之前,后台要得到三个参数 : 1,用户手机吗,, 2,用户输入的图片验证文本, 3,前台的 uuid , 在60秒内是否有发送短信的记录 只有用户输入的手机号,文本信息与 uudi ...

  7. NetCore 阿里大于发送短信

    使用阿里大于API发送短信,但阿里没有提供NetCore 的API,自己看了下源码重写了发短信这个部分 public class MessageSender { private readonly st ...

  8. Delphi - Delphi7 调用阿里大于实现短信消息验证

    阿里大于是阿里通信旗下产品,融合了三大运营商的通信能力,提供包括短信.语音.流量直充.私密专线.店铺手机号等个性化服务.每条四分五,价钱还算公道,经老农测试,响应速度非常快,基本上是秒到.官方文档提供 ...

  9. 阿里大于发送短信(java)

    一.短信签名设置 1.短信签名是什么? 签名是在短信内容开始或者末尾跟的品牌或者应用名称,设置签名有一下几个好处:增加品牌的曝光度,增强用户的记忆让用户能更清楚的知道正在使用的应用. 2.签名可不可以 ...

随机推荐

  1. threding.local

    作用:为每一个线程开辟一个独立的内存空间 示例 from threading import Thread, local import time obj = local() def test(i): o ...

  2. golang 服务大量 CLOSE_WAIT 故障排查

    事故经过 排查 总结 事故经过 [2019-12-27 18:00 周五] 业务方突然找来说调用我们程序大量提示"触发限流",但是我们没有收到任何监控报警.紧急查看了下 Servi ...

  3. Python脚本通过ftp协议移植文件

    需求 项目需要定时移植多个客户服务器的文件到公司服务器上,确保文件定时同步和生成监控日志 机制原理 1.客户和公司服务器同时安装vpn,绕过复杂的网关,linux下使用的OpenVPN 2.服务器定时 ...

  4. AI初探1

    一个典型的机器学习的过程,首先给出一个输入数据,我们的算法会通过一系列的过程得到一个估计的函数,这个函数有能力对没有见过的新数据给出一个新的估计,也被称为构建一个模型.就如同上面的线性回归函数. 在机 ...

  5. [Ubuntu]解决"系统的网络服务与此版本的网络管理器不兼容"提示

    先贴方法: sudo -s ' 获取root权限 apt-get install network-manager ' 重装网络管理器 如果系统提示有升级包可用则安装即可. 开机后,右上角没有网络图标. ...

  6. Docker三剑客之swarm

    简介 swarm是一种docker集群管理工具,跟三剑客前两者不同的是:compose是一种统一编排的工具,machine是一种远程控制工具,swarm则是将多个docker主机映射成一个docker ...

  7. docker学习笔记1认识docker

    简介 Docker是一个开源的应用容器,开发者可以打包其应用以及依赖到一个可移植的容器当中.当然容器与容器之间不存在任何接口,完全独立.最大程度的解决了我的软件只能不能在你的电脑上运行的尴尬局面.开发 ...

  8. svg图片在vue脚手架vue-cli怎么使用

    第一种 使用vue2-svg-icon npm install vue2-svg-icon --save-dev` 下载之后在mian.js引入 名字可以随便起,这里我起icon 引入svg资源 这时 ...

  9. 我学React Native开发的经历(一) 第一周学习,环境搭建及demo1,一个导航跳转页面

    大家好,这是跋涉者,wadereye,说来惭愧, 我是从2017年8月25日左右开始学习React Native的,因为时间不多, 在学习的过程中,感觉资料非常零散,要趟过的坑巨多,遇到的问题也非常多 ...

  10. 【译】Serilog 配置基础知识

    Serilog 使用简单的C# API来配置日志记录.当外部配置需要时,可以使用Serilog.Settings.AppSettings包(.NET 框架)或Serilog.Settings.Conf ...