huay
<?php
$app_key = "*********";
$app_secret = "*******************************";
$request_paras = array(
        \'ParamString\' => \'{"name":"XXXX"}\',
        \'RecNum\' => \'18600000000,13500000000\',
        \'SignName\' =>\'签名名称\', 
        \'TemplateCode\' => \'模板CODE\'
        );

$request_host = "http://sms.market.alicloudapi.com";
$request_uri = "/singleSendSms";
$request_method = "GET";
$info = "";
$content = do_get($app_key, $app_secret, $request_host, $request_uri, $request_method, $request_paras, $info);
print_r($content); // API返回值
# print_r($info);  // 系统请求返回信息

function do_get($app_key, $app_secret, $request_host, $request_uri, $request_method, $request_paras, &$info) {
    ksort($request_paras);
    $request_header_accept = "application/json;charset=utf-8";
    $content_type = "";
    $headers = array(
            \'X-Ca-Key\' => $app_key,
            \'Accept\' => $request_header_accept
            );
    ksort($headers);
    $header_str = "";
    $header_ignore_list = array(\'X-CA-SIGNATURE\', \'X-CA-SIGNATURE-HEADERS\', \'ACCEPT\', \'CONTENT-MD5\', \'CONTENT-TYPE\', \'DATE\');
    $sig_header = array();
    foreach($headers as $k => $v) {
        if(in_array(strtoupper($k), $header_ignore_list)) {
            continue;
        }
        $header_str .= $k . \':\' . $v . "\n";
        array_push($sig_header, $k);
    }
    $url_str = $request_uri;
    $para_array = array();
    foreach($request_paras as $k => $v) {
        array_push($para_array, $k .\'=\'. $v);
    }
    if(!empty($para_array)) {
        $url_str .= \'?\' . join(\'&\', $para_array);
    }
    $content_md5 = "";
    $date = "";
    $sign_str = "";
    $sign_str .= $request_method ."\n";
    $sign_str .= $request_header_accept."\n";
    $sign_str .= $content_md5."\n";
    $sign_str .= "\n";
    $sign_str .= $date."\n";
    $sign_str .= $header_str;
    $sign_str .= $url_str;

    $sign = base64_encode(hash_hmac(\'sha256\', $sign_str, $app_secret, true));
    $headers[\'X-Ca-Signature\'] = $sign;
    $headers[\'X-Ca-Signature-Headers\'] = join(\',\', $sig_header);
    $request_header = array();
    foreach($headers as $k => $v) {
        array_push($request_header, $k .\': \' . $v);
    }

    $ch = curl_init();

    curl_setopt($ch, CURLOPT_URL, $request_host . $url_str);
    //curl_setopt($ch, CURLOPT_HEADER, true);
    curl_setopt($ch, CURLINFO_HEADER_OUT, true);
    curl_setopt($ch, CURLOPT_VERBOSE, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $request_header);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $ret = curl_exec($ch);
    $info = curl_getinfo($ch);
    curl_close($ch);
    return $ret;
}

 

分类:

技术点:

相关文章: