<?php

namespace app\utility;

use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;
use think\facade\Log;

class SendSms
{

    public function send($toNum, $content, $accessKey, $secret)
    {

        try {
            // LTAI5t66pUgcFJBMGHamFoxJ
            // BxHnmVDiXvOrnxbAfOPvP6jibJL6pp
            AlibabaCloud::accessKeyClient($accessKey, $secret)
                ->regionId('ap-southeast-1')
                ->asDefaultClient();

            $result = AlibabaCloud::rpcRequest()
                ->product('Dysmsapi')
                ->host('dysmsapi.ap-southeast-1.aliyuncs.com')
                ->version('2018-05-01')
                ->action('SendMessageToGlobe')
                ->method('POST')
                ->options([
                    'query' => [
                        "To" => $toNum,
                        "Message" => $content,
                    ],
                ])
                ->request();

            $res = $result->toArray();

            Log::error("----sms_send-----".json_encode([$res]));
            if(!isset($res['ResponseCode']) || $res['ResponseCode'] != 'OK'){
                trace('短信发送失败00_'.json_encode([$res]), 'error');
            }
            return true;

        }catch (ClientException $clientException) {
            trace('短信发送失败01_'.$clientException->getMessage(), 'error');
        }catch (ServerException $serverException) {
            trace('短信发送失败02_'.$serverException->getMessage(), 'error');
        }catch (\Exception $exception) {
            trace('短信发送失败03_'.$exception->getMessage(), 'error');
        }

        return false;
    }
}