Exemplo n.º 1
0
    def send_sms(self, mobile, sign_name, template_code, template_param=None):
        business_id = uuid.uuid1()
        smsRequest = SendSmsRequest()
        smsRequest.set_TemplateCode(template_code)

        if template_param is not None:
            smsRequest.set_TemplateParam(template_param)

        smsRequest.set_OutId(business_id)
        smsRequest.set_SignName(sign_name)
        smsRequest.set_PhoneNumbers(mobile)
        acs_client = AcsClient(self.access_key, self.access_key_secret, SMS_ALIYUN_REGION)
        region_provider.add_endpoint(SMS_ALIYUN_PRODUCT_NAME, SMS_ALIYUN_REGION, SMS_ALIYUN_DOMAIN)

        try:
            smsResponse = acs_client.do_action_with_exception(smsRequest)
            logging.error(smsResponse)
            data = json.loads(str(smsResponse, 'utf-8'))
            if data['Code'] == 'OK':
                return True
            else:
                logging.error('SMS[{}]: '.format(mobile) + data['Message'])
                raise RuntimeError
        except ServerException as exc:
            raise exc
Exemplo n.º 2
0
def huakuai(req):  #登录滑块验证
    sessionid = req.GET.get('csessionid')
    sig = req.GET.get('sig')
    token = req.GET.get('nc_token')
    # print(sig)
    # print(sessionid)
    # print(token)
    region_provider.add_endpoint('afs', 'cn-hangzhou', 'afs.aliyuncs.com')

    # YOUR ACCESS_KEY、YOUR ACCESS_SECRET请替换成您的阿里云accesskey id和secret
    clt = client.AcsClient('LTAI1Hv1XFlpUX3z',
                           'Oo49pDCa8jFRJkGZHI2iKqiS8DIxKK', 'cn-hangzhou')
    request = AuthenticateSigRequest.AuthenticateSigRequest()

    #必填参数:从前端获取,不可更改,android和ios只传这个参数即可
    request.set_SessionId(sessionid)
    #必填参数:从前端获取,不可更改
    request.set_Sig(sig)
    #必填参数:从前端获取,不可更改
    request.set_Token(token)
    #必填参数:从前端获取,不可更改
    request.set_Scene('nc_login')
    #必填参数:后端填写
    request.set_AppKey('FFFF0N00000000007F79')
    #必填参数:后端填写
    request.set_RemoteIp('192.168.17.1')

    result = clt.do_action(request)  #返回code 100表示验签通过,900表示验签失败
    print(result)
    html = etree.HTML(result)
    code = html.xpath('//code/text()')[0]
    # print(code)
    req.session['code'] = code
    return HttpResponse('%s' % code)
Exemplo n.º 3
0
def send_sms(business_id,
             phone_numbers,
             sign_name,
             template_code,
             template_param=None):
    # 不要更改
    REGION = "cn-hangzhou"
    PRODUCT_NAME = "Dysmsapi"
    DOMAIN = "dysmsapi.aliyuncs.com"
    acs_client = AcsClient(settings.ACCESS_KEY_ID, settings.ACCESS_KEY_SECRET,
                           REGION)
    region_provider.add_endpoint(PRODUCT_NAME, REGION, DOMAIN)

    smsRequest = SendSmsRequest.SendSmsRequest()
    # 申请的短信模板编码,必填
    smsRequest.set_TemplateCode(template_code)
    # 短信模板变量参数
    if template_param is not None:
        smsRequest.set_TemplateParam(template_param)
    # 设置业务请求流水号,必填。
    smsRequest.set_OutId(business_id)
    # 短信签名
    smsRequest.set_SignName(sign_name)
    # 数据提交方式
    # smsRequest.set_method(MT.POST)
    # 数据提交格式
    # smsRequest.set_accept_format(FT.JSON)
    # 短信发送的号码列表,必填。
    smsRequest.set_PhoneNumbers(phone_numbers)
    # 调用短信发送接口,返回json
    smsResponse = acs_client.do_action_with_exception(smsRequest)
    # TODO 业务处理
    return smsResponse
Exemplo n.º 4
0
def dong(re):
    global code
    t = re.GET.get('t')
    sid = re.GET.get('sid')
    sig = re.GET.get('sig')
    print(t)
    print(sid)
    print(sig)

    region_provider.add_endpoint('afs', 'cn-hangzhou', 'afs.aliyuncs.com')
    # YOUR ACCESS_KEY、YOUR ACCESS_SECRET请替换成您的阿里云accesskey id和secret
    clt = client.AcsClient('LTAIVqfIQBwKnALR',
                           'Nk5YkIqPO4Kp0nsMkEWkMu9e5BJOCc', 'cn-hangzhou')
    request = AuthenticateSigRequest.AuthenticateSigRequest()
    #必填参数:从前端获取,不可更改,android和ios只传这个参数即可
    request.set_SessionId(sid)
    #必填参数:从前端获取,不可更改
    request.set_Sig(sig)
    #必填参数:从前端获取,不可更改
    request.set_Token(t)
    #必填参数:从前端获取,不可更改
    request.set_Scene('nc_login')
    #必填参数:后端填写
    request.set_AppKey('FFFF0N00000000007F25')
    #必填参数:后端填写
    request.set_RemoteIp('192.168.116.1')
    result = clt.do_action(request)  #返回code 100表示验签通过,900表示验签失败
    ht = etree.HTML(result)
    code = ht.xpath('//code/text()')[0]
    re.session['code'] = code
    return HttpResponse('%s' % code)
Exemplo n.º 5
0
    def __init__(self,type, number, msg):

        self.TemplateCode = current_app.config.get('SMS_MODEL_ID_CODE')
        self.para = msg
        if type=='depart':
            self.TemplateCode = current_app.config.get('SMS_MODEL_DEPART')
        if type=='back':
            self.TemplateCode = current_app.config.get('SMS_MODEL_BACK')
        if type=='noti_v':
            self.TemplateCode = current_app.config.get('SMS_MODEL_NOTI_CODE_V')
        if type=='noti_a':
            self.TemplateCode = current_app.config.get('SMS_MODEL_NOTI_CODE_A')


        self.access_key_id = current_app.config.get('SMS_ACCESS_KEY')
        self.access_key_secret = current_app.config.get('SMS_ACCESS_SECRET')
        self.server_address = current_app.config.get('SMS_URL')
        self.region = current_app.config.get('SMS_REGION')
        self.product_name = current_app.config.get('SMS_PRODUCT_NAME')

        self.num = int(number)
        self.SignName = current_app.config.get('SMS_SIGN_NAME').encode('utf-8')
        self.acs_client = AcsClient(self.access_key_id, self.access_key_secret, self.region)
        region_provider.add_endpoint(self.product_name, self.region, self.server_address)
        self.uuid = uuid.uuid1()
Exemplo n.º 6
0
def send_sms(phone_numbers, sign_name, template_param=None):
    acs_client = AcsClient(settings.SMS_ACCESS_KEY_ID,
                           settings.SMS_ACCESS_KEY_SECRET, settings.REGION)
    region_provider.add_endpoint(settings.PRODUCT_NAME, settings.REGION,
                                 settings.DOMAIN)
    smsRequest = SendSmsRequest.SendSmsRequest()
    # 申请的短信模板编码,必填
    smsRequest.set_TemplateCode(settings.SMS_TEMPLATE_ID)

    # 短信模板变量参数
    if template_param is not None:
        smsRequest.set_TemplateParam(template_param)

    # 设置业务请求流水号,必填。
    business_id = uuid.uuid1()
    smsRequest.set_OutId(business_id)

    # 短信签名
    smsRequest.set_SignName(sign_name)

    # 数据提交方式
    # smsRequest.set_method(MT.POST)

    # 数据提交格式
    # smsRequest.set_accept_format(FT.JSON)

    # 短信发送的号码列表,必填。
    smsRequest.set_PhoneNumbers(phone_numbers)

    # 调用短信发送接口,返回json
    smsResponse = acs_client.do_action_with_exception(smsRequest)

    # TODO 业务处理

    return json.loads(smsResponse.decode())
Exemplo n.º 7
0
def move_code(request):   #登录验证
    sessionid = request.GET.get('csessionid')
    sig = request.GET.get('sig')
    token = request.GET.get('nc_token')
    region_provider.add_endpoint('afs', 'cn-hangzhou', 'afs.aliyuncs.com')

    clt = client.AcsClient('LTAIXrRJT7ikiMG7','mJpj344qlvwy33ImCikjVoAYvNaN5K','cn-hangzhou')
    request = AuthenticateSigRequest.AuthenticateSigRequest()


    #必填参数:从前端获取,不可更改,android和ios只传这个参数即可
    request.set_SessionId(sessionid)
    #必填参数:从前端获取,不可更改
    request.set_Sig(sig)
    #必填参数:从前端获取,不可更改
    request.set_Token(token)
    #必填参数:从前端获取,不可更改
    request.set_Scene('nc_login')
    #必填参数:后端填写
    request.set_AppKey('FFFF0N00000000007F75')
    #必填参数:后端填写
    request.set_RemoteIp('192.168.73.1')

    result = clt.do_action_with_exception(request)  # 返回code 100表示验签通过,900表示验签失败
    print(result,'asdasdasdasd')
    # html = etree.HTML(result)
    # code = html.xpath('//code/text()')[0]
    code = json.loads(result)['Code']
    return HttpResponse('%s' % code)
    def test_add_endpoint_static(self):
        from aliyunsdkcore.profile.region_provider import add_endpoint, modify_point

        my_client = self.init_client("cn-ningbo")
        add_endpoint(
            "Ecs",  # which does not exist at all
            "cn-ningbo",
            "abc.cn-ningbo.endpoint-test.exception.com")

        with patch.object(
                my_client._endpoint_resolver,
                'resolve',
                wraps=my_client._endpoint_resolver.resolve) as monkey:
            monkey.side_effect = ClientException(
                error_code.SDK_HTTP_ERROR,
                "abc.cn-ningbo.endpoint-test.exception.com")
            request2 = DescribeRegionsRequest()
            try:
                response2 = my_client.do_action_with_exception(request2)
                assert False
            except ClientException as e:
                self.assertEqual(error_code.SDK_HTTP_ERROR, e.get_error_code())
                self.assertEqual("abc.cn-ningbo.endpoint-test.exception.com",
                                 e.get_error_msg())

        DefaultEndpointResolver.predefined_endpoint_resolver.reset()
Exemplo n.º 9
0
def send_sms(business_id,
             phone_numbers,
             sign_name,
             template_code,
             template_param=None):
    smsRequest = SendSmsRequest.SendSmsRequest()
    # 申请的短信模板编码,必填
    smsRequest.set_TemplateCode(template_code)

    # 短信模板变量参数
    if template_param is not None:
        smsRequest.set_TemplateParam(template_param)

    # 设置业务请求流水号,必填。
    smsRequest.set_OutId(business_id)

    # 短信签名
    smsRequest.set_SignName(sign_name)

    # 短信发送的号码列表,必填。
    smsRequest.set_PhoneNumbers(phone_numbers)

    # 调用短信发送接口,返回json
    acs_client = AcsClient(ACCESS_KEY_ID, ACCESS_KEY_SECRET, REGION)
    region_provider.add_endpoint(PRODUCT_NAME, REGION, DOMAIN)

    smsResponse = acs_client.do_action_with_exception(smsRequest)

    # TODO 业务处理

    return smsResponse
Exemplo n.º 10
0
Arquivo: SMS.py Projeto: superdun/car
    def __init__(self, type, number, msg):

        self.TemplateCode = SMS_MODEL_ID_CODE
        self.para = msg
        if type == 'depart':
            self.TemplateCode = SMS_MODEL_DEPART
        if type == 'back':
            self.TemplateCode = SMS_MODEL_BACK
        if type == 'noti_v':
            self.TemplateCode = SMS_MODEL_NOTI_CODE_V
        if type == 'noti_a':
            self.TemplateCode = SMS_MODEL_NOTI_CODE_A

        self.access_key_id = SMS_ACCESS_KEY
        self.access_key_secret = SMS_ACCESS_SECRET
        self.server_address = SMS_URL
        self.region = SMS_REGION
        self.product_name = SMS_PRODUCT_NAME

        self.num = int(number)
        self.SignName = SMS_SIGN_NAME.encode('utf-8')
        self.acs_client = AcsClient(self.access_key_id, self.access_key_secret,
                                    self.region)
        region_provider.add_endpoint(self.product_name, self.region,
                                     self.server_address)
        self.uuid = uuid.uuid1()
Exemplo n.º 11
0
 def __init__(product_name,
              access_key_id,
              access_key_secret,
              region=REGION):
     self.acs_client = AcsClient(access_key_id, access_key_secret, region)
     region_provider.add_endpoint(product_name, region, DOMAIN)
     self.tasks = {}
Exemplo n.º 12
0
	def __init__(self):

		# 注意:不要更改
		REGION = "cn-hangzhou"
		PRODUCT_NAME = "Dysmsapi"
		DOMAIN = "dysmsapi.aliyuncs.com"
		
		self.acs_client = AcsClient(const.AccessKeyID, const.AccessKeySecret, REGION)
		region_provider.add_endpoint(PRODUCT_NAME, REGION, DOMAIN)
Exemplo n.º 13
0
 def __init__(self,
              ACCESS_KEY_ID="LTAIgXLaQd7DPF0j",
              ACCESS_KEY_SECRET="2tPkOWLRnlT3cVopL3Nyd16zfDb3hZ",
              SIGN_NAME='光点视频桌面'):
     REGION = "cn-hangzhou"
     PRODUCT_NAME = "Dysmsapi"
     DOMAIN = "dysmsapi.aliyuncs.com"
     self.SIGN_NAME = SIGN_NAME
     self.acs_client = AcsClient(ACCESS_KEY_ID, ACCESS_KEY_SECRET, REGION)
     region_provider.add_endpoint(PRODUCT_NAME, REGION, DOMAIN)
Exemplo n.º 14
0
    def __init__(self):
        PRODUCT_NAME = "Dysmsapi"
        DOMAIN = "dysmsapi.aliyuncs.com"

        ACCESS_KEY_ID = "LTAIGC9qxzJZsBEG"
        ACCESS_KEY_SECRET = "tWHCgNI4Nst9Ha04mm4np28YnvOGUP"
        REGION = "cn-hangzhou"

        self.client = client.AcsClient(ACCESS_KEY_ID, ACCESS_KEY_SECRET,
                                       REGION)
        region_provider.add_endpoint(PRODUCT_NAME, REGION, DOMAIN)
Exemplo n.º 15
0
 def __init__(
     self,
     REGION,
     DOMAIN,
     PRODUCT_NAME,
     sms_access_key_id,
     sms_access_key_secret,
 ):
     self.acs_client = AcsClient(sms_access_key_id, sms_access_key_secret,
                                 REGION)
     region_provider.add_endpoint(PRODUCT_NAME, REGION, DOMAIN)
Exemplo n.º 16
0
    def __init__(self, *args, **kwargs):
        super(VcodeService, self).__init__(*args, **kwargs)
        self.url = "http://api.zthysms.com/sendSms.do"
        self.username = "******"
        self.password = "******"

        # 注意:不要更改
        REGION = "cn-hangzhou"
        PRODUCT_NAME = "Dysmsapi"
        DOMAIN = "dysmsapi.aliyuncs.com"

        self.acs_client = AcsClient(const.ACCESS_KEY_ID, const.ACCESS_KEY_SECRET, REGION)
        region_provider.add_endpoint(PRODUCT_NAME, REGION, DOMAIN)
Exemplo n.º 17
0
    def __init__(self):
        self._REGION = "cn-beijing"
        self._PRODUCT_NAME = "Dysmsapi"
        self._DOMAIN = "dysmsapi.aliyuncs.com"

        # ACCESS_KEY_ID/ACCESS_KEY_SECRET 根据实际申请的账号信息进行替换
        self._ACCESS_KEY_ID = "this is api key"
        self._ACCESS_KEY_SECRET = "this is api key secret code"
        self._TEMPLATE_CODE = "this is sms template"
        self._SIGN_NAME = "阿里云短信测试专用"
        self.acs_client = AcsClient(self._ACCESS_KEY_ID, self._ACCESS_KEY_SECRET, self._REGION)
        region_provider.add_endpoint(self._PRODUCT_NAME,self._REGION,self._DOMAIN)
        self._business_id = uuid.uuid1()
        self.params = None
Exemplo n.º 18
0
    def __init__(self, app):
        global Config

        if 'Config' not in globals():
            from rx_sharh.states.config import Config
            globals()['Config'] = Config

        self.access_key_id = Config.access_key_id
        self.access_key_secret = Config.access_key_secret
        self.sign_name = Config.sign_name
        self.template_code = Config.template_code
        self.acs_client = AcsClient(self.access_key_id, self.access_key_secret,
                                    self.REGION)
        region_provider.add_endpoint(self.PRODUCT_NAME, self.REGION,
                                     self.DOMAIN)
Exemplo n.º 19
0
    def __init__(self):
        reload(sys)
        sys.setdefaultencoding('utf8')

        # 注意:不要更改
        REGION = "cn-hangzhou"
        PRODUCT_NAME = "Dysmsapi"
        DOMAIN = "dysmsapi.aliyuncs.com"

        # ACCESS_KEY_ID/ACCESS_KEY_SECRET 根据实际申请的账号信息进行替换
        ACCESS_KEY_ID = "LTAI52XGiWa2kpJa"
        ACCESS_KEY_SECRET = "fifDbIEDOXGBGOPP122NTPzxaO7KL1"

        self.acs_client = AcsClient(ACCESS_KEY_ID, ACCESS_KEY_SECRET, REGION)
        region_provider.add_endpoint(PRODUCT_NAME,REGION,DOMAIN)
Exemplo n.º 20
0
def alert_channel_voice(contactor):

    REGION = "cn-hangzhou"
    PRODUCT_NAME = "Dyvmsapi"
    DOMAIN = "dyvmsapi.aliyuncs.com"

    # ACCESS_KEY_ID/ACCESS_KEY_SECRET 根据实际申请的账号信息进行替换
    ACCESS_KEY_ID = "yourkeyid"
    ACCESS_KEY_SECRET = "yourkeysecret"

    # 阿里云的语音报警系统用哪个固定电话呼出
    aliyun_show_number = "02566825180"

    # 阿里云的语音报警系统用哪个语音模版呼出
    aliyun_tts_code = "TTS_11111"

    acs_client = AcsClient(ACCESS_KEY_ID, ACCESS_KEY_SECRET, REGION)
    region_provider.add_endpoint(PRODUCT_NAME, REGION, DOMAIN)

    def tts_call(business_id,
                 called_number,
                 called_show_number,
                 tts_code,
                 tts_param=None):
        ttsRequest = SingleCallByTtsRequest()
        # 申请的语音通知tts模板编码,必填
        ttsRequest.set_TtsCode(tts_code)
        # 设置业务请求流水号,必填。后端服务基于此标识区分是否重复请求的判断
        ttsRequest.set_OutId(business_id)
        # 语音通知的被叫号码,必填。
        ttsRequest.set_CalledNumber(called_number)
        # 语音通知显示号码,必填。
        ttsRequest.set_CalledShowNumber(called_show_number)
        # tts模板变量参数
        if tts_param is not None:
            ttsRequest.set_TtsParam(tts_param)
        # 调用tts文本呼叫接口,返回json
        ttsResponse = acs_client.do_action_with_exception(ttsRequest)
        return ttsResponse

    __business_id = uuid.uuid1()
    params = ""
    tts_call(__business_id, contactor, aliyun_show_number, aliyun_tts_code,
             params)
    logger.info('voice -> ' + contactor)
Exemplo n.º 21
0
def _create_set(project):
    try:
        config = Config.query.filter().first()
        access_key_id = config and config.accessKeyId or current_app.config['ACCESS_KEY_ID']
        access_key_secret = config and config.accessKeySecret or current_app.config['ACCESS_KEY_SECRET']
        imm_region = config and config.region or current_app.config['IMM_REGION']
        add_endpoint("imm", imm_region, "imm.%s.aliyuncs.com" % imm_region)
        my_client = Client(access_key_id, access_key_secret, imm_region, timeout=60)
        data = {'Project': project, 'Type': 'PhotoProfessional', 'CU': 10}
        status, response = sent_request(my_client, 'PutProjectRequest', data)
        if status == httplib.OK:
            set_status, set_response = sent_request(my_client, 'CreateFaceSetRequest', {'Project': project})
            if set_status == httplib.OK:
                return True, set_response['SetId']
        return False, 'CreateSetError'
    except:
        traceback.print_exc()
        raise CustomFlaskErr('UnknownError')
Exemplo n.º 22
0
    def init_app(self, app):

        config = app.config

        self.access_key_id = config.get('ACCESS_KEY_ID')
        self.access_key_secret = config.get('ACCESS_KEY_SECRET')
        self.sign_name = config.get('SIGN_NAME')
        self.template_code = config.get('TEMPLATE_CODE')

        if not all([
                self.access_key_id, self.access_key_secret, self.sign_name,
                self.template_code
        ]):
            raise Exception('ACCESS Fail')

        self.acs_client = AcsClient(self.access_key_id, self.access_key_secret,
                                    self.REGION)
        region_provider.add_endpoint(self.PRODUCT_NAME, self.REGION,
                                     self.DOMAIN)
 def __get_client(self, region_info):
     region_id = region_info.region_id
     if self.client_dict.get(
             region_id
     ) is not None and self.client_dict.get(region_id) != '':
         return self.client_dict.get(region_id)
     endpoint = region_info.endpoint
     vpc = region_info.vpc
     if endpoint is not None and endpoint.strip() != '':
         region_provider.add_endpoint(const.PRODUCT_NAME, region_id,
                                      endpoint)
     elif vpc is not None and vpc:
         region_provider.add_endpoint(const.PRODUCT_NAME, region_id,
                                      get_vpc_endpoint(region_id))
     client = AcsClient(credential=self.credential,
                        region_id=region_id,
                        verify=False)
     client.set_user_agent(get_user_agent())
     self.client_dict[region_id] = client
     return self.client_dict.get(region_id)
Exemplo n.º 24
0
def send_sms(name):
    REGION = "cn-hangzhou"
    PRODUCT_NAME = "Dysmsapi"
    DOMAIN = "dysmsapi.aliyuncs.com"

    # need modify
    ACCESS_KEY_ID='YourKey'
    ACCESS_KEY_SECRET='YourSecret'

    TemplateParam = {"name": name}
    rpc_request = RpcRequest('Dysmsapi', '2017-05-25', 'SendSms')
    rpc_request.add_query_param('TemplateCode', 'SMS_77130046')
    rpc_request.add_query_param('TemplateParam', json.dumps(TemplateParam))
    rpc_request.add_query_param('OutId', uuid.uuid1())
    rpc_request.add_query_param('SignName', 'MKeng提醒')
    rpc_request.add_query_param('PhoneNumbers', '18829028766')

    region_provider.add_endpoint(PRODUCT_NAME, REGION, DOMAIN)
    acs_client = AcsClient(ACCESS_KEY_ID, ACCESS_KEY_SECRET, REGION)
    response = acs_client.do_action_with_exception(rpc_request)
    return response
Exemplo n.º 25
0
    def __init__(self, *args, **kwargs):
        super(VcodeService, self).__init__(*args, **kwargs)

        self.vcode_picture_key = 'vcode:picture:'
        self.vcode_sms_key = 'vcode:sms:'
        self.vcode_sms_minute_limit_key = 'vcode:smslimit:'
        self.vcode_sms_day_limit_key = 'vcode:smsday:'

        self.sms_config = None
        self.acs_client = None
        self.sms_redis_second = 600  # 验证码的存储时间
        self.sms_redis_second_diff = 60  # 验证码过了多久可以更改

        self.sms_config = get_sms_config()
        # 注意:不要更改
        self.acs_client = AcsClient(const.ACCESS_KEY_ID,
                                    const.ACCESS_KEY_SECRET,
                                    self.sms_config['region'])
        region_provider.add_endpoint(self.sms_config['product_name'],
                                     self.sms_config['region'],
                                     self.sms_config['domain'])
Exemplo n.º 26
0
def fetch_sts_info(access_key_id, access_key_secret, sts_role_arn):
    """子用户角色扮演获取临时用户的密钥
    :param access_key_id: 子用户的 access key id
    :param access_key_secret: 子用户的 access key secret
    :param sts_role_arn: STS角色的Arn
    :return StsInfo 返回授权用户信息对象
    """
    # 配置要访问的STS endpoint
    _REGIONID = 'cn-hongkong'
    _ENDPOINT = 'sts.cn-hongkong.aliyuncs.com'
    region_provider.add_endpoint('Sts', _REGIONID, _ENDPOINT)

    clt = client.AcsClient(access_key_id, access_key_secret, 'cn-hongkong')
    request = AssumeRoleRequest.AssumeRoleRequest()

    #request.set_accept_format('json')
    #指定角色ARN
    request.set_RoleArn(sts_role_arn)
    #设置会话名称,审计服务使用此名称区分调用者
    request.set_RoleSessionName('oss-python-sdk-example')
    #设置临时身份过期时间
    request.set_DurationSeconds(DurationSeconds)
    #发起请求,并得到response
    response = clt.do_action_with_exception(request)
    #格式化输出返回结果,将字符串结果转化为字典类型
    i = json.loads(oss2.to_unicode(response))
    #实例化StsInfo类并将临时用户信息存入对象
    global StsInfo
    StsInfo = StsInfo()
    StsInfo.access_key_id = i['Credentials']['AccessKeyId']
    StsInfo.access_key_secret = i['Credentials']['AccessKeySecret']
    StsInfo.security_token = i['Credentials']['SecurityToken']
    StsInfo.request_id = i['RequestId']
    StsInfo.expiration = oss2.utils.to_unixtime(i['Credentials']['Expiration'],
                                                '%Y-%m-%dT%H:%M:%SZ')

    #存储临时用户信息
    save_info()
Exemplo n.º 27
0
def query_send_detail(biz_id, phone_number, page_size, current_page,
                      send_date):
    queryRequest = QuerySendDetailsRequest.QuerySendDetailsRequest()
    # 查询的手机号码
    queryRequest.set_PhoneNumber(phone_number)
    # 可选 - 流水号
    queryRequest.set_BizId(biz_id)
    # 必填 - 发送日期 支持30天内记录查询,格式yyyyMMdd
    queryRequest.set_SendDate(send_date)
    # 必填-当前页码从1开始计数
    queryRequest.set_CurrentPage(current_page)
    # 必填-页大小
    queryRequest.set_PageSize(page_size)

    # 调用短信记录查询接口,返回json
    acs_client = AcsClient(ACCESS_KEY_ID, ACCESS_KEY_SECRET, REGION)
    region_provider.add_endpoint(PRODUCT_NAME, REGION, DOMAIN)

    queryResponse = acs_client.do_action_with_exception(queryRequest)

    # TODO 业务处理

    return queryResponse
Exemplo n.º 28
0
def send_sms(mobile, code):
    import sys
    reload(sys)
    sys.setdefaultencoding('utf-8')
    from aliyunsdkdysmsapi.request.v20170525 import SendSmsRequest
    from aliyunsdkcore.client import AcsClient
    from aliyunsdkcore.profile import region_provider
    REGION = "cn-hangzhou"
    PRODUCT_NAME = "Dysmsapi"
    DOMAIN = "dysmsapi.aliyuncs.com"
    ACCESS_KEY_ID = "LTAIXqQ3Ll4jEwaF"
    ACCESS_KEY_SECRET = "Gc9lYxtzDMpe7DfXhcYKJ6OQoz9DT9"
    template_code = "SMS_134815193"
    sign_name = u"年会报名系统"

    acs_client = AcsClient(ACCESS_KEY_ID, ACCESS_KEY_SECRET, REGION)
    region_provider.add_endpoint(PRODUCT_NAME, REGION, DOMAIN)
    smsRequest = SendSmsRequest.SendSmsRequest()
    smsRequest.set_TemplateCode(template_code)
    smsRequest.set_TemplateParam({'code': str(code)})
    smsRequest.set_SignName(sign_name)
    smsRequest.set_PhoneNumbers(str(mobile))
    acs_client.do_action_with_exception(smsRequest)
Exemplo n.º 29
0
    def send_sms(business_id,
                 phone_numbers,
                 sign_name,
                 template_code,
                 template_param=None):
        REGION = "cn-hangzhou"
        PRODUCT_NAME = "Dysmsapi"
        DOMAIN = "dysmsapi.aliyuncs.com"
        acs_client = AcsClient(smsconst.ACCESS_KEY_ID,
                               smsconst.ACCESS_KEY_SECRET, REGION)
        region_provider.add_endpoint(PRODUCT_NAME, REGION, DOMAIN)

        if business_id == '':
            business_id = uuid.uuid1()
        smsRequest = SendSmsRequest.SendSmsRequest()
        smsRequest.set_TemplateCode(template_code)
        if template_param is not None:
            smsRequest.set_TemplateParam(template_param)
        smsRequest.set_OutId(business_id)
        smsRequest.set_SignName(sign_name)
        smsRequest.set_PhoneNumbers(phone_numbers)
        smsResponse = acs_client.do_action_with_exception(smsRequest)

        return smsResponse
Exemplo n.º 30
0
class Sms(object):
    SIGN = u"格略"
    REGION = "cn-hangzhou"  # 暂时不支持多region
    PRODUCT_NAME = "Dysmsapi"
    DOMAIN = "dysmsapi.aliyuncs.com"
    ACCESS_KEY_ID = "h8fxi7Zp48PaOVqJ"
    ACCESS_KEY_SECRET = "Wfj7oFtsuPQ7q1myrRpACRAonv5oLf"
    acs_client = AcsClient(ACCESS_KEY_ID, ACCESS_KEY_SECRET, REGION)
    region_provider.add_endpoint(PRODUCT_NAME, REGION, DOMAIN)

    @classmethod
    def __send_sms(cls,
                   business_id,
                   phone_number,
                   template_code,
                   template_param=None):
        smsRequest = SendSmsRequest.SendSmsRequest()
        # 申请的短信模板编码,必填
        smsRequest.set_TemplateCode(template_code)
        # 短信模板变量参数,友情提示:如果JSON中需要带换行符,请参照标准的JSON协议对换行符的要求,比如短信内容中包含\r\n的情况在JSON中需要表示成\\r\\n,否则会导致JSON在服务端解析失败
        if template_param is not None:
            smsRequest.set_TemplateParam(template_param)
        # 设置业务请求流水号,必填。
        smsRequest.set_OutId(business_id)
        # 短信签名
        smsRequest.set_SignName(Sms.SIGN.encode("utf-8"))
        # 短信发送的号码,必填。支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式
        smsRequest.set_PhoneNumbers(phone_number)
        # 发送请求
        smsResponse = Sms.acs_client.do_action_with_exception(smsRequest)
        return smsResponse

    @classmethod
    def send_general_code(cls, code, phone_list):
        try:
            business_id = str(get_random_str(24))
            phone_nums = ",".join(phone_list)
            phone_param = {"code": code}
            template_code = "SMS_145596097"
            cls.__send_sms(business_id, phone_nums, template_code, phone_param)
        except Exception, e:
            logger.error("send sms error, msg(%s)" % e)
Exemplo n.º 31
0
from utils.dysms_python import const

"""
短信业务调用接口示例,版本号:v20170525

Created on 2017-06-12

"""

# 注意:不要更改
REGION = "cn-hangzhou"
PRODUCT_NAME = "Dysmsapi"
DOMAIN = "dysmsapi.aliyuncs.com"

acs_client = AcsClient(const.ACCESS_KEY_ID, const.ACCESS_KEY_SECRET, REGION)
region_provider.add_endpoint(PRODUCT_NAME, REGION, DOMAIN)

def send_sms(business_id, phone_numbers, sign_name, template_code, template_param=None):
    smsRequest = SendSmsRequest.SendSmsRequest()
    # 申请的短信模板编码,必填
    smsRequest.set_TemplateCode(template_code)

    # 短信模板变量参数
    if template_param is not None:
        smsRequest.set_TemplateParam(template_param)

    # 设置业务请求流水号,必填。
    smsRequest.set_OutId(business_id)

    # 短信签名
    smsRequest.set_SignName(sign_name)