Aliyun
view release on metacpan or search on metacpan
lib/AuthV2.pm view on Meta::CPAN
}
else {
$self->{'aliyun_url'} = $is_https ?
'https://eco.taobao.com/router/rest' :
'http://gw.api.taobao.com/router/rest';
}
}
#设置app key
sub set_appkey {
$_[0]->{'app_key'} = $_[1];
}
#设置secret key
sub set_secretkey {
$_[0]->{'secret_key'} = $_[1];
}
sub set_target_app_key {
$_[0]->{'set_target_app_key'} = $_[1];
}
sub set_session {
$_[0]->{'set_session'} = $_[1];
}
sub set_partner_id {
$_[0]->{'set_partner_id'} = $_[1];
}
sub _get_public_params {
my $public_params = {
'app_key' => $_[0]->{'app_key'},
'sign_method' => 'md5',
'timestamp' =>
DateTime::Format::Strptime->new(pattern => '%Y-%m-%d %H:%M:%S')->format_datetime(DateTime->now(time_zone =>
'local')),
'format' => 'json',
'v' => '2.0',
};
foreach ('set_target_app_key', 'set_session', 'set_partner_id') {
if ($self->{$_}) {
$public_params->{$_} = $self->{$_};
}
}
return $public_params;
}
#è·å带ç¾åç请æ±å°å
#retrun:string 带ç¾åç宿´urlå°å
sub get_url {
my ($self, $input_parms) = @_;
if (!$self->{'app_key'} || !$self->{'secret_key'}) {
return 0;
}
my $merge = Hash::Merge->new('LEFT_PRECEDENT');
my $public_params = $self->_get_public_params();
my $all_parms = $merge->merge($public_params, $input_parms);
my ($signature_param, $url_param) = ('', '');
map {
#æ¯å¦éè¦è½¬utf8?
#$_ = encode_utf8($_);
$signature_param .= $_ . $all_parms->{$_};
$url_param .= join('=', $_, uri_escape($all_parms->{$_}) . '&')
} sort keys(%{$all_parms});
#MD5å å¯åéè¦å
¨é¨å¤§å,å¦åç¾åä¼åºé
my $signature = uc(md5_hex(
$self->{'secret_key'} . $signature_param . $self->{'secret_key'}
));
return sprintf('%s?%ssign=%s', $self->{'aliyun_url'}, $url_param, $signature);
}
1;
__DATA__
=encoding utf8
=head1 NAME
Aliyun::AuthV2- é¿éäºV2ç¾åç®æ³
=head1 SYNOPSIS
use Aliyun::AuthV2;
my $auth = Aliyun::AuthV2->new();
$auth->set_appkey('ä½ èªå·±çkey');
$auth->set_secretkey('ä½ èªå·±çç§é¥');
=head1 DESCRIPTION
L<Aliyun::AuthV2> é¿éäºV2ç¾åç®æ³
=head1 ATTRIBUTES
=head1 METHODS
=head2 set_evn
$auth->set_evn(1, 0);
æ¯å¦æ¯sanbox ç产ç¯å¢ï¼1,æµè¯ç¯å¢ï¼0,é»è®¤:1
æ¯å¦å¯ç¨https å¯ç¨httpsï¼1,éhttps:0,é»è®¤:0
=head2 set_appkey
$auth->set_appkey('ä½ èªå·±çkey');
设置é¿éäºç»ä½ çkeyå¼
=head2 set_secretkey
$auth->set_secretkey('ä½ èªå·±çç§é¥');
ç½®é¿éäºç»ä½ çç§é¥
=head2 get_url
$auth->set_secretkey({});
çæè¯·æ±çurlå°å
=cut
( run in 0.914 second using v1.01-cache-2.11-cpan-0bb4e1dffa6 )