Esempio n. 1
0
    def send_sms(self, message, phone_numbers):
        # Preprocessing
        message = re.sub(r'[^A-Za-z0-9]', '', message)
        client = AcsClient(self.access_key, self.secret_key, self.region_id)

        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', self.region_id)
        request.add_query_param(
            'PhoneNumbers',
            ','.join([str(phone_number) for phone_number in phone_numbers]))
        request.add_query_param('SignName', self.sign_name)
        request.add_query_param('TemplateCode', self.template_code)

        # Notice that the parameter "code" is from the SMS template your created in Aliyun
        # Modify to your own parameter(s) which you are using in the SMS template
        request.add_query_param('TemplateParam', "{\"code\":\"%s\"}" % message)

        response = client.do_action_with_exception(request)
        return response.decode('utf-8')
Esempio n. 2
0
def send_sms(phone, code):
    client = AcsClient('LTAI4FppavJLWqYjFtZwU1Pf',
                       'oP3BxfEWb0t2rNqykdhay9EQWsAv6s', 'cn-hangzhou')

    code = "{'code':%s}" % (code)
    print('我是codes:', 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_181556017")
    # request.add_query_param('TemplateParam', {'code': '123456'})
    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. 3
0
    def send_sms(self, zb1, z1, zb2, z2):

        t1 = time.time() - self.init_time
        self.write_log(t1)

        if t1 <= 240:
            return

        client = AcsClient('dd', 'dd', 'cn-hangzhou')
        time2 = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
        request = CommonRequest()
        request.set_accept_format('json')
        request.set_domain('dd')
        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', "dd")
        request.add_query_param('SignName', "dd")
        request.add_query_param('TemplateCode', "dd")
        request.add_query_param('TemplateParam',
                                "{\"zb1\": \"" + zb1 + "\",\"z1\": \"" + z1 + "\",\"zb2\":\"" + zb2 + "\",\"z2\":\"" + z2 + "\",\"time\":\"" + time2 + "\"}")
        self.write_log(f"{zb1},{z1},{zb2},{z2}")

        # response = client.do_action(request)
        # python2:  print(response)
        # self.write_log(str(response, encoding = 'utf-8'))
        self.sendmail(zb1 + "-" + time2, z1 + ',' + zb2 + ',' + z2)
Esempio n. 4
0
class AliyunSMS(object):
    '''阿里云短信服务'''
    def __init__(self):
        self.client = AcsClient(accessKeyId, accessSecret, regionid)

    def _create_request(self, to: str, code: str):
        '''封装短信请求'''
        self.request = CommonRequest()
        self.request.set_accept_format('json')
        self.request.set_domain('dysmsapi.aliyuncs.com')
        self.request.set_method('POST')
        self.request.set_protocol_type('https')  # https | http
        self.request.set_version('2017-05-25')
        self.request.set_action_name('SendSms')

        self.request.add_query_param('RegionId', regionid)
        self.request.add_query_param('PhoneNumbers', to)
        self.request.add_query_param('SignName', SignName)
        self.request.add_query_param('TemplateCode', TemplateCode)
        self.request.add_query_param('TemplateParam',
                                     "{\"code\":\"%s\"}" % code)

    def sen_msg(self, to: str, code: str):
        self._create_request(to, code)
        response = self.client.do_action_with_exception(self.request).decode()
        result = json.loads(response).get('Code')
        if result == 'OK':
            return True
        else:
            return False
Esempio n. 5
0
def sms_pubilc_param(mobile, routing_key, action):
    # client = AcsClient('<accessKeyId>', '<accessSecret>', 'default')
    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")  # 短信API的值
    request.add_query_param('SignName', SIGNNAME)  # 短信签名名称

    # 业务参数
    request.add_query_param('PhoneNumbers', mobile)

    # 短信模板
    template_code = ""
    if action == "register":
        template_code = TEMPLATECODEREG
    elif action == "login":
        template_code = "SMS_xxx"
    return request, template_code, client
Esempio n. 6
0
def smscode1(request):
    """
    检查手机验证码
    :param request:
    :return:
    """
    # !/usr/bin/env python
    # coding=utf-8
    phone = request.GET.get('phone', '')
    number = random.randint(100000, 999999)

    client = AcsClient('LTAIeUCNImn4yp21', 'M3Yxqxs3wOljHPn7EimdETr9PkDwdN',
                       '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', "勺品有品")
    request.add_query_param('TemplateCode', "SMS_169903182")
    request.add_query_param('TemplateParam', "{'code':%s}" % number)

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

    jionStr = {'number': number}

    return HttpResponse(json.dumps(jionStr))
Esempio n. 7
0
    def send_sms(self, phone_number, msg_type, code=0):
        if code == 0:
            code = self.generate_code()
        if msg_type == AliyunSms.MSG_TYPE_REGISTER:
            template_code = 'SMS_164075985'
        else:
            template_code = 'SMS_164075981'
        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', self.sign_name)
        request.add_query_param('TemplateCode', template_code)
        request.add_query_param('TemplateParam', json.dumps({"code": code}))

        try:
            response = self.aliyun_client.do_action_with_exception(request)
            result = json.loads(str(response, encoding="utf-8"))
            if result["Code"] == "OK":
                # save the send record
                record = SmsVerifyRecord()
                record.code = code
                record.send_type = msg_type
                record.mobile_phone = phone_number
                record.save()
        except:
            return None
Esempio n. 8
0
File: sms.py Progetto: nz1901/swiper
def send_sms(phone):
    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', "18676689715")
    request.add_query_param('SignName', "swiper")
    request.add_query_param('TemplateCode', "SMS_189840981")
    vcode = gen_vcode()
    print('vcode:', vcode)
    code_dict = {'code': vcode}
    # 把code加入缓存
    key = keys.VCODE % phone
    # 优化: 开发环境, 验证码缓存14天, 正式环境缓存15分钟
    timeout = 86400 if settings.DEBUG else 900
    cache.set(key, vcode, timeout=timeout)
    request.add_query_param('TemplateParam', json.dumps(code_dict))
    response = client.do_action_with_exception(request)
    result = json.loads(response, encoding='utf-8')
    code = result.get('Code')
    if code == 'OK':
        return True
    return False
Esempio n. 9
0
def BeginSend(PhoneNum, AccessKeyId, AccessSecret, SignName, TemplateCode):

    client = AcsClient(AccessKeyId, AccessSecret, 'cn-hangzhou')
    # 生成验证码
    authCode = str(random.randint(1000, (10**VerificationLen - 1)))
    dict = {'code': authCode}
    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', PhoneNum)
    request.add_query_param('SignName', SignName)
    request.add_query_param('TemplateCode', TemplateCode)
    # request.add_query_param('TemplateParam', "{'code':'5648'}")
    request.add_query_param('TemplateParam', str(dict))
    # 请求
    response = client.do_action(request)
    cjson = json.loads(str(response, 'utf-8'))
    cjson['authCode'] = authCode
    print(json.dumps(cjson))
    return cjson
Esempio n. 10
0
def send_sms(template, telephone):
    client = AcsClient('LTAI4GEAa9cHq88oEGdahuCD',
                       'Hb8SsROuwHMN7g7xZH78933QqqtUa3', 'default')
    # 短信里面的 我的AccessKey ID 我的Access Key Secret
    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')

    # set_action_name 这个是选择你调用的接口的名称,如:SendSms,SendBatchSms等
    request.set_action_name('SendSms')
    # request.set_action_name('QuerySendDetails')

    # 这个参数也是固定的
    request.add_query_param('RegionId',
                            "default")  # 98A66994-3DF4-4FA5-A33F-CCB36EB599D0
    # request.add_query_param('RegionId', "cn-hangzhou")

    request.add_query_param('PhoneNumbers', telephone)  # 发给谁
    request.add_query_param('SignName', '知了论坛')  # 签名
    request.add_query_param('TemplateCode', 'SMS_189523758')  # 模板编号
    request.add_query_param('TemplateParam', f"{template}")  # 发送验证码内容
    response = client.do_action_with_exception(request)
    return response
Esempio n. 11
0
 def aLiYunApiForEcs(self, private_ip):
     client = AcsClient('*******', '*********', 'cn-beijing')
     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('DescribeInstances')
     request.add_query_param('PrivateIpAddresses', '["%s"]' % (private_ip))
     response = client.do_action_with_exception(request)
     ecs_info = json.loads(response)["Instances"]["Instance"][0]
     ret = {
         "online_time":
         ecs_info["CreationTime"],
         "expired_time":
         ecs_info["ExpiredTime"],
         "charge_type":
         ecs_info["InstanceChargeType"],
         "instance_id":
         ecs_info["InstanceId"],
         "instance_name":
         ecs_info["InstanceName"],
         "instance_type":
         ecs_info["InstanceType"],
         "public_ip":
         ecs_info["PublicIpAddress"].get("IpAddress")[0]
         if ecs_info["PublicIpAddress"].get("IpAddress") else
         ecs_info["EipAddress"]["IpAddress"]
     }
     return ret
Esempio n. 12
0
class AlidayuSMS(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__(self, app=None):
        self.client = None
        self.request = None
        if app:
            self.init_app(app)

    def init_app(self, app):
        config = app.config
        self.client = AcsClient(config[self.APP_KEY_FIELD],
                                config[self.APP_SECRET_FIELD], 'default')
        self.request = CommonRequest()
        self.request.set_accept_format('json')
        self.request.set_domain('dysmsapi.aliyuncs.com')
        self.request.set_method('POST')
        self.request.set_protocol_type('https')  # https | http
        self.request.set_version('2017-05-25')
        self.request.set_action_name('SendSms')
        self.request.add_query_param('SignName',
                                     config[self.SMS_SIGN_NAME_FIELD])
        self.request.add_query_param('TemplateCode',
                                     config[self.SMS_TEMPLATE_CODE_FIELD])

    def sendSMS(self, phone, code):
        self.request.add_query_param('PhoneNumbers', phone)
        json_code = json.dumps({'code': code})
        self.request.add_query_param('TemplateParam', json_code)
        response = self.client.do_action_with_exception(self.request)
        return response
Esempio n. 13
0
def sendmessage(ticketmseeage: str):
    '''
    短信通知,调用阿里云接口
    '''
    message_conf = _get_yaml()
    is_email = message_conf["message_conf"]["is_massage"]
    if is_email:
        accessKeyId = message_conf["message_conf"]["aliyunkeyid"]
        aliyunsecret = message_conf["message_conf"]["aliyunsecret"]
        phonenumbers = message_conf["message_conf"]["phone"]
        trcket = '{"code":"' + ticketmseeage + '"}'
        client = AcsClient(accessKeyId, aliyunsecret, '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', phonenumbers)
        request.add_query_param('SignName', '抢票小助手')
        request.add_query_param('TemplateCode', 'SMS_164266405')
        request.add_query_param('TemplateParam', trcket)
        response = client.do_action(request)
        # python2:  print(response)
        print(str(response, encoding='utf-8'))
        try:
            pass
        except Exception as identifier:
            print(u"短信发送失败{}".format(identifier))
Esempio n. 14
0
def check_record_id(dns_rr, dns_domain):
    times = 0  # 用于检查对应子域名的记录信息
    check = 0  # 用于确认对应子域名的记录信息
    request = CommonRequest()
    request.set_accept_format('json')  # 设置返回格式
    request.set_domain('alidns.aliyuncs.com')  # 阿里云服务
    request.set_method('POST')
    request.set_protocol_type('https')
    request.set_version('2015-01-09')
    request.set_action_name('DescribeDomainRecords')

    request.add_query_param('DomainName', rc_domain)  # 设置请求域名
    request.add_query_param('RRKeyWord', rc_rr)
    request.add_query_param('TypeKeyWord', rc_type)
    response = loads(clt.do_action(request))  # 接受返回数据
    result = response['DomainRecords']['Record']  # 缩小数据范围
    for record_info in result:  # 遍历返回数据
        if record_info['RR'] == dns_rr:  # 检查是否匹配
            check = 1
            break
            # 确认完成结束
        else:
            times += 1  # 进入下个匹配
    if check:
        result = result[times]['RecordId']  # 返回记录数值
    else:
        result = -1  # 返回失败数值
    return result
Esempio n. 15
0
def send_sms(phone, code):
    # !/usr/bin/env python
    # coding=utf-8

    from aliyunsdkcore.client import AcsClient
    from aliyunsdkcore.request import CommonRequest
    client = AcsClient('LTAIznxYom8fTE24', '4eTEzXNBG3VW8iRfPZ1M8CDusiXDWU', '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_172205443")
    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')
def dataworks_api_create_adhoc_dag(accesskey_id, accesskey_secret, region_id, projectname, flowname, bizdate='2018-07-25 00:00:00'):
    client = AcsClient(accesskey_id, accesskey_secret, region_id)

    request = CommonRequest()
    request.set_accept_format('json')
    request.set_domain('dataworks.aliyuncs.com')
    request.set_method('POST')
    request.set_protocol_type('https') # https | http
    request.set_version('2018-06-01')
    request.set_action_name('CreateManualDag')
    
    request.add_query_param('ProjectName', projectname)
    request.add_query_param('FlowName', flowname)
    request.add_query_param('Bizdate', bizdate)

    response = client.do_action(request)
    #pprint(response)
    js = json.loads(response)
    status = 'Failed and unknown'
    dag_id = '0'
    if ('ReturnCode' in js):
        if (js['ReturnCode'] == '600011'):
            status = 'Failed and Bizdate should be in [2019-03-20 00:00:00 format]'
        if (js['ReturnCode'] == '0') and ('ReturnValue' in js): 
            status = 'Succeed'
            dag_id = js['ReturnValue']
    return js, status, dag_id
Esempio n. 17
0
def get_phone_code(*, phone: int, phone_code: str) -> tuple:
    """
    获取短信验证码
    phone: 手机号
    """
    AccessKey = settings.PHONE_ACCESSKEY
    AccessSecret = settings.PHONE_ACCESSSECRET
    code = "cn-hangzhou"
    try:
        client = AcsClient(AccessKey, AccessSecret, code, phone)
        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", settings.PHONE_SIGNNAME)
        request.add_query_param("TemplateCode", settings.PHONE_TEMPLATECODE)

        json_data = json.dumps({"code": phone_code})
        request.add_query_param("TemplateParam", json_data)
        client.do_action(request)
    except Exception as e:
        message = f"向手机 {phone} 发送验证码失败"
        logger.error(message, e)
        return None, message
    phone_code_time = settings.PHONE_CODE_EXPIRE_SECONDS // 60
    message = f"验证码已发送, {phone_code_time}分钟之内有效"
    return phone_code, message
Esempio n. 18
0
async def speakvoice(key: str) -> str:
    try:
        data = getconfig()
        filepath = os.path.dirname(__file__) + '\data.txt'
        if (key == '鉴权'):
            # 创建AcsClient实例
            client = AcsClient(data["AccessKey"], data["AccessKeySecret"],
                               "cn-shanghai")
            # 创建request,并设置参数
            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)
            content = json.loads(response)
            token = content['Token']['Id']
            with open(filepath, "w") as fp:
                fp.write(token)
            return '[CQ:face,id=101]鉴权成功,你现在可以开始发语音了!'
        with open(filepath, "r") as fp:
            token = fp.read()
        client = ali_speech.NlsClient()
        # 设置输出日志信息的级别:DEBUG、INFO、WARNING、ERROR
        client.set_log_level('INFO')
        appkey = data['key']
        text = key
        audio_name = 'data/record/mymusic/' + '1.mp3'
        process(client, appkey, token, text, audio_name)
        return "[CQ:record,file=mymusic/1.mp3,magic=false]"
    except (Exception):
        return "[CQ:face,id=177]出了问题,好像不能获取到数据了,请重试!"
Esempio n. 19
0
    def send_to(self, phone_number):
        ''''send'''
        if self.debug:
            return '123456'
        code = gen_sms_code(6)
        from aliyunsdkcore.client import AcsClient
        from aliyunsdkcore.request import CommonRequest
        client = AcsClient(self.access_key_id, self.access_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', phone_number)
        request.add_query_param('SignName', '知识树')
        request.add_query_param('TemplateCode', 'SMS_194635024')
        request.add_query_param('TemplateParam', json.dumps({'code': code}))

        response = client.do_action_with_exception(request)
        # python2:  print(response)
        # print(str(response, encoding='utf-8'))
        return code
    def test_bug_with_17661113(self):
        request = CommonRequest()
        request.set_domain("nlp.cn-shanghai.aliyuncs.com")
        request.set_uri_pattern("/nlp/api/reviewanalysis/ecommerce")
        request.set_method(method_type.POST)
        request.add_header("x-acs-signature-method", "HMAC-SHA1")
        request.add_header("x-acs-signature-nonce", uuid.uuid4().hex)
        request.add_header("x-acs-signature-version", "1.0")
        content = '{"text":"裙子穿着很美哦,上身效果也不错,是纯棉的料子,穿着也很舒服。", ' \
                  '"cate":"clothing"}'
        request.set_content_type("application/json;chrset=utf-8")
        request.set_accept_format("application/json;chrset=utf-8")
        if sys.version_info[0] == 2:
            request.set_content(content)
        else:
            request.set_content(content.encode('utf-8'))
        request.set_version('2018-04-08')
        request.set_action_name("None")

        # We have 2 possible situations here: NLP purchased or NLP purchased
        # The test case should be passed in both situations.
        try:
            response = self.client.do_action_with_exception(request)
            self.assertTrue(response)
        except ServerException as e:
            self.assertEqual("InvalidApi.NotPurchase", e.error_code)
            self.assertEqual("Specified api is not purchase",
                             e.get_error_msg())
    def _refresh_session_ak_and_sk(self):
        request = CommonRequest(product="Sts",
                                version='2015-04-01',
                                action_name='AssumeRole')
        request.set_method('POST')
        request.set_protocol_type('https')
        request.add_query_param('RoleArn', self._credential.role_arn)
        request.add_query_param('RoleSessionName',
                                self._credential.session_role_name)
        request.add_query_param('DurationSeconds', self._SESSION_PERIOD)
        request.set_accept_format('JSON')

        access_key_credential = AccessKeyCredential(
            self._credential.sts_access_key_id,
            self._credential.sts_access_key_secret)
        signer = AccessKeySigner(access_key_credential)

        status, headers, body = self._doAction(request, signer)
        if status == 200:
            response = json.loads(body.decode('utf-8'))
            session_ak = response.get("Credentials").get("AccessKeyId")
            session_sk = response.get("Credentials").get("AccessKeySecret")
            token = response.get("Credentials").get("SecurityToken")
            self._session_credential = session_ak, session_sk, token
            self._last_update_time = int(time.time())
        else:
            code = error_code.SDK_GET_SESSION_CREDENTIAL_FAILED
            message = "refresh session token failed, server return: " + body
            http_status = status

            raise exceptions.ServerException(code, message, http_status)
Esempio n. 22
0
def deploy(warurl):
    request = CommonRequest()
    request.set_accept_format('json')
    request.set_method('POST')
    request.set_protocol_type('https')  # https | http
    request.set_domain(endpoint)
    request.set_version('2017-08-01')

    packageversion = strftime("%Y%m%d%H%M%S", gmtime())

    request.add_query_param('RegionId', region)
    request.add_query_param('AppId', appid)
    request.add_query_param('PackageVersion', packageversion)
    request.add_query_param('DeployType', 'url')
    request.add_query_param('WarUrl', warurl)
    request.add_query_param('GroupId', 'all')
    #request.set_uri_pattern('/pop/v5/app/app_status')
    request.set_uri_pattern('/pop/v5/changeorder/co_deploy')
    body = ''''''
    response = ''
    request.set_content(body)

    response = client.do_action(request)

    # python2:
    print(response)
Esempio n. 23
0
    def send(self, req):
        phone = req.data.get("phone")
        type = req.data.get("type")
        # 随机生成4位验证码
        code = str(random.randrange(1000, 10000))
        template_param = "{\"code\":\"%s\"}" % code

        client = AcsClient(settings.ACCESS_KEY_ID, settings.ACCESS_SECRET_KEY,
                           settings.REGION_ID)

        request = CommonRequest()
        request.set_accept_format('json')
        request.set_domain(settings.DOMAIN)
        request.set_method('POST')
        request.set_protocol_type('http')
        request.set_version('2017-05-25')
        request.set_action_name('SendSms')

        request.add_query_param('PhoneNumbers', phone)
        request.add_query_param('SignName', settings.SIGN_NAME)
        request.add_query_param('TemplateCode', settings.TEMPLATE_NAME)
        request.add_query_param('TemplateParam', template_param)

        response = client.do_action_with_exception(request)
        res = json.loads(response.decode())
        if res.get("Message") == "OK" and res.get("Code") == "OK":
            live_time = 60 * 5  # 5分钟
            # cache.set("baoxian" + phone, code, live_time)
            cache.set(type + phone, code, live_time)
            data = {"code": 200, "msg": "发送成功"}
        else:
            data = {"code": 2, "msg": res.get("Message")}
        return Response(data)
Esempio n. 24
0
def send_msg_to_phone(phone_num, content):
    """
    将阿里云提供的发送短信demo,封装为函数,这样使用时更加方便
    :param phone_num:
    :param content:
    :return:
    """
    client = AcsClient('LTAI4GJcCBqAEs63nNVNsJ63',
                       'hZXTnGJvkT54E6bqYH4jwAJO5Tc9Mx', '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', "dong4716138")
    request.add_query_param('TemplateCode', "SMS_167532197")
    request.add_query_param('TemplateParam', "{\"code\":\"%s\"}" % content)

    response = client.do_action(request)
    # python2:  print(response)
    print(str(response, encoding='utf-8'))
Esempio n. 25
0
    def send_sms(self, mobile, sign, template, data=None):
        """
        发送短信

        mobile: 手机号码
        sign: 短信签名
        template: 短信模板
        data: 短信内容
        """
        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', mobile)
        request.add_query_param('SignName', sign)
        request.add_query_param('TemplateCode', template)
        #request.add_query_param('TemplateParam', '{"code":"%s"}'%content)

        response = self.client.do_action(request)

        return response
Esempio n. 26
0
def send_sms(phone, code):
    client = AcsClient('LTAIEx3Gbdbceg2C', 'MsCoWUm3x2iXaIcvtqhQLi9yj6nHxX',
                       'cn-hangzhou')

    # phone = '17600950805'
    # aa= '222222'
    code = "{'code':%s}" % (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_165745016')
    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. 27
0
def send_msg_to_phone(phone_num, content):
    """
    将阿里云提供的发送短信demo,封装为函数,这样使用时更加方便
    :param phone_num:
    :param content:
    :return:
    """
    client = AcsClient('LTAI4GFkdB5KgW8K98eAd7a3', 'cBVs8OKBjbley1VkqhUgx4c7yu48Z4', '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_204296280")
    request.add_query_param('TemplateParam', "{\"code\":\"%s\"}" % content)

    response = client.do_action(request)
    # python2:  print(response)
    print(str(response, encoding='utf-8'))
Esempio n. 28
0
def send_sms(phone, code):
    client = AcsClient('LTAI4Fog9VDu4HPx1eZ64K6W',
                       'cf2fqRQn7Pm4vQbR9DGGe8Xr4nBqeA', 'cn-hangzhou')

    # phone = '17600950805'
    # aa= '222222'
    code = "{'code':%s}" % (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_181545706')
    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. 29
0
def send_sms(template, phone, template_code):
    client = AcsClient(settings.ACCESSKEY_ID, settings.ACCESSKEY_SERECT,
                       settings.REGION_ID)
    # 短信里面的 我的AccessKey ID 我的Access Key Secret
    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')

    # set_action_name 这个是选择你调用的接口的名称,如:SendSms,SendBatchSms等
    request.set_action_name('SendSms')
    # request.set_action_name('QuerySendDetails')

    # 这个参数也是固定的
    request.add_query_param(
        'RegionId', settings.REGION_ID)  # 98A66994-3DF4-4FA5-A33F-CCB36EB599D0
    # request.add_query_param('RegionId', "cn-hangzhou")

    request.add_query_param('PhoneNumbers', phone)  # 发给谁
    request.add_query_param('SignName', settings.SIGN_NAME)  # 签名
    request.add_query_param('TemplateCode', template_code)  # 模板编号
    request.add_query_param('TemplateParam', f"{template}")  # 发送验证码内容
    response = client.do_action_with_exception(request)
    return response
Esempio n. 30
0
def message_code(reuqest):
    if reuqest.method == 'POST':
        phone = reuqest.POST.get('phone')

        logger.info('请求验证码的用户:{}'.format(phone))

        # 在发送验证码之前需要检查验证码有效期,如果在有效期内不直接发送验证码
        cache_phone_message = cache.get('phone_message:' + phone)

        if cache_phone_message:
            logger.info('redis服务器下该{}用户的验证码为:{},还未过有效期'.format(
                phone, cache_phone_message))
            # 已经获取到缓存的手机号了
            # 准备给前端返回的数据信息
            return JsonResponse({'status': 405, 'msg': '验证码有效期内请勿重复申请'})

        # 生成6位随机验证码(string)
        # 先生成6位随机数列表:random.sample([x for x in string.ascii_letters + string.digits],6
        # 通过join将列表拼接字符串
        # kUEeBr
        # print("".join(random.sample([x for x in string.ascii_letters + string.digits], 6)))
        # 生成6位随机数,准备填充到短信验证码模版的code表中
        six_num = "".join(map(lambda x: random.choice(string.digits),
                              range(6)))
        '''-------------------------------阿里的短信服务器调用代码-----------------------------------------'''
        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', phone)
        request.add_query_param('SignName', SignName)
        request.add_query_param('TemplateCode', TemplateCode)
        request.add_query_param('TemplateParam', {'code': six_num})

        response_message = client.do_action(request)
        logger.info('当前手机号:{},验证码:{},发送状态:{}'.format(
            phone, six_num, str(response_message, encoding='utf-8')))
        # python2:  print(response)

        response_message = json.loads(str(response_message, encoding='utf-8'))
        logger.info('短信服务器返回的消息:{}'.format(response_message))
        '''-------------------------------阿里的短信服务器调用代码-----------------------------------------'''

        if response_message['Code'] == 'OK':
            # 如果验证码发送成功,那需要把当前验证码加入到缓存中进行存储,设定短信10分钟内有效
            logger.info('验证码发送成功,有效期10分钟')
            cache.set('phone_message:' + phone, six_num, 60 * 10)
            # 准备给前端返回的数据信息
            return JsonResponse({'status': 200, 'msg': '验证码发送成功'})
        else:
            # 准备给前端返回的数据信息
            return JsonResponse({
                'status': 404,
                'msg': str(response_message['Message'])
            })