import logging from django.conf import settings from ucloud.core import exc from ucloud.client import Client from .base import BaseSmsBackend logger = logging.getLogger(__name__) class SmsBackend(BaseSmsBackend): def __init__(self, *args, **kwargs): self.client = Client({ 'region': 'cn-bj2', 'public_key': getattr(settings, 'UCLOUD_SMS_PUBLICK_KEY', None), 'private_key': getattr(settings, 'UCLOUD_SMS_PRIVATE_KEY', None), 'project_id': getattr(settings, 'UCLOUD_SMS_PROJECT_ID', None) }) self.signature = getattr(settings, 'UCLOUD_SMS_SIGNATURE', None) super(SmsBackend, self).__init__(*args, **kwargs) def send_message(self, phone, params, template_id='UTA200305C7C577'): # template: UTA200305C7C577 = '验证码:{1},10分钟内有效,为了保证您的账户安全,请勿向任何人提供此验证码。' try: resp = self.client.usms().send_usms_message({ 'PhoneNumbers': [phone], 'SigContent': self.signature, 'TemplateId': template_id, 'TemplateParams': params }) except exc.UCloudException as e: logger.error(e) else: print(resp)