DEMO: SMS/MultiSend - 短信一對(duì)多發(fā)送
示例代碼
非加密代碼示例
import requests
import json
appid = 'appid' # SUBMAIL控制臺(tái)創(chuàng)建appid
appkey = 'appkey' # SUBMAIL控制臺(tái)獲取appkey
# 模板不帶變量
# content = '【XXX公司】這是一個(gè)測(cè)試的模板' #短信內(nèi)容 【xxx公司】為短信簽名,需要更換為公司或者產(chǎn)品名稱(chēng)
# multi = [{'to': '186xxxxxxxx'}, {'to': '153xxxxxxxx'}]
# 模板帶有變量
content = '【XXX公司】這是一個(gè)來(lái)自 @var(name)的測(cè)試模板 時(shí)間@var(time)' #短信內(nèi)容 【xxx公司】為短信簽名,需要更換為公司或者產(chǎn)品名稱(chēng)
multi = [{'to': '186xxxxxxxx', 'vars': {'name': 'test1', 'time': '2021-1-1'}},
{'to': '153xxxxxxxx', 'vars': {'name': 'test2', 'time': '2021-1-1'}}]
url = 'https://api-v4.mysubmail.com/sms/multisend.json'
header = {"Content-type": "application/json"}
param = {
'appid': appid,
'signature': appkey,
'content': content,
'multi': json.dumps(multi)
}
res = requests.post(url, data=json.dumps(param), headers=header)
print(res.json())
加密代碼示例
import hashlib
import requests
import json
appid = 'appid' # SUBMAIL控制臺(tái)創(chuàng)建appid
appkey = 'appkey' # SUBMAIL控制臺(tái)獲取appkey
sign_version = '2'
sign_type = 'md5'
# 模板不帶變量
# content = '【xxx公司】這是一個(gè)測(cè)試的模板' #短信內(nèi)容 【xxx公司】為短信簽名,需要更換為公司或者產(chǎn)品名稱(chēng)
# multi = [{'to': '186xxxxxxxx'}, {'to': '153xxxxxxxx'}]
# 模板帶有變量
content = '【xxx公司】這是一個(gè)來(lái)自 @var(name)的測(cè)試模板 時(shí)間@var(time)' #短信內(nèi)容 【xxx公司】為短信簽名,需要更換為公司或者產(chǎn)品名稱(chēng)
multi = [{'to': '186xxxxxxxx', 'vars': {'name': 'test1', 'time': '2020-1-1'}},
{'to': '153xxxxxxxx', 'vars': {'name': 'test2', 'time': '2020-1-1'}}]
url = 'https://api-v4.mysubmail.com/sms/multisend.json'
header = {"Content-type": "application/json"}
# 獲取時(shí)間戳
def gettimestamp():
res = requests.get('https://api-v4.mysubmail.com/service/timestamp').json()
timestamp = str(res['timestamp'])
return timestamp
# 參數(shù)md5計(jì)算
def getmd5(param):
signStr = ''
for key in sorted(param):
signStr += key + '=' + param[key] + '&'
signStr = signStr[:-1]
signStr = appid + appkey + signStr + appid + appkey
print(signStr)
m = hashlib.md5()
b = signStr.encode(encoding='utf-8')
m.update(b)
return m.hexdigest()
param = {
'appid': appid,
'sign_version': sign_version,
'sign_type': sign_type,
'timestamp': gettimestamp()
}
param["signature"] = getmd5(param)
param["multi"] = json.dumps(multi)
param["content"] = content
res = requests.post(url, data=json.dumps(param), headers=header)
print(res.json())