43 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
from aliyunsdkcore.client import AcsClient
 | 
						|
from aliyunsdkcore.request import CommonRequest
 | 
						|
from django.conf import settings
 | 
						|
import json
 | 
						|
import logging
 | 
						|
 | 
						|
# 实例化myLogger
 | 
						|
myLogger = logging.getLogger('log')
 | 
						|
 | 
						|
 | 
						|
def send_sms(phone: str, template_code: str, template_param: dict):
 | 
						|
    client = AcsClient(settings.XNIU_SMS_KEY, settings.XNIU_SMS_SECRET, 'default')
 | 
						|
    request = CommonRequest()
 | 
						|
    # 固定json
 | 
						|
    request.set_accept_format('json')
 | 
						|
    # 固定地址
 | 
						|
    request.set_domain('sms11.hzgxr.com:40081')
 | 
						|
    # 固定POST
 | 
						|
    request.set_method('POST')
 | 
						|
    # 固定HTTP
 | 
						|
    request.set_protocol_type('http')  # https | http
 | 
						|
    # 固定版本号
 | 
						|
    request.set_version('2017-05-25')
 | 
						|
    # 固定操作名
 | 
						|
    request.set_action_name('SendSms')
 | 
						|
    # 手机号码
 | 
						|
    request.add_query_param('PhoneNumbers', phone)
 | 
						|
    # 签名名称
 | 
						|
    request.add_query_param('SignName', "国家建材网")
 | 
						|
    # 模板CODE
 | 
						|
    request.add_query_param('TemplateCode', template_code)
 | 
						|
    # 如果有模板参数 填写模板参数 如果无 无须填写
 | 
						|
    request.add_query_param('TemplateParam', json.dumps(template_param))
 | 
						|
    res = client.do_action(request)
 | 
						|
    res_dict = json.loads(str(res, encoding='utf-8'))
 | 
						|
    # print(phone, template_code, template_param, res_dict)
 | 
						|
    if res_dict['result'] == 0:
 | 
						|
 | 
						|
        return True, res_dict
 | 
						|
    else:
 | 
						|
        myLogger.error("短信发送失败:{}-{}".format(phone, str(res_dict)))
 | 
						|
        return False, res_dict
 |