Alibaba Cloud SDK for PHP
地址:https://github.com/aliyun/openapi-sdk-php
composer安装
composer require alibabacloud/sdk
Thinkphp6.0实例
创建Model
AlibabaCloudModel.php
<?php
declare (strict_types = 1);
namespace app\common\model;
use think\Db;
use think\facade\Request;
use think\Model;
use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;
// Download:https://github.com/aliyun/openapi-sdk-php
// Usage:https://github.com/aliyun/openapi-sdk-php/blob/master/README.md
/**
* @mixin think\Model
*/
class AlibabaCloudModel extends Model
{
public static $SignName = '签名';
public static $AccessKeyId = '阿里云key';
public static $AccessKeySecret = '阿里云secret';
public static function sendSms($phone,$code=''){
AlibabaCloud::accessKeyClient(self::$AccessKeyId, self::$AccessKeySecret)
->regionId('cn-hangzhou')
->asDefaultClient();
try {
if(empty($code)){
$code = rand(1000,9999);
}
$param = [
'code' => $code
];
$insertData = [
'code' => $code,
'phone' => $phone,
'ip' => get_client_ip(),
'send_time' => time(),
'flag' => 1,
'type' => 1,
'isuse' => 0,
'status' => 1
];
SmsModel::create($insertData);
$result = AlibabaCloud::rpc()
->product('Dysmsapi')
// ->scheme('https') // https | http
->version('2017-05-25')
->action('SendSms')
->method('POST')
->host('dysmsapi.aliyuncs.com')
->options([
'query' => [
'RegionId' => "cn-hangzhou",
'PhoneNumbers' => $phone,
'SignName' => self::$SignName,
'TemplateCode' => "SMS_182666989",
'TemplateParam' => json_encode($param),
],
])
->request();
return $result->toArray();
} catch (ClientException $e) {
echo $e->getErrorMessage() . PHP_EOL;
} catch (ServerException $e) {
echo $e->getErrorMessage() . PHP_EOL;
}
}
}sendSms方法中需要注意的参数有:
PhoneNumbers:发送的手机号码
SignName:签名
TemplateCode:短信模板
TemplateParam:发送短信参数