码迷,mamicode.com
首页 > 其他好文 > 详细

阿里云短信

时间:2019-03-18 18:20:17      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:tran   ignore   ica   签名   encode   url   type   sha   content   

<?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;
}

 

阿里云短信

标签:tran   ignore   ica   签名   encode   url   type   sha   content   

原文地址:https://www.cnblogs.com/huay/p/10553801.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!