Yii2阿里短信发送

	// 阿里云发送短信
	public function aliSend($code,$phone){
        $app_key = Yii::$app->params['aliyun']['sms']['appKey'];
        $app_secret = Yii::$app->params['aliyun']['sms']['appSecret'];
        $request_paras = array(
        		'ParamString' => '{"code":"'.$code.'"}',
                'RecNum' => $phone,
                'SignName' =>'买时间', 
                'TemplateCode' => 'SMS_******'
                );
        $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);
        // var_dump($request_paras);exit();
        if ($content=='{"success":true}') {
        	return true; // API返回值v
        }
        return false; // API返回值
        # print_r($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);
	    // var_dump($ch);exit();
	    $ret = curl_exec($ch);
	    $info = curl_getinfo($ch);
	    curl_close($ch);
	    // var_dump($ret);exit();
	    return $ret;
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Spicy姜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值