python荣联云通讯短信平台

荣联云通讯短信平台

  pip install requests
  • 配置

    • POST : https://app.cloopen.com:8883/2013-12-26/Accounts/{accountSid}/SMS/TemplateSMS?sig={SigParameter}

    • 请求包头

      参数类型是否必选参数说明
      accountSidString必选账号ID
      SigParameterString必选签名

      SigParameter: 账号ID+令牌Token+时间(‘YmdHMS’) 的MD5值

    • 请求包头字段

      参数类型是否必选参数说明
      AcceptString必选客户端响应接收数据格式
      Content-TypeString必选类型
      Content-LengthString必选
      AuthorizationString必选携带参数
    • 请求包体

      参数类型是否必选参数说明
      toString必选“电话1,电话2,电话3”
      appIdString必选应用ID
      templateIdString必选
      datasString可选内容数据外层节点,模板如果没有变量,此参数可不传
      dataString可选内容数据,用于替换模板中{序号}
    • 响应

      此步响应只表明客户的短信请求发送成功,不表明短信通道已经发送短信成功。(状态码

      参数类型是否必选参数说明
      statusCodeString必选请求状态码,取值000000(成功)
      smsMessageSidString必选短信唯一标识符
      dateCreatedString必选短信的创建时间
  • 代码块

  import hashlib,base64,requests,json
  from datetime import datetime
  class YunTongXin:
      __base_url = 'https://app.cloopen.com:8883/2013-12-26/Accounts/{}/SMS/TemplateSMS?sig={}'
      # 初始化代码
      def __init__(self, accid='', appid='', appkey='', temid='',temp_motice='45分钟'):
          self.accid = accid
          self.appid = appid
          self.appkey = appkey
          self.temid = temid
          self.temp_motice = temp_motice
  
      # md5编码
      def __md5(self, raw):
          md5 = hashlib.md5()
          md5.update(raw.encode('utf-8'))
          return md5.hexdigest()
  
      # 获取格式化时间
      def __get_format_time(self):
          return str(datetime.now().strftime('%Y%m%d%H%M%S'))
  
      # base64编码
      def __get_base64_code(self, raw):
          st = raw.encode()
          return base64.b64encode(st).decode('utf-8')
  
      # 请求包头
      def __request_url(self, stamp):
          sig = self.__md5(self.accid + self.appkey + stamp).upper()  # 生成签名
          return self.__base_url.format(self.accid, sig)  # https 请求地址
  
      # 请求包头字段
      def __request_header(self, stamp):
          authorization = self.__get_base64_code(self.accid + ':' + stamp)
          return {
              'Authorization': authorization, 'Accept': 'application/json;',
              'Content-Type': 'application/json;charset=utf-8;'}
  
      # 请求包体
      def __request_body(self, phone, code):
          return {
              "to": ','.join(phone),
              "appId": self.appid,
              "templateId": self.temid,
              "datas": [code, self.temp_motice]
          }
  
      # 返回结构化结果
      def __ajaxReturn(self, code=92000, msg='', data=[]):
          dict = {"code": code, "msg": msg, "data": data}
          return json.dumps(dict)
  	
      # 发送短信
      def send(self, phone=[], code=''):
          stamp = self.__get_format_time()  # 获取当前格式化时间
          url = self.__request_url(stamp)  # 请求包地址
          headers = self.__request_header(stamp)  # 请求包头字段
          data = self.__request_body(phone, code)
          obj = requests.post(url, headers=headers, json=data)
          dict = json.loads(obj.text)
          if dict.get('statusCode') == '000000':
              return self.__ajaxReturn(msg="发送成功", data={})
          else:
              return self.__ajaxReturn(code=92001, msg='发送失败', data={"code": dict.get('statusCode')})       


# 调用
accid = '' # 账号id
appid = '' # 应用id
appkey = '' # key
temid = '1' # 默认模版
temp_motice = '30分钟' # 参数
phone = ['电话1','电话2'] # 电话号码 
code = '' # 短信验证码
# 实例化
yun = YunTongXin(accid=accid,appid=appid,appkey=appkey,temid=temid,temp_motice=temp_motice)
# 发送短信
yun.send(phone, code)   
        
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值