<?php

namespace app\sms;


use AlibabaCloud\SDK\Dysmsapi\V20170525\Dysmsapi;
use AlibabaCloud\SDK\Dysmsapi\V20170525\Models\SendSmsRequest;
use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;
use Darabonba\OpenApi\Models\Config;

class AliSms
{
    public static function getInstance($appId,$appKey)
    {
        $config = new Config([
            'accessKeyId' => $appId,
            'accessKeySecret' => $appKey
        ]);

        $config->endpoint = 'dysmsapi.aliyuncs.com';
        return new Dysmsapi($config);
    }

    /** 阿里云发送短信
     *   phone_numbers 手机号码
     *  目前短信验证码模板变量为 code
     *  其他参数根据消息模板传递
     * @param $data
     * @param $type
     * @return array
     */
    public static function sendSms($data,$type = 1)
    {
        $template = env('alisms.template_sms_code');
        if($type == 2) {
            $template = env('alisms.template_issue_code');
        } else if ($type == 3) {
            $template = env('alisms.template_agreement_pay_code');
        }
        $client = self::getInstance(env('alisms.app_id'),env('alisms.app_key'));
        $sms = new SendSmsRequest([]);
        $sms->phoneNumbers = $data['phone_numbers'];
        $sms->templateCode = $template;
        $sms->signName = env('alisms.sign_name');

        $sms->templateParam = json_encode($data);
        $runtime = new RuntimeOptions([]);
        $result = $client->sendSmsWithOptions($sms,$runtime);
        return ['code' => $result->statusCode,'message' => $result->body->message];
    }
}