国际版)短信发送 中国大陆和国外"/>
php thinkphp 阿里云(国际版)短信发送 中国大陆和国外
阿里云(国际版)官方文档:.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文件,里面代码可以去官方文档里面复制
.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';
<?phprequire_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')->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')->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请求参数和请求接口名称
.htm?spm=a2c63.p38356.b99.17.3a29bf11Cm9JBo
更多推荐
php thinkphp 阿里云(国际版)短信发送 中国大陆和国外
发布评论