PHP如何实现阿里云短信sdk灵活应用在项目中

20次阅读

共计 1461 个字符,预计需要花费 4 分钟才能阅读完成。

首先安装

composer require alibabacloud/sdk

接着看 alibabacloud 官网文档

https://packagist.org/package…

示例

My_composer_aliyunsms.php

<?php
// use Swoft\Task\Bean\Annotation\Task;
// use AlibabaCloud\Client\AlibabaCloud;
// use AlibabaCloud\Client\Exception\ClientException;
// use AlibabaCloud\Client\Exception\ServerException;

use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;
use AlibabaCloud\Ecs\Ecs;

/**
 * 阿里信息发送类
 * @Task("ali")
 */
class My_composer_aliyunsms
{
    /**
     * 发送短信验证码
     */
    public function sendCode($config,$phone,$code)
    {
        $param = ['code' => $code];
        AlibabaCloud::accessKeyClient($config['accessKeyId'], $config['accessSecret'])
            ->regionId($config['regionId'])
            ->asGlobalClient();

        try {$result = AlibabaCloud::rpcRequest()
                ->product('Dysmsapi')
                ->version('2017-05-25')
                ->action('SendSms')
                ->method('POST')
                ->options([
                    'query' => [
                        'PhoneNumbers' => $phone,
                        'SignName' => $config['SignName'],
                        'TemplateCode' => $config['TemplateCode'],
                        'TemplateParam' => json_encode($param)
                    ],
                ])
                ->request();
            return $result->toArray();} catch (ClientException $e) {echo $e->getErrorMessage() . PHP_EOL;
        } catch (ServerException $e) {echo $e->getErrorMessage() . PHP_EOL;
        }
    }
}

demo

  include 'My_composer_aliyunsms.php';
  $sms = new My_composer_aliyunsms();
  $phone='xxxxxx';
  $code='99999'; 
  $config =  [
    'accessKeyId' => 'LTAIMje******hS',
    'accessSecret' => 'fMuQTLUrKQN******Z2m07',
    'SignName' => '****',
    'TemplateCode' => 'SMS_****04',
    'regionId' => 'cn-hangzhou'
  ];
  $re = $sms->sendCode($config,$phone,$code);   
  var_dump($re);

正文完
 0