package com.hzya.frame.bip.v3.v2207.util;

import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpRequest;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;

/**
 * com.hzya.frame.bip.v3.v2207.util
 *
 * @author makejava
 * @date 2024-05 -30 14:20
 */

public class BipUtil {
    /**
     *
     * @content 发送单据到BIP系统
     * @author laborer
     * @date 2024/6/21 0021 10:51
     *
     */

    public static String sendU9cTOBipEsb(String parm, String apiCode,String token){
        String baseUrl = "http://127.0.0.1:9999/kangarooDataCenterV3/entranceController/externalCallInterface";
        System.out.println("推送参数"+parm);
        String result = HttpRequest.post(baseUrl)
                .header("appId", "800023")//头信息，多个头信息多次调用此方法即可
                .header("access_token", token)//头信息，多个头信息多次调用此方法即可
                .header("apiCode", apiCode)//头信息，多个头信息多次调用此方法即可
                .header("publicKey", "ZJYA1vBeY1ai53iNmbAEsw6DImjkXGBkdMailxcBdliFC85Ce7eDIk+3zDUT+v578prj")//头信息，多个头信息多次调用此方法即可
                .header("secretKey", "7Gp6OjHrIaQ6R3tXGPrI4morjQyWL+qu4JJschQnkBRtv26VDgGFVYKOy5kMZfd/j3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA=")//头信息，多个头信息多次调用此方法即可
                .body(parm)//表单内容
                .timeout(20000)//超时，毫秒
                .execute().body();
        System.out.println("返回参数"+result);
        if(StrUtil.isNotEmpty(result)){
            return analytic(result);
        }
        return null;
    }
    public static String getBipToken(String userCode, String apiCode){
        String baseUrl = "http://127.0.0.1:9999/kangarooDataCenterV3/entranceController/externalCallInterface";
        String result = HttpRequest.post(baseUrl)
                .header("appId", "800023")//头信息，多个头信息多次调用此方法即可
                .header("apiCode", apiCode)//头信息，多个头信息多次调用此方法即可
                .header("usercode", userCode)//头信息，多个头信息多次调用此方法即可
                .header("publicKey", "ZJYA1vBeY1ai53iNmbAEsw6DImjkXGBkdMailxcBdliFC85Ce7eDIk+3zDUT+v578prj")//头信息，多个头信息多次调用此方法即可
                .header("secretKey", "7Gp6OjHrIaQ6R3tXGPrI4morjQyWL+qu4JJschQnkBRtv26VDgGFVYKOy5kMZfd/j3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA=")//头信息，多个头信息多次调用此方法即可
                .body("")//表单内容
                .timeout(20000)//超时，毫秒
                .execute().body();
        System.out.println("返回参数"+result);
        if(StrUtil.isNotEmpty(result)){
             JSONObject obj = JSON.parseObject( analytic(result));
            JSONObject data = obj.getJSONObject("data");
            return data.getString("access_token");
        }
        return null;
    }
    public static String analytic(String parm){
        JSONObject main = JSON.parseObject(parm);
        return main.getString("attribute");
    }
}
