//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//

package com.hand.app.esignHclc.utils;

import com.baidu.aip.ocr.AipOcr;
import com.hand.app.esignHclc.dto.SignInfoHclc;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import java.security.SecureRandom;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Map.Entry;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.Mac;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import net.sf.json.JSONObject;
import org.apache.commons.codec.binary.Base64;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.message.BasicHeader;

public class SignHclcUtils {
    public static final String APP_ID = "18653557";
    public static final String API_KEY = "VD5jNFLsuBQE4vvjTtQoKQtt";
    public static final String SECRET_KEY = "Bx1O0kQ7W9YDprTOaLr2MPcPupsn7w7z";

    public SignHclcUtils() {
    }

    public static SignInfoHclc initProject(SignInfoHclc info, String appId, String secret, String notifyUrl) {
        info.setAppId(appId);
        info.setSecret(secret);
        info.setNotifyUrl(notifyUrl);
        return info;
    }

    public String postString(String urls, String json, Map<String, String> headInfo) {
        HttpClient client = HttpClientBuilder.create().build();
        HttpPost post = new HttpPost(urls);
        post.setHeader("Content-Type", "application/json");
        String result = "";

        try {
            StringEntity s = new StringEntity(json, "utf-8");
            s.setContentEncoding(new BasicHeader("Content-Type", "application/json"));
            if (Objects.nonNull(headInfo)) {
                Iterator var8 = headInfo.entrySet().iterator();

                while(var8.hasNext()) {
                    Entry<String, String> entry = (Entry)var8.next();
                    post.setHeader((String)entry.getKey(), (String)entry.getValue());
                }
            }

            post.setEntity(s);
            HttpResponse httpResponse = client.execute(post);
            InputStream inStream = httpResponse.getEntity().getContent();
            BufferedReader reader = new BufferedReader(new InputStreamReader(inStream, "utf-8"));
            StringBuilder strber = new StringBuilder();
            String line = null;

            while((line = reader.readLine()) != null) {
                strber.append(line + "\n");
            }

            inStream.close();
            result = strber.toString();
            if (httpResponse.getStatusLine().getStatusCode() == 200) {
                System.out.println("请求服务器成功");
            } else {
                System.out.println("请求服务端失败");
            }

            return result;
        } catch (Exception var13) {
            var13.printStackTrace();
            throw new RuntimeException(var13);
        }
    }

    public String getJSON(String url) {
        try {
            URL thisurl = new URL(url);
            HttpURLConnection connection = (HttpURLConnection)thisurl.openConnection();
            connection.connect();
            BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
            StringBuilder sb = new StringBuilder();

            String line;
            while((line = br.readLine()) != null) {
                sb.append(line);
            }

            br.close();
            connection.disconnect();
            return sb.toString();
        } catch (Exception var7) {
            var7.printStackTrace();
            return null;
        }
    }

    public String aes(String key, String res) {
        try {
            KeyGenerator kg = KeyGenerator.getInstance("AES");
            byte[] keyBytes = key.getBytes("utf-8");
            kg.init(128, new SecureRandom(keyBytes));
            SecretKey sk = kg.generateKey();
            SecretKeySpec sks = new SecretKeySpec(sk.getEncoded(), "AES");
            Cipher cipher = Cipher.getInstance("AES");
            cipher.init(1, sks);
            byte[] resBytes = res.getBytes("utf-8");
            String data = this.parseByte2HexStr(cipher.doFinal(resBytes));
            return data;
        } catch (Exception var10) {
            var10.printStackTrace();
            throw new RuntimeException(var10);
        }
    }

    private String parseByte2HexStr(byte[] buf) {
        StringBuffer sb = new StringBuffer();

        for(int i = 0; i < buf.length; ++i) {
            String hex = Integer.toHexString(buf[i] & 255);
            if (hex.length() == 1) {
                hex = '0' + hex;
            }

            sb.append(hex.toUpperCase());
        }

        return sb.toString();
    }

    public String signString(String secKey, String data) {
        try {
            String srcStr = "secKey=" + secKey + "&data=" + data;
            SecretKeySpec keySpec = new SecretKeySpec(secKey.getBytes("UTF-8"), "HmacSHA1");
            Mac mac = Mac.getInstance("HmacSHA1");
            mac.init(keySpec);
            byte[] signBytes = mac.doFinal(srcStr.getBytes("UTF-8"));
            String appSec = Base64.encodeBase64String(signBytes);
            return appSec;
        } catch (Exception var8) {
            var8.printStackTrace();
            throw new RuntimeException(var8);
        }
    }

    public static String getStr(String url, String param) {
        String result = "";
        BufferedReader in = null;

        try {
            String urlNameString = url + "?" + param;
            URL realUrl = new URL(urlNameString);
            URLConnection connection = realUrl.openConnection();
            connection.setRequestProperty("accept", "*/*");
            connection.setRequestProperty("connection", "Keep-Alive");
            connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
            connection.connect();
            Map<String, List<String>> map = connection.getHeaderFields();

            String line;
            for(in = new BufferedReader(new InputStreamReader(connection.getInputStream())); (line = in.readLine()) != null; result = result + line) {
                ;
            }
        } catch (Exception var17) {
            System.out.println("发送GET请求出现异常！" + var17);
            var17.printStackTrace();
        } finally {
            try {
                if (in != null) {
                    in.close();
                }
            } catch (Exception var16) {
                var16.printStackTrace();
            }

        }

        return result;
    }

    public String getFaceApiToken(String faceApiUrl, String appId, String secret) {
        String token = null;

        try {
            SignHclcUtils signHclcUtils = new SignHclcUtils();
            String param = "appId=" + appId + "&secret=" + secret + "&grantType=client_credentials";
            String stringResult = getStr(faceApiUrl, param);
            JSONObject json2 = JSONObject.fromObject(stringResult);
            if (json2.get("code").toString().equalsIgnoreCase("0")) {
                JSONObject data = JSONObject.fromObject(json2.get("data"));
                token = data.getString("token");
            }

            return token;
        } catch (Exception var10) {
            var10.printStackTrace();
            return token;
        }
    }

    public com.alibaba.fastjson.JSONObject idcard(String filePath) {
        AipOcr client = new AipOcr("18653557", "VD5jNFLsuBQE4vvjTtQoKQtt", "Bx1O0kQ7W9YDprTOaLr2MPcPupsn7w7z");
        HashMap<String, String> options = new HashMap();
        options.put("detect_direction", "true");
        options.put("detect_risk", "false");
        String idCardSide = "front";
        org.json.JSONObject res = client.idcard(filePath, idCardSide, options);
        System.out.println(res);
        com.alibaba.fastjson.JSONObject jsonObject = new com.alibaba.fastjson.JSONObject();
        if (Objects.nonNull(res.get("words_result").toString())) {
            com.alibaba.fastjson.JSONObject jsonObjectRes = com.alibaba.fastjson.JSONObject.parseObject(res.get("words_result").toString());
            Iterator var8 = jsonObjectRes.keySet().iterator();

            while(var8.hasNext()) {
                String str = (String)var8.next();
                String value = "";
                if (!jsonObjectRes.get(str).toString().equalsIgnoreCase("") && Objects.nonNull(jsonObjectRes.get(str).toString())) {
                    value = com.alibaba.fastjson.JSONObject.parseObject(jsonObjectRes.get(str).toString()).get("words").toString();
                    jsonObject.put(str, value);
                }
            }
        }

        return jsonObject;
    }
}
