-- 创造无限可能

thinkphp使用阿里大于发送短信

2024-08-25 16:22:50
657 人浏览 0 人点赞
有用,点赞支持一下

本文是使用htinkphp6 + 阿里大于发送短信的使用案例

在接口中使用到了”alibabacloud/sdk”: “^1.8” 的sdk,需要在此之前事先通过composer安装



/**
     * 发送短信
     * @param string $mobile 手机号码
     * @param array $templateParam 设置短信模板参数
     * @param string $templateCode 模板code
     * @return bool 是否发送成功
     */
    public function sendVerifySms($mobile, $templateParam, $templateCode)
    {
        try {
            //获取配置信息
            $config = [
                    'access_key_id' => 'xxx',
                    'access_key_secret' => 'xxxx',
                    'sign_name' => 'xx平台',
                    'template_code' => [
                        'verify' => 'xxx',
                    ]
                ];

            // 创建客户端
            AlibabaCloud::accessKeyClient($config['access_key_id'], $config['access_key_secret'])
                ->regionId('cn-hangzhou')
                ->asDefaultClient();


            //调用阿里云短信发送接口
            $result = AlibabaCloud::rpc()
                ->product('Dysmsapi')
                //可根据实际情况选择不同的服务地区
                ->regionId('cn-hangzhou')
                ->version('2017-05-25')
                ->action('SendSms')
                ->method('POST')
                ->host('dysmsapi.aliyuncs.com')
                ->options([
                    'query' => [
                        'RegionId' => 'cn-hangzhou',
                        'PhoneNumbers' => $mobile,
                        'SignName' => $config['sign_name'],
                        'TemplateCode' => $templateCode,
                        'TemplateParam' => json_encode($templateParam),
                    ],
                ])
                ->request();

            //判断短信发送状态
            if ($result->toArray()['Code'] == 'OK') {
                return true;
            } else {
                return false;
            }
        } catch (ClientException|ServerException $e) {
            return false;
        }
    }