阿里云(国际版)官方文档:https://www.alibabacloud.com/help/zh/doc-detail/106583.htm?spm=a2c63.p38356.b99.20.73517f303V0IAm
注意:阿里云账号分(国内版、国际版),不同账号发送短信sdk不一样的
下载sdk速度较慢,一定要耐心等待
坑点一:国际版下载sdk是通过composer命令下载的(也有其他方式,本人未试),如果你使用的是TP框架,通过composer命令下载,可能会与你框架的【composer.json、composer.lock这个两个文件的原因导致你下载失败】
坑点一【解决方式】:单独找一个空文件夹通过composer命令下载下来,放入你框架的第三方文件下面或者vendor文件夹下面即可引入使用
composer下载sdk命令:
composer require alibabacloud/client
sdk下载下来会出现下面2个文件一个文件夹
接下来我们创建一个demo.php文件,里面代码可以去官方文档里面复制
https://www.alibabacloud.com/help/zh/doc-detail/164747.htm?spm=a2c63.p38356.b99.33.5ce85964ssikJc
下面是demo.php文件代码:
特别注意:一定要通过 “require_once”引入你下载的sdk里面的 vendor 文件夹下面的 autoload.php,否则你会找不到你实例化不了下面使用的类
require_once dirname(__DIR__) . '/aliyun_sdk_guojiban/vendor/autoload.php';
<?php
require_once dirname(__DIR__) . '/aliyun_sdk_guojiban/vendor/autoload.php';
use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;
class Aliyungj
{
/*国际--不需要模板code和签名,短信模板自己定义*/
public function sendSms($phone,$code){
AlibabaCloud::accessKeyClient($accessKeyId,$accessKeySecret)
->regionId('ap-southeast-1')
->asGlobalClient();
$code = '驗證碼: '.$code.', 十分鐘內輸入, 請勿泄露給其他人';//此处是短信模板,国外模板是自己定义的,所以不需要模板code和签名
try {
$result = AlibabaCloud::rpcRequest()
->product('Dysmsapi')
->host('dysmsapi.ap-southeast-1.aliyuncs.com')
->version('2018-05-01')
->action('SendMessageToGlobe')//请求api接口名称
->method('POST')
->options([
'query' => [
"To" => "$phone",//接收手机号
"Message" => $code,//接收的验证码
],
])
->request();
return \GuzzleHttp\json_decode($result);
} catch (ClientException $e) {
echo $e->getErrorMessage() . PHP_EOL;
} catch (ServerException $e) {
echo $e->getErrorMessage() . PHP_EOL;
}
}
/*国内--需要模板code和签名*/
public function gn_sendSms($phone,$code){
AlibabaCloud::accessKeyClient('$accessKeyId', '$accessKeySecret')
->regionId('ap-southeast-1')
->asGlobalClient();
try {
$result = AlibabaCloud::rpcRequest()
->product('Dysmsapi')
->host('dysmsapi.ap-southeast-1.aliyuncs.com')
->version('2018-05-01')
->action('SendMessageWithTemplate')//请求api接口名称
->method('POST')
->options([
'query' => [
"From" => "",//签名
"TemplateCode" => "",//模板code
"To" => "$phone",//接收手机号
"TemplateParam" => '{"code":"'.$code.'"}',//验证码
],
])
->request();
return \GuzzleHttp\json_decode($result);
} catch (ClientException $e) {
echo $e->getErrorMessage() . PHP_EOL;
} catch (ServerException $e) {
echo $e->getErrorMessage() . PHP_EOL;
}
}
}
$Aliyungj = new Aliyungj;
$phone = '';//记得加上某国家区号【此方式仅支持国外手机号发送验证码】
$code = '1111';
//$res = $Aliyungj->sendSms($phone,$code);
$res = $Aliyungj->gn_sendSms($phone,$code);
var_dump($res);
下面是官方api调用的其他接口,根据不同api接口请求参数,修改上面demo请求参数和请求接口名称
https://www.alibabacloud.com/help/zh/doc-detail/162279.htm?spm=a2c63.p38356.b99.17.3a29bf11Cm9JBo