from aliyunsdkcore.client import AcsClient from aliyunsdkcore.request import CommonRequest import hashlib from time import time import logging import requests class AlidayuAPI(object): APP_KEY_FIELD = 'ALIDAYU_APP_KEY' APP_SECRET_FIELD = 'ALIDAYU_APP_SECRET' SMS_SIGN_NAME_FIELD = 'ALIDAYU_SIGN_NAME' SMS_TEMPLATE_CODE_FIELD = 'ALIDAYU_TEMPLATE_CODE' def init_app(self, app): config = app.config try: self.key = config[self.APP_KEY_FIELD] self.secret = config[self.APP_SECRET_FIELD] self.sign_name = config[self.SMS_SIGN_NAME_FIELD] self.templatecode = config[self.SMS_TEMPLATE_CODE_FIELD] except Exception as e: logging.error(e.args) raise ValueError('请填写正确的阿里大鱼配置!') def send_sms(self,telephone,code): client = AcsClient(self.key, self.secret, 'cn-hangzhou') request = CommonRequest() request.set_accept_format('json') request.set_domain('dysmsapi.aliyuncs.com') request.set_method('POST') request.set_protocol_type('https') # https | http request.set_version('2017-05-25') request.set_action_name('SendSms') request.add_query_param('RegionId', "cn-hangzhou") request.add_query_param('PhoneNumbers', telephone) request.add_query_param('SignName', self.sign_name) request.add_query_param('TemplateCode', self.templatecode) request.add_query_param('TemplateParam', {'code':code}) response = client.do_action_with_exception(request) # python2: print(response) return (str(response, encoding = 'utf-8'))
@bp.route("/sms_captcha/") def sms_captcha(): result = alidayu.send_sms("13845231151",code="success_you_are_good") print(result) if result: return "发送成功!" else: return "发送失败!"
发送成功