KKSU
2024-01-17 638d2a31d32c8dc580dba0a49c97bbca866ba783
src/test/java/cc/mrbird/febs/ProfitTest.java
@@ -1,38 +1,55 @@
package cc.mrbird.febs;
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.common.enumerates.DataDictionaryEnum;
import cc.mrbird.febs.common.enumerates.FlowTypeEnum;
import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum;
import cc.mrbird.febs.common.enumerates.OrderStatusEnum;
import cc.mrbird.febs.common.exception.FebsException;
import cc.mrbird.febs.common.utils.AppContants;
import cc.mrbird.febs.common.utils.HttpCurlUtil;
import cc.mrbird.febs.common.utils.MallUtils;
import cc.mrbird.febs.common.utils.RedisUtils;
import cc.mrbird.febs.mall.dto.ApiLeaderRefundOrderDto;
import cc.mrbird.febs.mall.dto.MallMemberCouponDto;
import cc.mrbird.febs.mall.entity.*;
import cc.mrbird.febs.mall.mapper.*;
import cc.mrbird.febs.mall.service.*;
import cc.mrbird.febs.pay.model.WxGenerateQrCodeDto;
import cc.mrbird.febs.mall.vo.MallMemberCouponVo;
import cc.mrbird.febs.pay.model.*;
import cc.mrbird.febs.pay.service.IXcxPayService;
import cc.mrbird.febs.pay.service.WxFaPiaoService;
import cc.mrbird.febs.pay.util.WechatConfigure;
import cc.mrbird.febs.rabbit.consumer.AgentConsumer;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.wechat.pay.contrib.apache.httpclient.auth.AutoUpdateCertificatesVerifier;
import com.wechat.pay.contrib.apache.httpclient.auth.PrivateKeySigner;
import com.wechat.pay.contrib.apache.httpclient.auth.WechatPay2Credentials;
import com.wechat.pay.contrib.apache.httpclient.notification.NotificationHandler;
import okhttp3.HttpUrl;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.RequestEntity;
import org.apache.commons.httpclient.methods.StringRequestEntity;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPatch;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.ResourceLoader;
import org.springframework.web.client.RestTemplate;
import javax.annotation.Resource;
@@ -40,6 +57,10 @@
import java.math.BigDecimal;
import java.net.URLConnection;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.security.KeyPair;
import java.security.NoSuchAlgorithmException;
import java.security.PrivateKey;
import java.util.*;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
@@ -83,11 +104,180 @@
    public void thankfulProfit() {
        memberProfitService.thankfulProfit(new Date());
    }
    @Autowired
    private MallMemberCouponMapper mallMemberCouponMapper;
    @Autowired
    private MallGoodsMapper mallGoodsMapper;
    @Autowired
    private CouponGoodsMapper couponGoodsMapper;
    @Autowired
    private WxFaPiaoService wxFaPiaoService;
    @Autowired
    ResourceLoader resourceLoader;
    @Test
    public void rankProfit() throws IOException {//配置开发选项
//        System.out.println(new ClassPathResource("wxP12/apiclient_cert.p12").getFile().exists());
//        System.out.println(new File("src/main/resources/wxP12/apiclient_cert.p12").exists());
//
//        InputStream inputStream = new FileInputStream(file);
//        System.out.println(resourceLoader.getResource("classpath:/wxP12/apiclient_cert.p12").exists());
        PrivateKey privateKey = wxFaPiaoService.getPrivateKeyV3();
        HeaderDto headerDto = new HeaderDto();
        headerDto.setCallback_url("https://api.blnka.cn/api/xcxPay/fapiaoCallBack");
        headerDto.setShow_fapiao_cell(false);
        String parseObj = JSONUtil.parseObj(headerDto).toString();
        String baseUrl = "https://api.mch.weixin.qq.com";
        String canonicalUrl = "/v3/new-tax-control-fapiao/merchant/development-config";
        String postStr = null;
        try {
            postStr = wxFaPiaoService.createAuthorization(
                    "PATCH",
                    baseUrl+canonicalUrl,
                    parseObj,
                    privateKey
            );
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
        String token = AppContants.FP_TOKEN_HEADER_TYPE+postStr;
        System.out.println("WECHATPAY2-SHA256-RSA2048 "+postStr);
        String s = wxFaPiaoService.sendPatch(baseUrl + canonicalUrl, parseObj, token);
        System.out.println(s);
    }
    @Test
    public void rankProfit() {
        memberProfitService.rankProfit();
    public void rankProfit03() throws IOException {//创建电子发票卡券模板
        FPCardTemplateDto fpCardTemplateDto = new FPCardTemplateDto();
        fpCardTemplateDto.setCard_appid("wxad2fdb2fcad10fb2");
        FPCardTemplateInformationDto fpCardTemplateInformationDto = new FPCardTemplateInformationDto();
        fpCardTemplateInformationDto.setLogo_url("http://mmbiz.qpic.cn/mmbiz/iaL1LJM1mF9aRKPZJkmG8xXhiaHqkKSVMMWeN3hLut7X7hicFNjakmxibMLGWpXrEXB33367o7zHN0CwngnQY7zb7g/0");
        fpCardTemplateInformationDto.setPayee_name("发票测试");
        FPCardTemplateCustomCellDto fpCardTemplateCustomCellDto = new FPCardTemplateCustomCellDto();
        fpCardTemplateCustomCellDto.setWords("电子发票");
        fpCardTemplateCustomCellDto.setDescription("查看发票");
        fpCardTemplateCustomCellDto.setJump_url("http://www.qq.com");
        fpCardTemplateCustomCellDto.setMiniprogram_path("gh_86a091e50ad4@app");
        fpCardTemplateCustomCellDto.setMiniprogram_user_name("pages/xxxPage");
        fpCardTemplateInformationDto.setCustom_cell(fpCardTemplateCustomCellDto);
        fpCardTemplateDto.setCard_template_information(fpCardTemplateInformationDto);
        String parseObj = JSONUtil.parseObj(fpCardTemplateDto).toString();
        System.out.println(parseObj);
        String baseUrl = "https://api.mch.weixin.qq.com";
        String canonicalUrl = "/v3/new-tax-control-fapiao/card-template";
        PrivateKey privateKey = wxFaPiaoService.getPrivateKeyV3();
        String postStr = null;
        try {
            postStr = wxFaPiaoService.createAuthorization(
                    "POST",
                    baseUrl+canonicalUrl,
                    parseObj,
                    privateKey
            );
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
        String token = AppContants.FP_TOKEN_HEADER_TYPE+postStr;
        System.out.println("WECHATPAY2-SHA256-RSA2048 "+postStr);
        String s = wxFaPiaoService.sendPost(baseUrl + canonicalUrl, parseObj, "WECHATPAY2-SHA256-RSA2048 "+postStr);
        System.out.println(s);
    }
    @Test
    public void rankProfit04() throws IOException {//获取用户填写的抬头
        FPUserTitleDto fpUserTitleDto = new FPUserTitleDto();
        fpUserTitleDto.setScene("WITH_WECHATPAY");
        fpUserTitleDto.setFapiao_apply_id("");
        String parseObj = JSONUtil.parseObj(fpUserTitleDto).toString();
        System.out.println(parseObj);
        String baseUrl = "https://api.mch.weixin.qq.com";
        String canonicalUrl = "/v3/new-tax-control-fapiao/user-title";
        PrivateKey privateKey = wxFaPiaoService.getPrivateKeyV3();
        String postStr = null;
        try {
            postStr = wxFaPiaoService.createAuthorization(
                    "POST",
                    baseUrl+canonicalUrl,
                    parseObj,
                    privateKey
            );
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
        String token = AppContants.FP_TOKEN_HEADER_TYPE+postStr;
        System.out.println("WECHATPAY2-SHA256-RSA2048 "+postStr);
        String s = wxFaPiaoService.sendPost(baseUrl + canonicalUrl, parseObj, "WECHATPAY2-SHA256-RSA2048 "+postStr);
        System.out.println(s);
        cn.hutool.json.JSONObject jsonObject = JSONUtil.parseObj(s);
        System.out.println(jsonObject);
    }
    @Test
    public void rankProfit05() throws IOException {//获取用户填写的抬头
        byte[] bytes = "daL341aN5orDt13puXadsAf2rpuX12v3".getBytes("utf-8");
        try {
            //传入证书
            PrivateKey privateKey = wxFaPiaoService.getPrivateKeyV3();
            //刷新
            PrivateKeySigner signer = new PrivateKeySigner(AppContants.WX_CARD_NUM, privateKey);
            WechatPay2Credentials credentials = new WechatPay2Credentials("1658958205", signer);
            AutoUpdateCertificatesVerifier autoUpdateCertificatesVerifier = new AutoUpdateCertificatesVerifier(credentials
                    , bytes);
            NotificationHandler handler = new NotificationHandler(autoUpdateCertificatesVerifier,bytes);
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    @Test
    public void rankProfit2() throws IOException {//查询配置开发选项
        PrivateKey privateKey = wxFaPiaoService.getPrivateKeyV3();
        String baseUrl = "https://api.mch.weixin.qq.com";
        String canonicalUrl = "/v3/new-tax-control-fapiao/merchant/development-config";
        String postStr = null;
        try {
            postStr = wxFaPiaoService.createAuthorization(
                    "GET",
                    baseUrl+canonicalUrl,
                    "",
                    privateKey
            );
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
        System.out.println("WECHATPAY2-SHA256-RSA2048"+postStr);
        try {
            HttpClient httpClient = new HttpClient();
            GetMethod method = new GetMethod(baseUrl+canonicalUrl);
            method.setRequestHeader("Accept", "application/json");
            method.setRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36");
            method.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
            method.setRequestHeader("Connection", "keep-alive");
            method.setRequestHeader("Authorization", "WECHATPAY2-SHA256-RSA2048 "+postStr);
            httpClient.executeMethod(method);
            System.out.println(method);
            String responseBodyAsString = method.getResponseBodyAsString();
            cn.hutool.json.JSONObject maps = JSONUtil.parseObj(responseBodyAsString);
            System.out.println(maps);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    @Autowired
    private MallOrderInfoMapper mallOrderInfoMapper;
@@ -197,15 +387,109 @@
    }
    @Autowired
    private IXcxPayService iXcxPayService;
    @Autowired
    private IAdminMallTeamLeaderService iAdminMallTeamLeaderService;
    @Test
    public void qrcodeBase64(){
        WxGenerateQrCodeDto wxGenerateQrCodeDto = new WxGenerateQrCodeDto();
        wxGenerateQrCodeDto.setPage("pages/index/index");
        wxGenerateQrCodeDto.setScene("15");
        FebsResponse febsResponse = iXcxPayService.generateQrCode(wxGenerateQrCodeDto);
        String data = febsResponse.get("data").toString();
        System.out.println(data);
//        Integer integer = mallGoodsMapper.upDateStockAndVolumeByGoodsId(35L, 3);
//        System.out.println(integer);
//        WxGenerateQrCodeDto wxGenerateQrCodeDto = new WxGenerateQrCodeDto();
//        wxGenerateQrCodeDto.setPage("pages/product/details");
//        wxGenerateQrCodeDto.setScene("35");
//        FebsResponse febsResponse = iXcxPayService.generateQrCode(wxGenerateQrCodeDto);
//        String data = febsResponse.get("data").toString();
//        System.out.println(data);
//        trackServiceInfo("e024c63342930addc57189c8608cdb01",null);
//        String e024c63342930addc57189c8608cdb01 = trackServiceDel("e024c63342930addc57189c8608cdb01", "792477");
//        System.out.println(e024c63342930addc57189c8608cdb01);
        String ss = fenceDel("95ede7157929f5f6b6c758971be924b1", "795278","795554");
        System.out.println(ss);
    }
    //电子围栏删除
    public String fenceDel(String gaodeKey, String sid,String fenceId) {
        String url = "https://tsapi.amap.com/v1/track/geofence/delete?key="+gaodeKey+"&sid="+sid+"&gfids="+fenceId;
        HttpPost httpPost = new HttpPost(url);
        Map<String,String> map = new HashMap<>();
        map.put("key",gaodeKey);
        map.put("sid",sid);
        map.put("gfids",fenceId);
        String  param= JSON.toJSONString(map);
        String result = null;
        try {
            result = HttpCurlUtil.sendPostHttp(url, param);
        } catch (IOException e) {
            e.printStackTrace();
        }
        cn.hutool.json.JSONObject maps = JSONUtil.parseObj(result);
        System.out.println(maps);
        String errcode = maps.get("errcode").toString();
        if(!"10000".equals(errcode)){
            return "fail";
        }else{
            return maps.toString();
        }
    }
    //服务删除
    public String trackServiceDel(String gaodeKey, String sid) {
        String url = "https://tsapi.amap.com/v1/track/service/delete?key="+gaodeKey+"&sid="+sid;
        HttpPost httpPost = new HttpPost(url);
        Map<String,String> map = new HashMap<>();
        map.put("key",gaodeKey);
        map.put("sid",sid);
        String  param= JSON.toJSONString(map);
        String result = null;
        try {
            result = HttpCurlUtil.sendPostHttp(url, param);
        } catch (IOException e) {
            e.printStackTrace();
        }
        cn.hutool.json.JSONObject maps = JSONUtil.parseObj(result);
        System.out.println(maps);
        String errcode = maps.get("errcode").toString();
        if(!"10000".equals(errcode)){
            return "fail";
        }else{
            return maps.toString();
        }
//        String str2 = maps.get("data").toString();
//        cn.hutool.json.JSONObject maps2 = JSONUtil.parseObj(str2);
//        String serviceId = maps2.get("sid").toString();
//        if(null!=serviceId&&!"".equals(serviceId)){
//            return serviceId;
//        }else{
//            return "fail";
//        }
    }
    public String trackServiceInfo(String gaodeKey, String serviceName) {
        String url = "https://tsapi.amap.com/v1/track/service/list";
        HttpPost httpPost = new HttpPost(url);
        Map<String,String> map = new HashMap<>();
        //高德Key
        //用户在高德地图官网申请Web服务API类型Key
        map.put("key",gaodeKey);
        System.out.println("==高德返回"+map);
        String result = null;
        try {
            result = HttpCurlUtil.sendGetHttp(url, map);
        } catch (IOException e) {
            e.printStackTrace();
        }
        System.out.println("==高德返回"+result);
        cn.hutool.json.JSONObject maps = JSONUtil.parseObj(result);
        String errCode = maps.get("errcode").toString();
        if("10000".equals(errCode)){
            String dataStr = maps.get("data").toString();
            cn.hutool.json.JSONObject dataResults = JSONUtil.parseObj(dataStr);
            String resultsStr = dataResults.get("results").toString();
            return resultsStr;
        }else{
            return "fail";
        }
    }
@@ -312,62 +596,88 @@
    @Test
    public void qrcode(){
        MallMember member = mallMemberMapper.selectById(58L);
        Long id = 320L;
        MallMember member = mallMemberMapper.selectById(402L);
//        ApiRechargeWalletDto apiRechargeWalletDto = new ApiRechargeWalletDto();
//        apiRechargeWalletDto.setAmount(new BigDecimal(1));
//        apiRechargeWalletDto.setMemberId(402L);
//        BrandWCPayRequestData brandWCPayRequestData = null;
//        try {
//            brandWCPayRequestData = iXcxPayService.startRechargeWallet(apiRechargeWalletDto);
//        } catch (Exception e) {
//            throw new FebsException("支付失败");
//        }
//        String wxResultStr = JSONUtil.toJsonStr(brandWCPayRequestData);
//        String payResultStr = brandWCPayRequestData.getPrepay_id();
//        Map<String, Object> map = new HashMap<>();
//        map.put("orderInfo", payResultStr);
//        map.put("wxResultStr", wxResultStr);
        Long id = 345417L;
        MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectById(id);
        if(ObjectUtil.isEmpty(mallOrderInfo)){
        BrandWCPayRequestData brandWCPayRequestData = null;
        try {
            brandWCPayRequestData = iXcxPayService.startPayment(mallOrderInfo);
        } catch (Exception e) {
            throw new FebsException("支付失败");
        }
        Integer status = mallOrderInfo.getStatus();
        if(OrderStatusEnum.WAIT_SHIPPING.getValue() != status){
        }
        Integer deliveryState = mallOrderInfo.getDeliveryState();
        if(1 != deliveryState){
        }
        //根据子订单生成退款记录
        List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByOrderId(id);
        if(CollUtil.isEmpty(mallOrderItemList)){
        }
        for(MallOrderItem mallOrderItem : mallOrderItemList){
            QueryWrapper<MallRefundEntity> objectQueryWrapper = new QueryWrapper<>();
            objectQueryWrapper.eq("member_id",member.getId());
            objectQueryWrapper.eq("order_id",mallOrderInfo.getId());
            objectQueryWrapper.eq("item_id",mallOrderItem.getId());
            MallRefundEntity mallRefund = mallRefundMapper.selectOne(objectQueryWrapper);
            MallRefundEntity mallRefundEntity = new MallRefundEntity();
            if(ObjectUtil.isEmpty(mallRefund)){
                mallRefundEntity.setRefundNo(mallOrderInfo.getOrderNo()+"_RITEM"+mallOrderItem.getId());
                mallRefundEntity.setMemberId(member.getId());
                mallRefundEntity.setOrderId(mallOrderInfo.getId());
                mallRefundEntity.setItemId(mallOrderItem.getId());
                if("余额支付".equals(mallOrderInfo.getPayMethod())){
                    mallRefundEntity.setType(3);
                }else if("微信支付".equals(mallOrderInfo.getPayMethod())){
                    mallRefundEntity.setType(1);
                }else{
                    mallRefundEntity.setType(3);
                }
                mallRefundEntity.setState(3);
                mallRefundEntity.setAmount(mallOrderItem.getAmount());
                mallRefundMapper.insert(mallRefundEntity);
            }else{
                if(mallRefund.getState() == 2){
                    mallRefundEntity.setId(mallRefund.getId());
                    mallRefundEntity.setRefundNo(mallRefund.getRefundNo());
                    mallRefundEntity.setMemberId(mallRefund.getMemberId());
                    mallRefundEntity.setOrderId(mallRefund.getOrderId());
                    mallRefundEntity.setItemId(mallRefund.getItemId());
                    mallRefundEntity.setType(mallRefund.getType());
                    mallRefundEntity.setState(3);
                    mallRefundEntity.setAmount(mallRefund.getAmount());
                    mallRefundMapper.updateById(mallRefundEntity);
                }
            }
            ApiLeaderRefundOrderDto apiLeaderRefundOrderDto = new ApiLeaderRefundOrderDto();
            apiLeaderRefundOrderDto.setOrderId(mallOrderInfo.getId());
            apiLeaderRefundOrderDto.setItemId(mallOrderItem.getId());
            apiLeaderRefundOrderDto.setAgreeState(1);
            iApiMallTeamLeaderService.leaderRefundOrder(apiLeaderRefundOrderDto);
        }
        String s = JSONUtil.toJsonStr(brandWCPayRequestData);
        String prepay_id = brandWCPayRequestData.getPrepay_id();
//        if(ObjectUtil.isEmpty(mallOrderInfo)){
//        }
//        Integer status = mallOrderInfo.getStatus();
//        if(OrderStatusEnum.WAIT_SHIPPING.getValue() != status){
//        }
//        Integer deliveryState = mallOrderInfo.getDeliveryState();
//        if(1 != deliveryState){
//        }
//        //根据子订单生成退款记录
//        List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByOrderId(id);
//        if(CollUtil.isEmpty(mallOrderItemList)){
//        }
//        for(MallOrderItem mallOrderItem : mallOrderItemList){
//            QueryWrapper<MallRefundEntity> objectQueryWrapper = new QueryWrapper<>();
//            objectQueryWrapper.eq("member_id",member.getId());
//            objectQueryWrapper.eq("order_id",mallOrderInfo.getId());
//            objectQueryWrapper.eq("item_id",mallOrderItem.getId());
//            MallRefundEntity mallRefund = mallRefundMapper.selectOne(objectQueryWrapper);
//            MallRefundEntity mallRefundEntity = new MallRefundEntity();
//            if(ObjectUtil.isEmpty(mallRefund)){
//                mallRefundEntity.setRefundNo(mallOrderInfo.getOrderNo()+"_RITEM"+mallOrderItem.getId());
//                mallRefundEntity.setMemberId(member.getId());
//                mallRefundEntity.setOrderId(mallOrderInfo.getId());
//                mallRefundEntity.setItemId(mallOrderItem.getId());
//                if("余额支付".equals(mallOrderInfo.getPayMethod())){
//                    mallRefundEntity.setType(3);
//                }else if("微信支付".equals(mallOrderInfo.getPayMethod())){
//                    mallRefundEntity.setType(1);
//                }else{
//                    mallRefundEntity.setType(3);
//                }
//                mallRefundEntity.setState(3);
//                mallRefundEntity.setAmount(mallOrderItem.getAmount());
//                mallRefundMapper.insert(mallRefundEntity);
//            }else{
//                if(mallRefund.getState() == 2){
//                    mallRefundEntity.setId(mallRefund.getId());
//                    mallRefundEntity.setRefundNo(mallRefund.getRefundNo());
//                    mallRefundEntity.setMemberId(mallRefund.getMemberId());
//                    mallRefundEntity.setOrderId(mallRefund.getOrderId());
//                    mallRefundEntity.setItemId(mallRefund.getItemId());
//                    mallRefundEntity.setType(mallRefund.getType());
//                    mallRefundEntity.setState(3);
//                    mallRefundEntity.setAmount(mallRefund.getAmount());
//                    mallRefundMapper.updateById(mallRefundEntity);
//                }
//            }
//            ApiLeaderRefundOrderDto apiLeaderRefundOrderDto = new ApiLeaderRefundOrderDto();
//            apiLeaderRefundOrderDto.setOrderId(mallOrderInfo.getId());
//            apiLeaderRefundOrderDto.setItemId(mallOrderItem.getId());
//            apiLeaderRefundOrderDto.setAgreeState(1);
//            iApiMallTeamLeaderService.leaderRefundOrder(apiLeaderRefundOrderDto);
//        }
    }
    /**
@@ -390,7 +700,6 @@
            String json = JSON.toJSONString(param);
            ByteArrayInputStream inputStream = sendPost(url, json);
            System.out.println(inputStream);
            //这里判断的是返回的图片还是错误信息,一般错误信息不会大于200
            if (inputStream.available() <= 200){
                ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
@@ -400,7 +709,6 @@
                    byteArrayOutputStream.write(buffer,0,i);
                }
                String str = new String(byteArrayOutputStream.toByteArray());
                System.out.println(str);
                //错误信息的格式在官方文档里有
                JSONObject jsonObject = JSONObject.parseObject(str);
                if ("41030".equals(jsonObject.getString("errcode"))){
@@ -414,13 +722,13 @@
            //输出到本地的代码
            FileOutputStream fileOutputStream = new FileOutputStream("D:/123.png");
            int i;
            byte[] buffer = new byte[200];
            byte[] buffer = new byte[10240000];
            while ((i = inputStream.read(buffer)) != -1){
                fileOutputStream.write(buffer,0,i);
            }
            fileOutputStream.flush();
            fileOutputStream.close();
            inputStream.close();
        }catch (Exception e){
        }
@@ -459,6 +767,10 @@
                inputStream.close();
                // 把outStream里的数据写入内存
                byteArrayInputStream = new ByteArrayInputStream(outStream.toByteArray());
                byte[] data = outStream.toByteArray();
                String result = new String(Base64.getEncoder().encode(data));
                result = "data:image/jpeg;base64," + result;
                System.out.println(result);
            }
        } catch (Exception e) {
            e.printStackTrace();