コード例 #1
0
def sent_sms_with_phone(phone_number):
    ans = {}
    # client = AcsClient('LTAICNrMCIXkVv7O', 'XQGp8NBdcs7OBtgY1TrvrTpbZwPUdp', 'default')
    # 短信验证码,@maglith 友情提供
    client = AcsClient('LTAIvOKVFOootzEk', 'psEqWjHnX3B4CCxA6X1g4XiFMCz5BC',
                       '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', str(phone_number))
    request.add_query_param('TemplateCode', "SMS_171113335")
    request.add_query_param('SignName', "实训管理系统")
    # 获取随机验证码
    code = str(get_random_number_str(6))
    request.add_query_param('TemplateParam', "{\"code\": \"%s\"}" % code)

    response = client.do_action(request)

    ans["code"] = code
    ans["data"] = str(response, encoding='utf-8')
    return ans
コード例 #2
0
ファイル: daily_check.py プロジェクト: Vickey-Wu/scripts
def rds_redis(AccessKeyId, AccessKeySecret, RegionId):
    # 获取服务器系统3天后日期
    today = datetime.date.today()
    tomorrow = today + datetime.timedelta(days=3)
    day_sys, month_sys, year_sys = tomorrow.strftime('%d'), tomorrow.strftime(
        '%m'), tomorrow.strftime('%Y')
    # rds实例存放列表
    rds_list = []
    for reg in RegionId:
        client = AcsClient(AccessKeyId, AccessKeySecret, reg)
        # 查询实例详情的默认参数设置
        request = CommonRequest()
        request.set_accept_format('json')
        request.set_domain('r-kvstore.aliyuncs.com')
        request.set_method('POST')
        request.set_version('2015-01-01')
        request.set_action_name('DescribeInstances')
        # 自定义添加查询参数
        request.add_query_param('RegionId', reg)
        request.add_query_param('PageSize', '50')
        # 发送请求
        response = client.do_action_with_exception(request)
        instance = json.loads(response)["Instances"]["KVStoreInstance"]
        for ins in instance:
            # 查询实例详情的默认参数设置
            request = CommonRequest()
            request.set_accept_format('json')
            request.set_domain('r-kvstore.aliyuncs.com')
            request.set_method('POST')
            request.set_version('2015-01-01')
            request.set_action_name('DescribeInstanceAttribute')
            # 自定义添加查询参数
            request.add_query_param('RegionId', reg)
            request.add_query_param('InstanceId', ins["InstanceId"])
            # 发送请求
            response = client.do_action_with_exception(request)
            try:
                rds_time = json.loads(
                    response)["Instances"]["DBInstanceAttribute"][0]["EndTime"]
                ali_time = rds_time.split("-")
                #ali_time = ins["ExpiredTime"].split("-")
                year_ali, month_ali, day_ali = ali_time[0], ali_time[
                    1], ali_time[2][:2]
                # 如果系统时间与获取到的阿里云rds过期时间相差小于或等于3天则告警
                if int(day_ali) <= (
                        int(day_sys) + 3) and int(month_ali) <= int(
                            month_sys) and int(year_ali) <= int(year_sys):
                    rds_id = ins["InstanceId"]
                    expire_time = rds_time[:10]
                    rds_list.append([rds_id, expire_time])
            except Exception as e:
                print(response)
                print("按量付费实例无到期时间", ins, e)

    # 如果有要过期的rds实例则打印列表,没有则不打印
    #print(rds_list)
    if rds_list != []:
        return "redis rds would expired: ", rds_list
    else:
        return "no redis rds expired"
コード例 #3
0
ファイル: nat.py プロジェクト: zeus911/yunwei-1
 def request_get_gateway(self, gw_id):
     request = CommonRequest()
     self.request_to_json(request)
     request.set_domain('vpc.aliyuncs.com')
     request.set_version('2016-04-28')
     request.set_action_name('DescribeNatGateways')
     request.add_query_param('RegionId', 'cn-hangzhou')
     request.add_query_param('NatGatewayId', gw_id)
     try:
         response = self.clt.do_action_with_exception(request)
     except Exception as e:
         return []
     return self.get_json_results(response).get('NatGateways').get(
         'NatGateway')
コード例 #4
0
def getecsip(ecsid):
    request = CommonRequest()
    request.set_accept_format('json')
    request.set_domain('ecs.aliyuncs.com')
    request.set_method('POST')
    request.set_protocol_type('https')  # https | http
    request.set_version('2014-05-26')
    request.set_action_name('DescribeInstances')
    request.add_query_param('RegionId', 'cn-hangzhou')
    request.add_query_param('InstanceIds', "['" + ecsid + "']")
    response = client.do_action(request)
    jsonData = json.loads(response)
    return jsonData['Instances']['Instance'][0]['NetworkInterfaces'][
        'NetworkInterface'][0]['PrimaryIpAddress']
コード例 #5
0
def doSMSLog(config, succeed):
    code = 'success'
    if not succeed:
        code = 'failed'
    client = AcsClient(config['ak'], 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', config['to_phone'])
    request.add_query_param('SignName', "USTC2020")
    request.add_query_param('TemplateCode', "SMS_186395017")
    request.add_query_param('TemplateParam', {'code': code})

    response = client.do_action_with_exception(request)
    # python2:  print(response)
    if response['Message'] == 'OK' and response['Code'] == 'OK':
        return True
    else:
        return False
    print(str(response, encoding='utf-8'))
コード例 #6
0
def getEcsIdAndPort(client, slbid):
    request = CommonRequest()
    request.set_accept_format('json')
    request.set_domain('slb.aliyuncs.com')
    request.set_method('POST')
    request.set_protocol_type('https')  # https | http
    request.set_version('2014-05-15')
    request.set_action_name('DescribeHealthStatus')

    request.add_query_param('RegionId', 'cn-hangzhou')
    request.add_query_param('LoadBalancerId', slbid)
    response = client.do_action(request)
    res = json.loads(str(response, encoding='utf-8'))
    return res['BackendServers']['BackendServer']
コード例 #7
0
    def test_rpc_post_with_init(self):
        request = CommonRequest(domain='ft.aliyuncs.com', version='2016-01-01', action_name='TestRpcApi')
        request.set_method('POST')
        request.add_query_param('QueryParam', 'queryValue')
        request.add_body_params('BodyParam', 'bodyValue')

        body = self.acs_client.do_action_with_exception(request)
        assert body

        response = json.loads(body)
        assert response

        assert response.get("Params").get("QueryParam") == 'queryValue'
        assert response.get("Params").get("BodyParam") == 'bodyValue'
コード例 #8
0
    def send_sms(self, phone_numbers, sign_name, template_code, template_param=None):
        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_numbers)
        request.add_query_param('SignName', sign_name)
        request.add_query_param('TemplateCode', template_code)
        request.add_query_param('TemplateParam', template_param)

        try:
            response = self.acs_client.do_action_with_exception(request)
            logging.info("send sms result: response = %s", response)
        except ServerException as e:
            logging.warning("send sms fail: response = %s", str(e))
            return -5
        except ClientException as e:
            logging.warning("send sms fail: response = %s", str(e))
            return -10

        return 0
コード例 #9
0
    def _addIpRecord(self, rr, newIp):
        """
        if this rr was never been set, now we set it (for the 1st time) with the ip
        :param rr: the rr
        :param newIp: the ip
        :return: response from Aliyun API
        """
        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('AddDomainRecord')

        request.add_query_param('DomainName', self.domain)
        request.add_query_param('RR', rr)
        request.add_query_param('Type', 'A')
        request.add_query_param('Value', newIp)
        try:
            response = client.do_action_with_exception(request)
        except Exception as err:
            self.logger.error(
                'Error - aliyun core sdk error of addIpRecord - {}'.format(
                    err))
            raise RuntimeError(err)

        self.logger.info('Aliyun ip record set done - {}'.format(response))
        return response
コード例 #10
0
    def _setNewIpRecord(self, recordId, rr, newIp):
        """
        if this rr is already in the Aliyun domain record, now we set that with the new IP
        :param recordId: the record id returned from aliyun
        :param rr: the rr
        :param newIp: the ip
        :return: response from Aliyun API
        """
        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('UpdateDomainRecord')

        request.add_query_param('RecordId', recordId)
        request.add_query_param('RR', rr)
        request.add_query_param('Type', 'A')
        request.add_query_param('Value', newIp)
        try:
            response = client.do_action_with_exception(request)
        except Exception as err:
            self.logger.error(
                'Error - aliyun core sdk error of setNewIpRecord - {}'.format(
                    err))
            raise RuntimeError(err)

        self.logger.info('Aliyun ip record set done - {}'.format(response))
        return response
コード例 #11
0
def send_msg_to_phone(phone_num, verify_number):
    """
    将阿里云提供的发送短信demo,封装为函数,这样使用时更加方便
    :param phone_num:
    :param content:
    :return:
    """

    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', phone_num)
    request.add_query_param('SignName', "新经资讯网页")
    request.add_query_param('TemplateCode', "SMS_xxxxxxx")
    request.add_query_param('TemplateParam',
                            "{\"code\":\"%s\"}" % verify_number)

    response = client.do_action(request)
    # python2:  print(response)
    print(str(response, encoding='utf-8'))
コード例 #12
0
ファイル: DDNS.py プロジェクト: edwardpan/DDNS
def DDNS(use_v6):
    client = Utils.getAcsClient()
    recordId, lastIp = Utils.getRecordId(
        Utils.getConfigJson().get('Second-level-domain'))
    if use_v6:
        ip = Utils.getRealIPv6()
        type = 'AAAA'
    else:
        ip = Utils.getRealIP()
        type = 'A'

    logger.info("当前公网IP: %s" % ({'type': type, 'ip': ip}))
    if ip == lastIp:
        logger.info("IP未变更, 不需要修改解析记录, 当前解析IP: %s" % (lastIp))
        return

    request = CommonRequest()
    request.set_domain('alidns.aliyuncs.com')
    request.set_version('2015-01-09')
    request.set_action_name('UpdateDomainRecord')
    request.add_query_param('RecordId', recordId)
    request.add_query_param('RR',
                            Utils.getConfigJson().get('Second-level-domain'))
    request.add_query_param('Type', type)
    request.add_query_param('Value', ip)
    response = client.do_action_with_exception(request)
    logger.info("成功!%s", response)
コード例 #13
0
ファイル: main.py プロジェクト: Neo-python/library
    def send(self, template_code: str, phone: str, param: dict):
        """发送验证码
        :param template_code:
        :param phone:
        :param param:
        :return:
        """
        request = CommonRequest()
        request.set_accept_format('json')
        request.set_domain('dysmsapi.aliyuncs.com')
        request.set_method('POST')
        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', "寻宝网")
        request.add_query_param('TemplateCode', template_code)
        request.add_query_param('TemplateParam', json.dumps(param))

        response = self.client.do_action_with_exception(request)
        result = json.loads(response.decode())

        if result.get('Code', None) != 'OK':
            raise ViewException(error_code=5005,
                                message='验证码发送失败,请联系管理员!',
                                system_message=result.get('Message', ''))
        return response
コード例 #14
0
ファイル: edas.py プロジェクト: sdlsyc/yunwei
def stopapp(appid):
    #print(appid)
    client = AcsClient(aukey, ausecret, areaname)
    request = CommonRequest()
    request.set_accept_format('json')
    request.set_method('POST')
    request.set_protocol_type('https')
    request.set_domain("edas.cn-hangzhou.aliyuncs.com")
    #request.set_domain(areadomain)报错
    request.set_version('2017-08-01')
    request.add_query_param("RegionId", areaname)
    request.add_query_param('AppId', appid)
    request.set_uri_pattern('/pop/v5/changeorder/co_stop')
    response = client.do_action(request)
    print(str(response, encoding='utf-8'))
コード例 #15
0
def getAliyunSlbIpPort(ids, account='', passkey='', endpoint=''):
    client = AcsClient(account, passkey, endpoint)
    for id in ids:
        request = CommonRequest()
        request.set_accept_format('json')
        request.set_domain('slb.aliyuncs.com')
        request.set_method('POST')
        request.set_protocol_type('https')  # https | http
        request.set_version('2014-05-15')
        request.set_action_name('DescribeLoadBalancerAttribute')
        request.add_query_param('LoadBalancerId', id)
        response = client.do_action(request)
        res = json.loads(str(response, encoding='utf-8'))

    return res
コード例 #16
0
ファイル: nat.py プロジェクト: zeus911/yunwei-1
    def request_get_dnat(self, dnat_id):
        request = CommonRequest()
        self.request_to_json(request)
        request.set_domain('vpc.aliyuncs.com')
        request.set_version('2016-04-28')
        request.set_action_name('DescribeForwardTableEntries')
        request.add_query_param('RegionId', 'cn-hangzhou')
        request.add_query_param('ForwardTableId', dnat_id)
        try:
            response = self.clt.do_action_with_exception(request)

        except Exception as e:
            return []
        return self.get_json_results(response).get('ForwardTableEntries').get(
            'ForwardTableEntry')
コード例 #17
0
ファイル: Utils.py プロジェクト: edwardpan/DDNS
 def getRecordId(domain):
     client = Utils.getAcsClient()
     request = CommonRequest()
     request.set_domain('alidns.aliyuncs.com')
     request.set_version('2015-01-09')
     request.set_action_name('DescribeDomainRecords')
     request.add_query_param(
         'DomainName',
         Utils.getConfigJson().get('First-level-domain'))
     response = client.do_action_with_exception(request)
     jsonObj = json.loads(response.decode("UTF-8"))
     records = jsonObj["DomainRecords"]["Record"]
     for each in records:
         if each["RR"] == domain:
             return each["RecordId"], each["Value"]
コード例 #18
0
def delete_domain_record(rr):
    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('DeleteSubDomainRecords')

    request.add_query_param('DomainName', domain_name)
    request.add_query_param('RR', rr)

    response = client.do_action_with_exception(request)
    # python2:  print(response)
    print(str(response, encoding='utf-8'))
コード例 #19
0
def sendsms(phone, code_j):
    client = AcsClient('Public key', 'Private key', 'cn-hangzhou')
    req = CommonRequest()
    req.set_accept_format('json')
    req.set_domain('dysmsapi.aliyuncs.com')
    req.set_method('POST')
    req.set_protocol_type('https')  # https | http
    req.set_version('2017-05-25')
    req.set_action_name('SendSms')
    req.add_query_param('RegionId', 'cn-hangzhou')
    req.add_query_param('PhoneNumbers', phone)
    req.add_query_param('SignName', '藏书阁')
    req.add_query_param('TemplateCode', 'SMS_162635987')
    req.add_query_param('TemplateParam', code_j)
    response = client.do_action(req)
    return response
コード例 #20
0
    def test_roa_stream(self):
        request = CommonRequest(domain='ft.aliyuncs.com', version='2016-01-02', action_name='TestRoaApi', uri_pattern='/web/cloudapi')
        request.set_method('POST')
        request.add_header('HeaderParam', 'headerValue')
        request.add_query_param('QueryParam', 'queryValue')
        request.set_content("test_content")

        body = self.acs_client.do_action_with_exception(request)
        assert body

        response = json.loads(body)
        assert response

        assert response.get("Params").get("QueryParam") == 'queryValue'
        assert response.get("Headers").get("HeaderParam") == 'headerValue'
        assert response.get("Body") == 'test_content'
コード例 #21
0
def acs_alarm_history(starttime, endtime):
    request = CommonRequest()
    request.set_accept_format('json')
    request.set_domain('metrics.cn-hangzhou.aliyuncs.com')
    request.set_method('POST')
    request.set_version('2018-03-08')
    request.set_action_name('ListAlarmHistory')

    request.add_query_param('StartTime', starttime)
    request.add_query_param('EndTime', endtime)

    response = client.do_action_with_exception(request)
    json_reponse = json.loads(response)
    AlarmHistoryList = json_reponse['AlarmHistoryList']
    AlarmHistory = AlarmHistoryList['AlarmHistory']
    return AlarmHistory
コード例 #22
0
ファイル: DDNS.py プロジェクト: zhonglikui/AliDDNS
def getRecordId(client, domain):
    firstLevelDomain = AliClient.getConfigJson().get('First-level-domain')
    request = CommonRequest()
    request.set_domain('alidns.aliyuncs.com')
    request.set_version('2015-01-09')
    request.set_action_name('DescribeDomainRecords')
    request.add_query_param('DomainName', firstLevelDomain)
    response = client.do_action_with_exception(request)
    jsonObj = json.loads(response.decode('utf-8'))
    records = jsonObj['DomainRecords']['Record']
    print({'first': firstLevelDomain, "domain": domain})
    print({'response': response})
    print({"records": records})
    for each in records:
        if each['RR'] == domain:
            return each["RecordId"]
コード例 #23
0
ファイル: aliyunapi.py プロジェクト: qlcyl110/Werewolf
    def SendSms(self, number: str, sign: str, template: str, code: str):
        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', number)
        request.add_query_param('SignName', sign)
        request.add_query_param('TemplateCode', template)
        request.add_query_param('TemplateParam', '{"code":"%s"}' % (code,))

        return self.client.do_action_with_exception(request)
コード例 #24
0
def sending(phonenumber, name):
    templateparam = '{"name":"' + 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('RegionId', "cn-hangzhou")
    request.add_query_param('PhoneNumbers', int(phonenumber))
    request.add_query_param('SignName', "异想之旅")
    request.add_query_param('TemplateCode', "SMS_207970004")
    request.add_query_param('TemplateParam', templateparam)
    response = client.do_action(request)
    print(str(response, encoding='utf-8'), end='')
コード例 #25
0
    def send(self, phone_numbers, template_param):
        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', self.signName)
        request.add_query_param('TemplateCode', self.templateCode)
        request.add_query_param('TemplateParam', template_param)
        response = self.client.do_action_with_exception(request)
        return response
コード例 #26
0
ファイル: SMS.py プロジェクト: Neboer/HCRC
def send_code(phone: str, code: str):
    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', phone)
    request.add_query_param('SignName', "日冕游戏平台")
    request.add_query_param('TemplateCode', "SMS_186619468")
    request.add_query_param('TemplateParam', json.dumps({'code': code}))

    client.do_action_with_exception(request)
コード例 #27
0
ファイル: alidayu.py プロジェクト: xiaotangyuan/sms-octopus
def send_by_alidayu(mobile, msg):
	client = AcsClient(accesskeyid, accesssecret, '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', mobile)
	request.add_query_param('SignName', signname)
	request.add_query_param('TemplateCode', templatecode)
	request.add_query_param('TemplateParam', '{"code":"%s"}' % msg)
	response = client.do_action_with_exception(request)
	response = json.loads(response)
	return response
コード例 #28
0
ファイル: aliyunsms.py プロジェクト: HEYAHONG/HYH_BlogAndNote
 def sendsms(self, PhoneNumber, Content):
     client = AcsClient(self.accesskey, self.accesssecret, self.regionid)
     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', self.regionid)
     request.add_query_param('PhoneNumbers', PhoneNumber)
     request.add_query_param('SignName', self.SignName)
     request.add_query_param('TemplateCode', self.TemplateCode)
     request.add_query_param('TemplateParam', json.dumps(Content))
     response = client.do_action(request)
     # print(str(response, encoding='utf-8'))
     return response
コード例 #29
0
def aliyunSendSmsCode(acsClient, phoneNumbers, smsCode):
    """
        call aliyun sms api to send sms code to phone number(s)
        more detail refer: 
            【已解决】通过阿里云短信服务SDK去用python实现发送验证码短信
            http://www.crifan.com/python_call_aliyun_sms_sdk_send_short_message_verify_code

    :param phoneNumbers: single or multiple(seperate by ',') phone number string, eg: '15011112222' / '15011112222,15233334444'
    :param smsCode: 6 digit string, eg: 123456
    :return: true if send ok, false if send failed
    """
    templateParam = '{"code":"%s"}' % smsCode

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

    commonReq.add_query_param('RegionId', ALIYUN_SDK_SMS_REGION_ID)
    commonReq.add_query_param('PhoneNumbers', phoneNumbers) #
    commonReq.add_query_param('SignName', ALIYUN_SDK_SMS_SIGNNAME)
    commonReq.add_query_param('TemplateCode', ALIYUN_SDK_SMS_TEMPLATECODE)
    commonReq.add_query_param('TemplateParam', templateParam)

    response = acsClient.do_action(commonReq) # ACS=Alibaba Cloud Service
    respStr = str(response, encoding='utf-8')
    # normal: '{"Message":"OK","RequestId":"A216483A-5E87-49A3-9142-276821F5E10E","BizId":"166810747624160111^0","Code":"OK"}'
    # abnormal:
    # '{"Message":"没有访问权限","RequestId":"4029409A-7460-4E1F-806A-A75B5778B167","Code":"isp.RAM_PERMISSION_DENY"}'
    # {"Recommend":"https://error-center.aliyun.com/status/search?Keyword=InvalidVersion&source=PopGw","Message":"Specified parameter Version is not valid.","RequestId":"6A6711BD-F18E-445C-9B6F-E7F9F6EEE9E0","HostId":"dysmsapi.aliyuncs.com","Code":"InvalidVersion"}
    # {'Message': '触发天级流控Permits:10', 'RequestId': '85AF2393-85E3-4A12-BD92-290851E9E8A4', 'Code': 'isv.BUSINESS_LIMIT_CONTROL'}
    respJson = json.loads(respStr)
    respMessage = respJson["Message"]
    respCode = respJson["Code"]
    if (respMessage == "OK") and (respCode == "OK"):
        isSentOk = True
        errCode = ""
        errMsg = ""
    else:
        isSentOk = False
        errCode = respCode
        errMsg = respMessage

    return isSentOk, errCode, errMsg
コード例 #30
0
ファイル: user.py プロジェクト: aurorazl/Shopping
def sms_code_send(phone_number, sms_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', str(phone_number))
    request.add_query_param('SignName', "路飞vue")
    request.add_query_param('TemplateCode', "SMS_173251941")
    request.add_query_param('TemplateParam', json.dumps({"code": sms_code}))

    response = client.do_action(request)
    return json.loads(str(response, encoding='utf-8'))