阿里云短信服务api

来源:互联网 发布:西南交通大学网络教学 编辑:程序博客网 时间:2024/05/18 01:07

开发时遇到的短信发送,阿里云还是不错的,然后写了一个demo.

阿里云短信api地址:https://market.aliyun.com/products/57002003/cmapi011900.html?spm=5176.2020520132.101.17.eMGM7d

可参考阿里云里面的详细介绍

1. 设置短信签名和模板

2. 调用短信服务API(获取AppCode或者AppKey&AppSecret及设置的模板和签名)

下面是PHP版本的栗子:

/**     * 发送短信动作     */    public function Send($phone, $code) {        $app_key = '';        $app_secret = '';        $request_paras = array(            'ParamString' => '{"name":"' . $code . '"}',            'RecNum' => $phone,            'SignName' => '',            'TemplateCode' => ''        );        $request_host = "http://sms.market.alicloudapi.com";        $request_uri = "/singleSendSms";        $request_method = "GET";        $info = "";        $content = $this->do_get($app_key, $app_secret, $request_host, $request_uri, $request_method, $request_paras, $info);        $content = json_decode($content, true);        return $content;// API返回值//        dump($info);  // 系统请求返回信息    }//发送短信    public 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;    }


原创粉丝点击