https://sms-intl.ap-southeast-1.aliyuncs.com/?AccessKeyId=dsfsdfdsfdsfdsf&Action=SendMessageToGlobe&Format=JSON&From=sdsadf&Message=gthet&RegionId=default&SecureTransport=true&SignatureMethod=HMAC-SHA1&SignatureNonce=0c4766c8889267ca02d733342a973461&SignatureVersion=1.0&SourceIp=41.210.145.133&Timestamp=2019-09-04T11%3A54%3A52Z&To=345435435435&Version=2018-05-01&Signature=j7UIvC%2B9whf1KyLxTjv0K4aFCyc%3
####
#!/usr/bin/perl -w
use HTTP::Tiny;
use POSIX qw(strftime);
my $ua = HTTP::Tiny->new;
$timestamp = strftime '%Y-%m-%dT%H:%M:%S', gmtime();
$ip = $ENV{'REMOTE_ADDR'};
$Nonce = int(rand(1000000));
$from = "sfsdfdf";
$message = "asdasd";
$to = "434534543";
my $url = "https://sms-intl.ap-southeast-1.aliyuncs.com";
my $data = {
AccessKeyId => "sdsadasdasd",
Action => "SendMessageToGlobe",
Format => "JSON",
From => $from,
Message => $message,
RegionId => "default",
SecureTransport => "true",
SignatureMethod => "HMAC-SHA1",
SignatureNonce => $Nonce,
SignatureVersion => "1.0",
SourceIp => $ip,
Timestamp => $timestamp,
To => $to,
Version => "2018-05-01",
Signature => "j7UIvC+9whf1KyLxTjv0K4aFCyc=",
};
my $params = $ua->www_form_urlencode( $data );
my $response = $ua->post( $url . '/?' . $params );
print "Content-type: text/html\n\n";
print $response->{content} . "\n";
####
{"Recommend":"https://error-center.aliyun.com/status/search?Keyword=SignatureDoesNotMatch&source=PopGw","Message":"Specified signature is not matched with our calculation. server string to sign is:POST&%2F&AccessKeyId%sdsadasd%26Action%3DSendMessageToGlobe%26Format%3DJSON%26From%3Dsfsdfdf%26Message%3Dasdasd%26RegionId%3Ddefault%26SecureTransport%3Dtrue%26SignatureMethod%3DHMAC-SHA1%26SignatureNonce%3D659993%26SignatureVersion%3D1.0%26SourceIp%3D41.210.145.133%26Timestamp%3D2019-09-04T13%253A49%253A02%26To%3D534534543345%26Version%3D2018-05-01","RequestId":"0C5E81D6-69E6-45FE-85AA-9D89E5C23267","HostId":"sms-intl.ap-southeast-1.aliyuncs.com","Code":"SignatureDoesNotMatch"}