Esempio n. 1
0
def send_message(tel, code):
    from aliyunsdkcore.client import AcsClient
    from aliyunsdkcore.request import CommonRequest
    client = AcsClient('<>', '<>', '<>')

    request = CommonRequest()
    request.set_accept_format('json')
    request.set_domain('dysmsapi.aliyuncs.com')
    request.set_method('POST')
    request.set_protocol_type('https')
    request.set_version('2017-05-25')
    request.set_action_name('SendSms')

    request.add_query_param('RegionId', "cn-hangzhou")
    request.add_query_param('PhoneNumbers', str(tel))
    request.add_query_param('SignName', "狂野男孩聊天室")
    request.add_query_param('TemplateCode', "SMS_186947418")
    request.add_query_param('TemplateParam', str({'code': code}))

    response = client.do_action_with_exception(request)
    print(str(response, encoding='utf-8'))
    def send_order_sms(self, phone, name):
        """发送单个验证码"""

        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('TemplateCode',
                                AliYunSMS.SMS_TEMPLATE_ID_ORDER)
        request.add_query_param('SignName', AliYunSMS.SMS_TEMPLATE_NAME_ORDER)
        request.add_query_param('PhoneNumbers', phone)
        request.add_query_param('TemplateParam', json.dumps({"name": name}))
        request.add_body_params('OutId', uuid.uuid1())
        response = self.client.do_action(request)
        # b'{"Message":"OK","RequestId":"97FDD87D-5B50-4BFA-BF9C-CA24768A5FE0","BizId":"419112860178747080^0","Code":"OK"}'

        return json.loads(response.decode('utf-8'))
Esempio n. 3
0
def send_sms_code(phone, code):
    client = AcsClient('LTAIRiQGIywYBeYN', 'ZOHiNBYPr72dCFog2fLU5Pu9RvVAIf',
                       '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', phone)
    request.add_query_param('SignName', "Disen工作室")
    request.add_query_param('TemplateCode', "SMS_128646125")
    request.add_query_param('TemplateParam', '{"code":"%s"}' % code)

    response = client.do_action_with_exception(request)
    print(response)
    return response
Esempio n. 4
0
def get_token_remote():
    logger.info('get_token_remote start')
    # Create AcsClient
    client = AcsClient(
        config.ACCESS_KEY,
        config.ACCESS_SECRET,
        "cn-shanghai"
    );
    # Create request and set Params
    request = CommonRequest()
    request.set_method('POST')
    request.set_domain('nls-meta.cn-shanghai.aliyuncs.com')
    request.set_version('2019-02-28')
    request.set_action_name('CreateToken')
    response = client.do_action_with_exception(request)

    # bytes to json
    res_str = str(response, 'utf-8')
    res = json.loads(res_str)
    logger.info(f'get_token_remote finish, response: {res}')
    return res['Token']
Esempio n. 5
0
def send_sms(code):
    from aliyunsdkcore.client import AcsClient
    from aliyunsdkcore.request import CommonRequest
    client = AcsClient('', '', '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', "13512492836")
    request.add_query_param('SignName', "便携工具箱")
    request.add_query_param('TemplateCode', "SMS_166867869")
    request.add_query_param('TemplateParam', "{\"code\": \"%s\"}" % str(code))

    response = client.do_action_with_exception(request)
    print(str(response, encoding='utf-8'))
Esempio n. 6
0
File: phone.py Progetto: lwj-wq/Work
def send_sms(phone, phone_code):
    client = AcsClient('LTAI4FeJ2EDrkGTjoS9LjkTW',
                       'GVAjUxKQulG3qlYdiWxTnx26cXKBs6', 'cn-hangzhou')

    code = "{'code':%s}" % phone_code
    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', phone)
    request.add_query_param('SignName', "涛声依旧")
    request.add_query_param('TemplateCode', "SMS_183145166")
    request.add_query_param('TemplateParam', code)

    response = client.do_action_with_exception(request)
    return str(response, encoding='utf-8')
Esempio n. 7
0
    def sendSms(phone, code):
        client = AcsClient(SmsCodeConfig.access_key_id,
                           SmsCodeConfig.access_key_secret, 'default')

        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('PhoneNumbers', str(phone))
        request.add_query_param('SignName', SmsCodeConfig.sign_name)
        request.add_query_param('TemplateCode', SmsCodeConfig.template_code)
        request.add_query_param('TemplateParam', '{"code":"%s"}' % (str(code)))

        response = client.do_action(request)
        # python2:  print(response)
        print(str(response))
        return response
Esempio n. 8
0
    def send_code(self):
        client = AcsClient("LTAI4FcXR2ChjYjD57x9Cyn6",
                           "hHL9Xn263xnNZ3uQFrV6Xsvi9Xe40x", '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', str(self.phone))
        request.add_query_param('SignName', "安顺之恋")
        request.add_query_param('TemplateCode', "SMS_185235175")
        # request.add_query_param('TemplateParam', "{\"code\":\"5200\"}")
        request.add_query_param('TemplateParam', self.code_dict)

        response = client.do_action_with_exception(request)
        # python2:  print(response)
        return str(response, encoding='utf-8')
Esempio n. 9
0
    def send_sms(phone_number, content, template_code='SMS_143865884'):
        client = AcsClient(SmsAccessKeyId, SmsAccessKeySecret, SmsEndPoint)

        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', phone_number)
        request.add_query_param('SignName', "港盛国际")
        request.add_query_param('TemplateCode', template_code)
        request.add_query_param('TemplateParam', {'code': content})

        response = client.do_action_with_exception(request)
        response = str(response, encoding='utf-8')

        return response
Esempio n. 10
0
def _alisdk_send_sms(phone_numbers, signature_name, template_code,
                     template_param):
    client = AcsClient(ALI_SMS_ACCESS_KEY_ID, ALI_SMS_ACCESS_KEY_SECRET,
                       'default')

    request = CommonRequest()
    request.set_accept_format('json')
    request.set_domain('dysmsapi.aliyuncs.com')
    request.set_method('POST')
    request.set_protocol_type('https')
    request.set_version('2017-05-25')
    request.set_action_name('SendSms')
    request.add_query_param('PhoneNumbers', phone_numbers)
    request.add_query_param('SignName', signature_name)
    request.add_query_param('TemplateCode', template_code)
    if not isinstance(template_param, str):
        template_param = json.dumps(template_param)
    request.add_query_param('TemplateParam', template_param)
    response = client.do_action_with_exception(request)

    return json.loads(response)
Esempio n. 11
0
def send_sms(phone,code):
    client = AcsClient('LTAI4FdF3f5MWdnTuiQzmaCS', 'b0RlRSazSiCu5g4OrlUO25HCHtVqjS', 'cn-hangzhou')
    code = "{'code':'%s'}" % (code)
    print(code)
    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',phone)
    request.add_query_param('SignName', "海马生鲜")
    request.add_query_param('TemplateCode', "SMS_173761085")
    request.add_query_param('TemplateParam',code)

    response = client.do_action(request)
    # python2:  print(response)
    print(str(response, encoding='utf-8'))
    return str(response, encoding='utf-8')
Esempio n. 12
0
def get_domain_records(domain_name, TypeKeyWord=None, RRKeyWord=None):
    request = CommonRequest()
    request.set_domain('alidns.aliyuncs.com')
    request.set_version('2015-01-09')
    request.set_action_name('DescribeDomainRecords')
    request.add_query_param('DomainName', domain_name)
    if TypeKeyWord:
        request.add_query_param('TypeKeyWord', TypeKeyWord)
    if RRKeyWord:
        request.add_query_param('RRKeyWord', RRKeyWord)
    try:
        response = client.do_action_with_exception(request)
        results = json.loads(response.decode())
        return results
    except:
        print('Something went wrong when trying to get domain records')
        appendline_error(
            'Something went wrong when trying to get domain records from \'get_domain_records(\''
            + domain_name + '\',\'' + TypeKeyWord + '\',\'' + RRKeyWord +
            '\')\'')
        return None
Esempio n. 13
0
def send_sms(phone, templateParam, **kwargs):

    client = AcsClient(kwargs['ACCESS_KEY_ID'], kwargs['ACCESS_KEY_SECRET'],
                       'default')

    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('PhoneNumbers', phone)
    request.add_query_param('SignName', kwargs['SignName'])
    request.add_query_param('TemplateCode', kwargs['TemplateCode'])
    request.add_query_param('TemplateParam', templateParam)

    response = client.do_action_with_exception(request)
    # python2:  print(response)
    print(str(response, encoding='utf-8'))
Esempio n. 14
0
def call_device(uid, action, params=None):
    if params is None:
        params = {}

    params['action'] = action

    try:
        client = AcsClient(AliyunSettings.access_key_id,
                           AliyunSettings.access_key_secret,
                           AliyunSettings.iot_area)

        request = CommonRequest()
        request.set_accept_format('json')
        request.set_method('POST')
        request.set_domain('iot.cn-shanghai.aliyuncs.com')
        request.set_protocol_type('https')
        request.set_version('2018-01-20')
        request.set_action_name('RRpc')

        request.add_query_param('RegionId', AliyunSettings.iot_area)
        request.add_query_param(
            'DeviceName', '{}{}'.format(AliyunSettings.iot_device_pre, uid))
        request.add_query_param('Timeout', '6000')
        request.add_query_param(
            'RequestBase64Byte',
            base64.b64encode(bytes(json.dumps(params), encoding='utf8')))
        request.add_query_param('ProductKey', AliyunSettings.iot_product_id)
        request.add_query_param('Topic', '/request')

        result = json.loads(client.do_action_with_exception(request))
        print('{}{}'.format(AliyunSettings.iot_device_pre, uid))
        print(result)

        payload = base64.b64decode(result['PayloadBase64Byte'])
        response = json.loads(payload)
        print(response)

        return response
    except (ServerException, KeyError):
        return None
Esempio n. 15
0
    def send_code_by_aliyun(self, service, user_phone):
        """
        利用阿里云短息平台进行发送验证码; 注意只能传递一个传递及验证码
        :param service:
        :param user_phone:
        :return:
        """
        client = AcsClient(service.app_id, service.app_key, 'default')
        com_request = CommonRequest()
        com_request.set_accept_format('json')
        com_request.set_domain("dysmsapi.aliyuncs.com")
        com_request.set_method('POST')
        com_request.set_protocol_type('https')
        com_request.set_version('2017-05-25')
        com_request.set_action_name('SendSms')
        template_id, sms_sign, timeout = self._get_config_template(service, 'login')
        if not template_id or not sms_sign or not timeout:
            return {"state": False, 'msg': "在(短信服务配置)中没有找到可用于(登录时发送验证码)的模板,请联系管理员设置!"}
        com_request.add_query_param('PhoneNumbers', user_phone)
        com_request.add_query_param('SignName', sms_sign)
        com_request.add_query_param('TemplateCode', template_id)

        param_data = {
            'name': 'sms_sign',
            'code': self.generate_random_numbers(service.code_length)
        }
        param_json = json.dumps(param_data)

        com_request.add_query_param('TemplateParam', param_json)
        try:
            cli_response = client.do_action_with_exception(com_request)
            cli_res = json.loads(str(cli_response, encoding='utf-8'))
            logging.info("ali-sms-result: {}".format(cli_res))
            if cli_res['Code'] == 'OK':
                record = self.create_record(user_phone, service, cli_res['RequestId'], param_data['code'], timeout)
                return {"state": True}
            else:
                return {"state": False, 'msg': "发送验证码失败!,Error:{}".format(cli_res['Message'])}
        except Exception as e:
            return {"state": False, 'msg': "阿里云发送验证码失败,Error:{}".format(str(e))}
Esempio n. 16
0
    def send(self, phone, params):
        """
        :param phone: 电话号码
        :param params: 模板参数,{'参数名':value,...}
        :return:
        """
        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', phone)
        request.add_query_param('SignName', self.signature)
        request.add_query_param('TemplateCode', self.template_code)
        request.add_query_param('TemplateParam', params)

        response = self.client.do_action_with_exception(request)
        return response
Esempio n. 17
0
    def _do_sms_service(self):
        """发送短信"""

        request_params = self._get_send_params()
        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.add_query_param('TemplateCode', self.template_id)
        if self.send_type != self.type_list[2]:
            request.set_action_name('SendSms')
            request.add_query_param('PhoneNumbers',
                                    request_params['PhoneNumbers'])
            request.add_query_param('SignName', request_params['SignName'])
            request.add_query_param('TemplateParam',
                                    request_params['TemplateParam'])
        else:
            request.set_action_name('SendBatchSms')
            request.add_query_param('PhoneNumberJson',
                                    request_params['PhoneNumberJson'])
            request.add_query_param('SignNameJson',
                                    request_params['SignNameJson'])
            request.add_query_param('TemplateParamJson',
                                    request_params['TemplateParamJson'])

        res = self.client.do_action(request)
        try:
            data = json.loads(res)
        except Exception as e:
            raise SmsException(_(u"发送失败"))

        if not data or data['Code'] != 'OK':
            log_info(
                '[AliSmsService]send_type:%s,code:%s,msg:%s,data:%s,prefix:%s'
                % (self.send_type, data['Code'], data['Message'], data,
                   self.sms_prefix))
            raise SmsException(_(u"发送失败"))
Esempio n. 18
0
def send_sms(telephone, params):
    client = AcsClient('LTAI4Fj5nqYvrdqzgcMX1ZRD',
                       'cKCQBQmkxmrkWglblt7PmnDc3ofK53', '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', "漂流图书")
    request.add_query_param('TemplateCode', "SMS_179225017")

    request.add_query_param('TemplateParam', params)

    response = client.do_action(request)
    print(str(response, encoding='utf-8'))
    return response
Esempio n. 19
0
def send(phone_numbers, template_param):
    client = AcsClient('LTAI4Fhh9ZdVFw9mhYmUrfYM',
                       'Q51YfjaJWundhBJz2ADYqpZ5jn8v4y', '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', phone_numbers)
    request.add_query_param('SignName', '小主驾到')
    request.add_query_param('TemplateCode', 'SMS_182535092')
    request.add_query_param('TemplateParam',
                            '{\"code\":\"' + template_param + '\"}')

    response = client.do_action(request)
    # python2:  print(response)
    print(f'message response \n {str(response, encoding="utf-8")}')
Esempio n. 20
0
    def sendSMS(checkcode: str, mobileNum: str):
        client = AcsClient(AliAccessKeyID, AliAccessKeySecret, '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', mobileNum.strip())
        request.add_query_param('SignName', "视频审阅平台")
        request.add_query_param('TemplateCode', "SMS_205402562")
        request.add_query_param('TemplateParam',
                                '{"code": "' + checkcode + '"}')

        response = client.do_action(request)
        if "流控" in response.decode():
            return 0, "请求频率太快"
        else:
            return 1, ''
def user_random_pwd(chinese_name, name, tel_number, pwd):
    json_para = "{'name':'%s', 'username':'******' ,'password':'******'}" % (chinese_name, name, pwd)
    # json_para = "{'name':'%s','password':'******'}" % (chinese_name, pwd)
    client = AcsClient('LTAI0kQj0a33u4I7', '5gfuk9MIsfP8JEzf8uOauN7OqVEIxj', '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', tel_number)
    request.add_query_param('SignName', "邻邻壹")
    request.add_query_param('TemplateCode', "SMS_175584661")
    request.add_query_param('TemplateParam', json_para)

    response = client.do_action_with_exception(request)
    # print(str(response, encoding='utf-8'))
    return response
Esempio n. 22
0
    def send_code(self, code_temp, mobile, code):
        client = AcsClient(self.key, self.secret, self.region)
        #key就是你的accessKeyId,secret就是你的accessSecret,'default

        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')
        # set_action_name 这个是选择你调用的接口的名称,如:SendSms,SendBatchSms等

        request.add_query_param('RegionId', self.region)
        request.add_query_param('SignName', '劲诚科技')
        request.add_query_param('TemplateCode', code_temp)
        request.add_query_param('PhoneNumbers', mobile)
        request.add_query_param('TemplateParam',
                                self.get_template_param(code=code))
        response = client.do_action_with_exception(request)
        return json.loads(response.decode('utf-8'))
Esempio n. 23
0
def send_sms(template, phone):
    client = AcsClient('LTAI4GBHPXxAh3F8AHvdXccf',
                       'gV8zWKjX3lnGVkPfKHp68FO2qdOKrj', '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', phone)
    request.add_query_param('SignName', "xiyounet2020")  # 签名
    request.add_query_param('TemplateCode', "SMS_202815770")  # 模板编号
    request.add_query_param('TemplateParam', f"{template}")  # 发送验证码内容

    response = client.do_action(request)
    print(str(response, encoding='utf-8'))
    return response
Esempio n. 24
0
    def do_action(self, queryset):
        for obj in queryset:
            alikey = AliKey.objects.get(id=3)
            client = AcsClient(alikey.ak_id, alikey.ak_secret, 'us-west-1')
            request = CommonRequest()
            request.set_accept_format('json')
            request.set_domain('ecs.aliyuncs.com')
            request.set_method('POST')
            request.set_version('2014-05-26')
            request.set_action_name('RebootInstance')

            request.add_query_param('InstanceId', obj.shiliid)
            request.add_query_param('ForceStop', 'true')
            response = client.do_action_with_exception(request)

            try:
                print("a")
                response = client.do_action_with_exception(request)
            except:
                print("false")

        return
Esempio n. 25
0
def send_code(phone_number):
    client = AcsClient('LTAIRiQGIywYBeYN', 'ZOHiNBYPr72dCFog2fLU5Pu9RvVAIf',
                       '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', phone_number)
    request.add_query_param('SignName', "Disen工作室")
    request.add_query_param('TemplateCode', "SMS_128646125")
    # 随机生成验证码
    code = ''.join(
        random.choices(['0', '1', '2', '4', '5', '6', '7', '8', '9'], k=4))
    request.add_query_param('TemplateParam', "{\"code\":\"%s\"}" % code)
    response = client.do_action(request)
    print(str(response, encoding='utf-8'))
    # 返回code给后端
    return code
Esempio n. 26
0
def send_message(phone):
    client = AcsClient(access_key_id, access_secret, 'default')

    code = randint(100000, 999999)

    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', "default")
    request.add_query_param('PhoneNumbers', '{}'.format(phone))
    request.add_query_param('SignName', "寻觅")
    request.add_query_param('TemplateCode', "SMS_172880009")
    request.add_query_param('TemplateParam', '{{"code":"{}"}}'.format(code))

    response = client.do_action(request)
    resp = conversion_resp(response, code)
    return resp
Esempio n. 27
0
def send_sms(shortMessageConfig, projectName):
    logging.info("进入发送短信")
    PhoneNumbers = shortMessageConfig.get("PhoneNumbers")
    SignName = shortMessageConfig.get("SignName")
    TemplateParams = shortMessageConfig.get("TemplateParam")
    logging.info("TemplateParams1" + str(TemplateParams))
    for templateParam in TemplateParams:
        TemplateParams[templateParam] = TemplateParams[
            templateParam] = projectName
    logging.info("TemplateParams2" + str(TemplateParams))
    TemplateCode = shortMessageConfig.get("TemplateCode")
    ACCESSKEYID = shortMessageConfig.get("ACCESSKEYID")
    ACCESSSECRET = shortMessageConfig.get("ACCESSSECRET")
    for PhoneNumber in PhoneNumbers:
        # client = AcsClient('<accessKeyId>', '<accessSecret>', 'default')
        client = AcsClient(ACCESSKEYID, ACCESSSECRET, 'default')
        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')
        # set_action_name 这个是选择你调用的接口的名称,如:SendSms,SendBatchSms等
        request.add_query_param('RegionId', "default")
        # 这个参数也是固定的
        try:
            request.add_query_param('PhoneNumbers',
                                    str(PhoneNumber).split("$")[0])  # 发给谁
        except Exception as e:
            pass
        request.add_query_param('SignName', SignName)  # 签名
        request.add_query_param('TemplateCode', TemplateCode)  # 模板编号
        request.add_query_param('TemplateParam',
                                f"{TemplateParams}")  # 发送验证码内容
        response = client.do_action_with_exception(request)
        logging.info(str(response, encoding='utf-8'))
        return str(response, encoding='utf-8')
Esempio n. 28
0
def sendmsg(phone):
    # 导入所需模块,再次之前我们都已经pip install好了的
    from aliyunsdkcore.client import AcsClient
    from aliyunsdkcore.request import CommonRequest

    # 这三个参数即 AccessKey ID, AccessKey Secret, 地区的id,关于地区id怎么获得我会贴在文章最下方
    client = AcsClient(ACCESSKEYID, ACCESSSECRET, "cn-shanghai")

    # 下面就是一些规定的配置,复制即可
    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")

    # 配置地区id  地区id即为 cn_%s % (所在的地区名,应该是可以细分到市级的,如cn_hangzhou)
    request.add_query_param("RegionId", "cn-shanghai")
    # 配置要发送的手机号码
    request.add_query_param("PhoneNumbers", str(phone))
    # 配置你所设置的信息模板code,文章下方我会贴出来在哪边可以设置信息模板
    request.add_query_param("TemplateCode", "SMS_171117099")
    # 这个TemplateParam参数是给信息模板中的变量传值的,正常使用应该是后端获取验证码然后塞到这个参数中的

    code = ''
    for i in range(6):
        code += str(random.randint(0, 9))
    print("生成的code", code)
    request.add_query_param("TemplateParam", {"code": code})
    # cache.set(phone, code, SMS_EXPIRE_TIME)

    # 这是配置签名的
    request.add_query_param("SignName", "输诚一")

    # response = client.do_action(request)  # 调用发送短信方法
    # print(str(response, encoding='utf-8'))
    # if response:
    cache.set(phone, code)
Esempio n. 29
0
 def _getCurrentIpRecord(self):
     """
     if you ever set domain record of the RR in this config
     then this method finds and returns the record id and corresponding ip from Aliyun API
     OR if not
     then this method returns blank string
     :return: ip record of this RR.DOMAIN, or blank string
     """
     client = AcsClient(self.accKey, self.accSec, 'default')
     request = CommonRequest()
     request.set_accept_format('json')
     request.set_domain('alidns.aliyuncs.com')
     request.set_method('POST')
     request.set_protocol_type('https')  # https | http
     request.set_version('2015-01-09')
     request.set_action_name('DescribeDomainRecords')
     request.add_query_param('DomainName', self.domain)
     try:
         response = client.do_action_with_exception(request)
         records = json.loads(response).get('DomainRecords',
                                            {}).get('Record', [])
     except Exception as err:
         self.logger.error(
             'Error - aliyun core sdk error of getIpRecord - {}'.format(
                 err))
         raise RuntimeError(err)
     record = next((r for r in records if r.get('RR', '') == self.rr), None)
     if not record:
         self.logger.info(
             'Aliyun ip record NOT FOUND, need to set the new one')
         self.ipRecord = ''
         return self.ipRecord
         # raise RuntimeError('Error - getIpRecord nothing - rr not there?')
     # print record
     self.recordId = record.get('RecordId', '')
     self.ipRecord = record.get('Value', '')
     self.logger.info('Aliyun ip record of {}.{} found - {}'.format(
         self.rr, self.domain, self.ipRecord))
     return self.ipRecord
Esempio n. 30
0
def send_sms(telephone, captcha):
    client = AcsClient(config.KEY, config.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', "flask论坛")
    request.add_query_param('TemplateCode', "SMS_174806057")
    code = {}
    code['code'] = captcha
    request.add_query_param('TemplateParam', code)

    response = client.do_action(request)
    # python2:  print(response)
    return str(response, encoding='utf-8')