06サードパーティのSMSパッケージ

  Ronglianクラウド通信メッセージングプラットフォーム

  登録されたアカウント

  アプリケーションを作成するためのマネジメントアプリケーション管理モジュール>> >> >>編集アプリケーション>> SMSの確認コードをチェックします

  インストール要求モジュール

リクエストをインストールするPIP

  リクエストパラメータ

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

  要求ヘッダー

パラメータ タイプ 必要とされます パラメータ説明
accountSid 必須 アカウントID
SigParameter 必須 署名[アカウントトークントークン+ ID +時間( 'YMDHMS')MD5値]

  リクエストヘッダフィールド

パラメータ タイプ 必要とされます パラメータ説明
受け入れます 必須 クライアントは、応答データ形式を受け取ります
コンテンツタイプ 必須 タイプ
コンテンツの長さ 必須  
認定 必須 パラメータをキャリー

  Requestパケットボディ

パラメータ タイプ 必要とされます パラメータ説明
必須 "電話1、電話番号2、電話番号3"
APPID 必須 アプリケーションID
れるtemplateId 必須  
日付 オプショナル 何のテンプレート変数が存在しない場合は、コンテンツデータ層ノードは、このパラメータが渡されていません
データ オプショナル テンプレート{数}を置き換えるコンテンツデータ

  顧客の要求は、SMSの成功を送信するだけという応答では、このステップに対応して、チャンネルが正常にSMSメッセージを送信されたことを示すものではありません。ステータスコード

パラメータ タイプ 必要とされます パラメータ説明
statusCode 必須 000000レンジング要求ステータスコード、(成功しました)
smsMessageSid 必須 SMS一意識別子
dateCreated 必須 作成されたSMS

ブロック

  shortMsg.py

 1 import hashlib, base64, requests, json
 2 from datetime import datetime
 3 
 4 class YunTongXin:
 5   __base_url = 'https://app.cloopen.com:8883/2013-12-26/Accounts/{}/SMS/TemplateSMS?sig={}'
 6 
 7   # 初始化代码
 8   def __init__(self, accid='', appid='', appkey='', temid='', temp_motice='45分钟'):
 9       self.accid = accid
10       self.appid = appid
11       self.appkey = appkey
12       self.temid = temid
13       self.temp_motice = temp_motice
14 
15   # md5编码
16   def __md5(self, raw):
17       md5 = hashlib.md5()
18       md5.update(raw.encode('utf-8'))
19       return md5.hexdigest()
20 
21   # 获取格式化时间
22   def __get_format_time(self):
23       return str(datetime.now().strftime('%Y%m%d%H%M%S'))
24 
25   # base64编码
26   def __get_base64_code(self, raw):
27       st = raw.encode()
28       return base64.b64encode(st).decode('utf-8')
29 
30   # 请求包头
31   def __request_url(self, stamp):
32       sig = self.__md5(self.accid + self.appkey + stamp).upper()  # 生成签名
33       return self.__base_url.format(self.accid, sig)  # https 请求地址
34 
35   # 请求包头字段
36   def __request_header(self, stamp):
37       authorization = self.__get_base64_code(self.accid + ':' + stamp)
38       return {
39           'Authorization': authorization, 'Accept': 'application/json;',
40           'Content-Type': 'application/json;charset=utf-8;'}
41 
42   # 请求包体
43   def __request_body(self, phone, code):
44       return {
45           "to": ','.join(phone),
46           "appId": self.appid,
47           "templateId": self.temid,
48           "datas": [code, self.temp_motice]
49       }
50 
51   # 返回结构化结果
52   def __ajaxReturn(self, code=92000, msg='', data=[]):
53       dict = {"code": code, "msg": msg, "data": data}
54       return json.dumps(dict)
55 
56   # 发送短信
57   def send(self, phone=[], code=''):
58       stamp = self.__get_format_time()  # 获取当前格式化时间
59       url = self.__request_url(stamp)  # 请求包地址
60       headers = self.__request_header(stamp)  # 请求包头字段
61       data = self.__request_body(phone, code)
62       obj = requests.post(url, headers=headers, json=data)
63       dict = json.loads(obj.text)
64       if dict.get('statusCode') == '000000':
65           return self.__ajaxReturn(msg="发送成功", data={})
66       else:
67           return self.__ajaxReturn(code=92001, msg='发送失败', data={"code": dict.get('statusCode')})

  调用

 1 from shortMsg import YunTongXin
 2 accid = '' # 账号id
 3 appid = '' # 应用id
 4 appkey = 'ae007ba417e24833acc709d8e2acdb65' # key
 5 temid = '1' # 默认模版
 6 temp_motice = '30分钟' # 参数
 7 phone = ['电话1','电话2'] # 电话号码 
 8 code = '' # 短信验证码
 9 # 实例化
10 yun = YunTongXin(accid=accid,appid=appid,appkey=appkey,temid=temid,temp_motice=temp_motice)
11 # 发送短信
12 yun.send(phone, code)

 

おすすめ

転載: www.cnblogs.com/a2534786642/p/11040835.html
おすすめ