小新的笔记 下定决心,不怕牺牲,排除万难,去争取胜利。——毛泽东
博主 小新的笔记
粤ICP备2024299964号博主 2024年10月28日 在线自豪地使用 Typecho 建站搭配使用 🌻Sunny 主题当前在线 1 人
歌曲封面 未知作品

粤ICP备2024299964号

网站已运行 1 年 101 天 17 小时 39 分

Powered by Typecho & Sunny

2 online · 42 ms

Title

PHP阿里云短信服务

小新

·

·

465次阅读
PHP
Article
⚠️ 本文最后更新于2024年08月14日,已经过了473天没有更新,若内容或图片失效,请留言反馈

今天是对接阿里云短信的案例

先用composer安装插件包

♾️ text 代码:
composer require alibabacloud/client

简单封装一下

♾️ text 代码:
<?php


namespace app\tools;

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

class Alisms
{
    //配置
    protected $config = [];

    public function __construct($config)
    {
        $this->config = $config;
    }

    /**
     * 发送
     * @param string $phone 接收短信的手机号码
     * @param string $content 短信内容(json)
     * @return array
     * @throws ClientException
     */
    public function send($template, $phone = '', $content = '')
    {
        AlibabaCloud::accessKeyClient($this->config['AccessKeyId'], $this->config['accessSecret'])
            ->regionId('cn-hangzhou')
            ->asDefaultClient();

        try {
            $result = AlibabaCloud::rpc()
                ->product('Dysmsapi')
                // ->scheme('https') // https | http
                ->version('2017-05-25')
                ->action('SendSms')
                ->method('POST')
                ->host('dysmsapi.aliyuncs.com')
                ->options([
                    'query' => [
                        'PhoneNumbers' => $phone,
                        'SignName' => $this->config['SignName'],
                        'TemplateCode' => $template,
                        'TemplateParam' => $content,
                        'RegionId' => $this->config['RegionId'],
                    ],
                ])
                ->request();
            if ($result['Code'] == 'OK' || $result['Message'] == 'ok') {
                return ['code' => 0, 'msg'=>'发送成功'];
            } else {
                return ['code' => 4003, 'msg'=>$result['Message']];
            }
        } catch (ClientException $e) {
            return ['code' => 500, 'msg'=>$e->getErrorMessage()];
        } catch (ServerException $e) {
            return ['code' => 500, 'msg'=>$e->getErrorMessage()];
        }
    }
}

调用

♾️ text 代码:
//配置
$config = [
    'AccessKeyId' => '',
    'accessSecret' => '',
    'SignName' => '',
    'RegionId' => ''
];

//生成验证码
$auth_code = rand(1000,9999);

//短信模板
$template = '';

//发送内容,要根据实际的模板内容(验证码)
$content = json_encode(['code'=>$auth_code]);

$sms = new Alisms($config);
$result = $sms->send($template, $phone, $content);

if ($result['code'] != 0) {
    return api_json_return(500, '发送短信失败,请联系管理员');
}

return api_json_return(0, '发送成功');
现在已有 0 条评论,0 人点赞

广告

页底广告 页底广告
Comment:共0条
发表
搜 索 消 息 足 迹
你还不曾留言过..
你还不曾留下足迹..
博主 不再显示
博主