package com.hfkj.config;

import com.alibaba.fastjson.JSONObject;
import com.aliyun.dysmsapi20170525.models.SendSmsRequest;
import com.aliyun.dysmsapi20170525.models.SendSmsResponse;
import com.aliyun.teaopenapi.models.Config;
import com.aliyun.dysmsapi20170525.Client;

public class AliMessageConfig {

    public static Client createClient() throws Exception {
        Config config = new Config()
                // 配置 AccessKey ID，请确保代码运行环境配置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID。
                .setAccessKeyId("LTAI5t6NiC7A5wpoo8hDTNaf")
                // 配置 AccessKey Secret，请确保代码运行环境配置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_SECRET。
                .setAccessKeySecret("9vrRslWwaLvpwY1aMZUt0gQEHR28oK");
        // System.getenv()方法表示获取系统环境变量，不要直接在getenv()中填入AccessKey信息。

        // 配置 Endpoint。中国站请使用dysmsapi.aliyuncs.com
        config.endpoint = "dysmsapi.aliyuncs.com";

        return new Client(config);
    }

    public static SendSmsResponse sendSmsCode(String phone, String code) throws Exception{
        // 初始化请求客户端
        Client client = AliMessageConfig.createClient();

        JSONObject jsonObject = new JSONObject();
        jsonObject.put("code",code);
        jsonObject.put("number",phone);

        // 构造API请求对象，请替换请求参数值
        SendSmsRequest sendSmsRequest = new SendSmsRequest()
                .setPhoneNumbers(phone)
                .setSignName("重庆惠付科技有限公司")
                .setTemplateCode("SMS_481195265")
                // TemplateParam为序列化后的JSON字符串。其中\"表示转义后的双引号。
                .setTemplateParam(jsonObject.toJSONString());

        // 获取响应对象

        return client.sendSms(sendSmsRequest);
    }
}
