阿里云发送短信接口php代码demo

代码语言:php

所属分类:验证码

代码描述:阿里云发送短信接口php代码demo

代码标签: 短信 接口 php demo

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<?php
/**
 * 签名助手 2017/11/19
 *
 * Class SignatureHelper
 */

class SignatureHelper {

   
/**
     * 生成签名并发起请求
     *
     * @param $accessKeyId string AccessKeyId (https://ak-console.aliyun.com/)
     * @param $accessKeySecret string AccessKeySecret
     * @param $domain string API接口所在域名
     * @param $params array API具体参数
     * @param $security boolean 使用https
     * @param $method boolean 使用GET或POST方法请求,VPC仅支持POST
     * @return bool|\stdClass 返回API接口调用结果,当发生错误时返回false
     */

   
public function request($accessKeyId, $accessKeySecret, $domain, $params, $security=false, $method='POST') {
        $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
.= "&" . $this->encode($key) . "=" . $this->encode($value);
       
}

        $stringToSign
= "${method}&%2F&" . $this->encode(substr($sortedQueryStringTmp, 1));

        $sign
= base64_encode(hash_hmac("sha1", $stringToSign, $accessKeySecret . "&",true));

        $signature
= $this->encode($sign);

        $url
= ($security ? 'https' : 'http')."://{$domain}/";

       
try {
            $content
= $this->fetchContent($url, $method, "Signature={$signature}{$sortedQueryStringTmp}");
           
return json_decode($content);
       
} catch( \Exception $e) {
           
return false;
       
}
   
}

   
private function encode($str)
   
{
        $res
= urlencode($str);
   
.........完整代码请登录后点击上方下载按钮下载查看

网友评论0