#第一步:安装alibabacloud镜像,PHP版本要大于5.4
composer require alibabacloud/dysmsapi-20170525 4.1.1
#第二步
use AlibabaCloud\SDK\Dysmsapi\V20170525\Dysmsapi;
use AlibabaCloud\Credentials\Credential as AliyunCredential ;
use \Exception as AliyunException;
use AlibabaCloud\Tea\Exception\TeaError;
use AlibabaCloud\Tea\Utils\Utils;
use Darabonba\OpenApi\Models\Config;
use AlibabaCloud\SDK\Dysmsapi\V20170525\Models\SendSmsRequest;
use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;
function createClient(){
$access_config = [
'type' =>'access_key',
'access_key_id'=>'你的key',
'access_key_secret'=>'你的secret'
];
$credential = new AliyunCredential($access_config);
$config = new Config([
"credential" => $credential,
"endpoint" =>"dysmsapi.aliyuncs.com"
]);
return new Dysmsapi($config);
}
/**
*
* */
function getAlibabaCloudMessage($mobile_num,$code,$sms_id){
$client = createClient();
$sendSmsRequest = new SendSmsRequest([
"phoneNumbers" => "{$mobile_num}",
"signName" => "签名",
"templateCode" => "{$sms_id}",
"templateParam" => json_encode(["code" => "{$code}"])
]);
$runtime = new RuntimeOptions([]);
try {
// 复制代码运行请自行打印 API 的返回值
$response = $client->sendSmsWithOptions($sendSmsRequest, $runtime);
$resp = $response->toArray();
$statusCode = $resp['statusCode'];
$code = $resp['body']['Code'];
if(200 == $statusCode && 'OK' == $code){
return 1 ;
}else{
return 0;
}
} catch (Exception $error) {
// if (!($error instanceof TeaError)) {
// $error = new TeaError([], $error->getMessage(), $error->getCode(), $error);
// }
// // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。
// // 错误 message
// var_dump($error->message);
// // 诊断地址
// var_dump($error->data["Recommend"]);
// Utils::assertAsString($error->message);
return 0;
}
}
#调用函数
$mobile_num="手机号";
$code ="验证码"
$sms_id = "模板id";
getAlibabaCloudMessage($mobile_num,$code,$sms_id)
其中有一点需要注意的是:
文档中参数是:accessKeyId,但是实际上的参数命名规则为access_key_id。
通过配置Credentials实现OpenAPI安全调用(PHP SDK)_阿里云SDK(Alibaba Cloud SDK)-阿里云帮助中心