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
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)
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
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)
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()
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())
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()
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
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()
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 = {}
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)
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)
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)
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)
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)
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
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)
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)
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)
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')
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)
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
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'])
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()
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
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)
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
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)
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)