ThinkPHP5对接阿里云短信服务

1、下载阿里云 PHP SDK

点击前往下载
下载完成放在 extend 目录下

2、修改文件

ThinkPHP5对接阿里云短信服务_第1张图片
修改api_demo内SmsDemo.php的命名空间

namespace aliyun\api_demo;

此方法去掉 static 改为非静态方法

public function sendSms($mobile, $code)
{
     // 初始化SendSmsRequest实例用于设置发送短信的参数
     $request = new SendSmsRequest();

     //可选-启用https协议
     //$request->setProtocol("https");

     // 必填,设置短信接收号码
     $request->setPhoneNumbers($mobile);

     // 必填,设置签名名称,应严格按"签名名称"填写,请参考: https://dysms.console.aliyun.com/dysms.htm#/develop/sign
     $request->setSignName("");

     // 必填,设置模板CODE,应严格按"模板CODE"填写, 请参考: https://dysms.console.aliyun.com/dysms.htm#/develop/template
     $request->setTemplateCode("");

     // 可选,设置模板参数, 假如模板中存在变量需要替换则为必填项
     $request->setTemplateParam(json_encode(array(  // 短信模板中字段的值
         "code" => $code,
         "product" => "dsd"
     ), JSON_UNESCAPED_UNICODE));

     // 可选,设置流水号
     $request->setOutId("yourOutId");

     // 选填,上行短信扩展码(扩展码字段控制在7位或以下,无特殊需求用户请忽略此字段)
     $request->setSmsUpExtendCode("1234567");

     // 发起访问请求
     $acsResponse = static::getAcsClient()->getAcsResponse($request);

     return $acsResponse;
}

注释掉该文件末尾的调用示例代码

// 调用示例:
//set_time_limit(0);
//header('Content-Type: text/plain; charset=utf-8');
//
//$response = SmsDemo::sendSms();
//echo "发送短信(sendSms)接口返回的结果:\n";
//print_r($response);
//
//sleep(2);
//
//$response = SmsDemo::sendBatchSms();
//echo "批量发送短信(sendBatchSms)接口返回的结果:\n";
//print_r($response);
//
//sleep(2);
//
//$response = SmsDemo::querySendDetails();
//echo "查询短信发送情况(querySendDetails)接口返回的结果:\n";
//print_r($response);
3、控制器调用
// 引入
use aliyun\api_demo\SmsDemo;

public function send()
{
	$code = rand(1000, 9999);
	$mobile = 123456789;
	$Sms = new SmsDemo();
	$send = $Sms->sendSms($mobile, $code);
}

你可能感兴趣的:(PHP,#,ThinkPHP,V5)