阿里云短信服务(新版)开发——Thinkphp

阿里云短信服务(新版)开发——Thinkphp


开发需要用到的几个网址
安装方法: https://github.com/aliyun/openapi-sdk-php-client/blob/master/docs/en-US/1-Installation.md
手册: https://help.aliyun.com/product/44282.html?spm=a2c4g.11186623.6.540.22cb56e0h2lfav
测试地址: https://api.aliyun.com/new?spm=a2c4g.11186623.2.13.535119d9WDNbMg#/?product=Dysmsapi
短信服务控制台: https://dysms.console.aliyun.com/dysms.htm

1. 安装:

我是直接下载的 .zip 文件,也可以直接Composer安装。无论哪种方式,最终会得到如下的文件
阿里云短信服务(新版)开发——Thinkphp_第1张图片
把文件重命名为Aliyun放在tp框架vendor中,并且创建一个Aliyun.php,文件结构如下。
阿里云短信服务(新版)开发——Thinkphp_第2张图片

2. 封装一个简单的类

Aliyun.php:


require __DIR__ . '/vendor/autoload.php';
use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;

class Aliyun
{
    /**
     * 验证accessKeyId,accessSecret
     */
    public function __construct()
    {
        AlibabaCloud::accessKeyClient('你的accessKeyId', '你的accessSecret')
            ->asDefaultClient();
    }

    /**
     * 短信发送
     * @param     [number]        $PhoneNumbers   [手机号]
     * @param     [string]        $SignName       [短信签名名称]
     * @param     [string]        $TemplateCode   [短信模板ID]
     * @param     [json]          $TemplateParam  [模板内容参数] 如{"code":"1111"}
     * @return    [json]          成功返回 {"Message": "OK","RequestId": "A1FA52EF-10D4-432B-8AF3-C87A1F2F1E11","BizId": "636214959618469190^0","Code": "OK"}
     */
    public function send($PhoneNumbers, $SignName, $TemplateCode, $TemplateParam)
    {
        try {
            $result = AlibabaCloud::rpc()
                ->regionId('cn-beijing')
                ->product('Dysmsapi')
                ->version('2017-05-25')
                ->action('SendSms')
                ->method('POST')
                ->options([
                    'query' => [
                        'PhoneNumbers' => $PhoneNumbers,
                        'SignName' => $SignName,
                        'TemplateCode' => $TemplateCode,
                        'TemplateParam' => $TemplateParam,
                    ],
                ])->request();
            //成功返回json
            return $result;
        } catch (ClientException $e) {
            return $e->getErrorMessage();
        } catch (ServerException $e) {
            return $e->getErrorMessage();
        }
    }
}

Api中链式操作方法的参数可以参考以下网址
https://help.aliyun.com/document_detail/101414.html?spm=a2c4g.11186623.2.11.2a273e2cUWTzJB

3. 短信签名和模板的配置
该短信接口无法非常自由的定义短信内容,签名和模板都需要平台审核。
进入阿里云短信服务控制台,左侧菜单栏中找到国内消息,就可以看到‘签名管理’和‘模板管理’了。
阿里云短信服务(新版)开发——Thinkphp_第3张图片
阿里云短信服务(新版)开发——Thinkphp_第4张图片

你可能感兴趣的:(接口开发)