composer安装SDK:
composer require alibabacloud/dysmsapi-20170525 2.0.22
也可以下载SDK包手动安装,下面是api接口文档:阿里云 OpenAPI 开发者门户
调用接口前,请申请短信签名和短信模板,并确保签名和模板已审核通过。
测试时可以领取阿里云短信免费试用套餐包使用
阿里云试用中心_云服务器试用_企业试用场景_开发者云产品试用
完整代码
/*** 使用AK&SK初始化账号Client* @param string $accessKeyId* @param string $accessKeySecret* @return Dysmsapi Client*/public static function createClient($accessKeyId, $accessKeySecret){$config = new Config([// 您的 AccessKey ID"accessKeyId" => $accessKeyId,// 您的 AccessKey Secret"accessKeySecret" => $accessKeySecret]);// 访问的域名$config->endpoint = "dysmsapi.aliyuncs.com";return new Dysmsapi($config);}/*** @notes 发送短信*/public static function sendSms($phone_numbers,$template_param,$params){$client = self::createClient("accessKeyId", "accessKeySecret");$sendSmsRequest = new SendSmsRequest(["phoneNumbers" => $phone_numbers,//接收短信的手机号码"signName" => "signName",//短信签名名称。"templateCode" => $params['template_code'],//短信模板CODE。"templateParam" => json_encode($template_param, JSON_UNESCAPED_UNICODE)//短信模板变量对应的实际值。]);$runtime = new RuntimeOptions([]);try {//发送短信$result = $client->sendSmsWithOptions($sendSmsRequest, $runtime);if ($result->body->code == 'OK') {//发送成功操作return true;}else {//发送失败操作return false;}} catch (Exception $error) {if (!($error instanceof TeaError)) {$error = new TeaError([], $error->getMessage(), $error->getCode(), $error);}return false;}}/*** @notes 查询发送详情*/public static function querySendDetail($client,$runtime,$phone_numbers,$bizId){$querySendDetailsRequest = new QuerySendDetailsRequest(["phoneNumber" => $phone_numbers,//接收短信的手机号码"sendDate" => date('Ymd',time()),//短信发送日期"pageSize" => 15,//指定每页显示的短信记录数量。"currentPage" => 1,//指定发送记录的当前页码。"bizId" => $bizId//发送回执ID,即发送流水号]);return $client->querySendDetailsWithOptions($querySendDetailsRequest, $runtime);}
正常返回示例
{"Code": "OK",//请求状态码;返回OK代表请求成功。"Message": "OK",//状态码的描述。"BizId": "9006197469364984****",//发送回执ID。"RequestId": "F655A8D5-B967-440B-8683-DAD6FF8DE990"//请求ID。
}