php thinkphp 阿里云(国际版)短信发送 中国大陆和国外

27 篇文章 1 订阅
4 篇文章 0 订阅

阿里云(国际版)官方文档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

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是使用 ThinkPHP 集成阿里云 OSS 的代码示例: 1. 安装阿里云 OSS SDK 在项目根目录下的 `composer.json` 文件中添加阿里云 OSS SDK 的依赖: ``` "require": { "aliyuncs/oss-sdk-php": "^2.5" } ``` 然后执行 `composer install` 来安装依赖。 2. 配置阿里云 OSS 在 `config` 目录下新建 `oss.php` 配置文件,并添加以下内容: ```php return [ 'access_key_id' => 'your_access_key_id', 'access_key_secret' => 'your_access_key_secret', 'bucket' => 'your_bucket_name', 'endpoint' => 'your_endpoint', ]; ``` 其中,`access_key_id` 和 `access_key_secret` 是您的阿里云账号的 Access Key ID 和 Access Key Secret,`bucket` 是您的 OSS 存储桶名称,`endpoint` 是您的 OSS 访问域名。 3. 初始化阿里云 OSS 在 `app` 目录下新建 `common.php` 文件,并添加以下内容: ```php use OSS\OssClient; if (!function_exists('oss')) { function oss() { $config = config('oss'); $ossClient = new OssClient( $config['access_key_id'], $config['access_key_secret'], $config['endpoint'] ); return $ossClient; } } ``` 这里我们使用了一个自定义的全局函数 `oss()` 来初始化阿里云 OSS 客户端。 4. 上传文件到阿里云 OSS ```php use OSS\Core\OssException; try { $result = oss()->uploadFile( $bucket, $object, $file ); } catch (OssException $e) { // 处理异常 } ``` 其中,`$bucket` 是您的 OSS 存储桶名称,`$object` 是上传到 OSS 的文件路径和文件名,`$file` 是本地要上传的文件路径。 5. 下载文件 ```php use OSS\Core\OssException; try { oss()->getObject( $bucket, $object, $options ); } catch (OssException $e) { // 处理异常 } ``` 其中,`$bucket` 是您的 OSS 存储桶名称,`$object` 是要下载的文件路径和文件名,`$options` 是一个可选的参数数组,用于指定下载文件的一些选项,比如 `fileDownload` 用于指定下载时的文件名。 以上是使用 ThinkPHP 集成阿里云 OSS 的基本操作示例。如果您需要进行其他操作,可以参考阿里云 OSS SDK 的文档和 API 参考。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

昊喵喵博士

大哥你真帅,小姐姐你真漂亮

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值