from aliyunsdkcore.client import AcsClient from aliyunsdkcore.request import CommonRequest from django.conf import settings import json 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')) if res_dict['result'] == 0: return True, 'OK', res_dict['BizId'] else: return False, res_dict['Message'], res_dict['BizId']