| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 | <?php/*** * User: jun_hy * Date: 2022/7/6 * Time: 15:41 */function sendSmsali($phone,$template_body,$from){    $params = array();    $params["To"] = $phone;    $params["From"] = $from;    $params["Message"] = $template_body;    $params['Type'] = "NOTIFY";    $content = request(        "dysmsapi.aliyuncs.com",        array_merge($params, array(            "RegionId" => "cn-hangzhou",            "Action" => "SendMessageToGlobe",            "Version" => "2017-05-25",        ))    );    if ($content->Code == 'OK') {        return $content;    } else {        return false;    }}/** * 查询发送短信状态 * mobile            手机号码 * TemplateParam    参数数组 * TemplateCode        模版CODE */function QuerySendDetails($phone,$bizId,$times){    $params = array();    $params["PhoneNumber"] = $phone;    $params['BizId'] =  $bizId;    $params['SendDate'] =  $times;    $params['PageSize'] =  10;    $params['CurrentPage'] =  1;    $content = $this->request(        "dysmsapi.aliyuncs.com",        array_merge($params, array(            "RegionId" => "cn-hangzhou",            "Action" => "QuerySendDetails",            "Version" => "2017-05-25",        ))    );    if ($content->Code == 'OK') {        return $content->SmsSendDetailDTOs;    } else {        return false;    }} function request($domain, $params, $security = false){    $accessKeyId ='LTAI5tD31ApgijqwnZthM9SH';    $accessKeySecret = 'NsEwR56E7qB8hBLBxkUqaZe4AahEyd';    $apiParams = array_merge(array(        "SignatureMethod" => "HMAC-SHA1",        "SignatureNonce" => uniqid(mt_rand(0, 0xffff), true),        "SignatureVersion" => "1.0",        "AccessKeyId" => $accessKeyId,        "Timestamp" => gmdate("Y-m-d\TH:i:s\Z"),        "Format" => "JSON",    ), $params);    ksort($apiParams);    $sortedQueryStringTmp = "";    foreach ($apiParams as $key => $value) {        $sortedQueryStringTmp .= "&" . encode($key) . "=" . encode($value);    }    $stringToSign = "GET&%2F&" . encode(substr($sortedQueryStringTmp, 1));    $sign = base64_encode(hash_hmac("sha1", $stringToSign, $accessKeySecret . "&", true));    $signature = encode($sign);    $url = ($security ? 'https' : 'http') . "://{$domain}/?Signature={$signature}{$sortedQueryStringTmp}";    try {        $content = fetchContent($url);        return json_decode($content);    } catch (\Exception $e) {        return false;    }} function encode($str){    $res = urlencode($str);    $res = preg_replace("/\+/", "%20", $res);    $res = preg_replace("/\*/", "%2A", $res);    $res = preg_replace("/%7E/", "~", $res);    return $res;} function fetchContent($url){    $ch = curl_init();    curl_setopt($ch, CURLOPT_URL, $url);    curl_setopt($ch, CURLOPT_TIMEOUT, 5);    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);    curl_setopt($ch, CURLOPT_HTTPHEADER, array(        "x-sdk-client" => "php/2.0.0"    ));    if (substr($url, 0, 5) == 'https') {        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);    }    $rtn = curl_exec($ch);    if ($rtn === false) {        trigger_error("[CURL_" . curl_errno($ch) . "]: " . curl_error($ch), E_USER_ERROR);    }    curl_close($ch);    return $rtn;}
 |