From 15d223c549e0d94316db344f2f6337b605fffbae Mon Sep 17 00:00:00 2001 From: KKSU <15274802129@163.com> Date: Tue, 16 Jan 2024 10:56:38 +0800 Subject: [PATCH] fapiao --- src/main/java/cc/mrbird/febs/mall/controller/AdminSystemController.java | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 53 insertions(+), 4 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/controller/AdminSystemController.java b/src/main/java/cc/mrbird/febs/mall/controller/AdminSystemController.java index f6444ee..bef7b04 100644 --- a/src/main/java/cc/mrbird/febs/mall/controller/AdminSystemController.java +++ b/src/main/java/cc/mrbird/febs/mall/controller/AdminSystemController.java @@ -3,18 +3,22 @@ import cc.mrbird.febs.common.annotation.ControllerEndpoint; import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.common.enumerates.DataDictionaryEnum; -import cc.mrbird.febs.mall.dto.AdminAgentAmountDto; -import cc.mrbird.febs.mall.dto.AdminAgentDetailDto; -import cc.mrbird.febs.mall.dto.AdminIndexVideoDto; -import cc.mrbird.febs.mall.dto.CashOutSettingDto; +import cc.mrbird.febs.mall.dto.*; import cc.mrbird.febs.mall.entity.DataDictionaryCustom; import cc.mrbird.febs.mall.mapper.DataDictionaryCustomMapper; import cc.mrbird.febs.mall.service.ICommonService; import cc.mrbird.febs.mall.service.ISystemService; +import cc.mrbird.febs.pay.model.HeaderDto; +import cc.mrbird.febs.pay.service.WxFaPiaoService; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.json.JSONUtil; import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.httpclient.HttpClient; +import org.apache.commons.httpclient.methods.PostMethod; +import org.apache.commons.httpclient.methods.RequestEntity; +import org.apache.commons.httpclient.methods.StringRequestEntity; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.PostMapping; @@ -22,7 +26,9 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.io.IOException; import java.math.BigDecimal; +import java.security.KeyPair; import java.util.Arrays; import java.util.List; import java.util.Map; @@ -39,6 +45,7 @@ private final ICommonService commonService; private final DataDictionaryCustomMapper dataDictionaryCustomMapper; + private final WxFaPiaoService wxFaPiaoService; @PostMapping(value = "/bonusSystemSetting") public FebsResponse bonusSystemSetting(@RequestBody Map<String, Object> map) { @@ -122,6 +129,48 @@ return new FebsResponse().success().message("操作成功"); } + @PostMapping(value = "/faPiaoSet") + public FebsResponse faPiaoSet(FaPiaoDto faPiaoDto) { + dataDictionaryCustomMapper.updateDicValueByTypeAndCode( + DataDictionaryEnum.FP_CALLBACK_URL.getType(), + DataDictionaryEnum.FP_CALLBACK_URL.getCode(), + faPiaoDto.getCallbackUrl() + ); + KeyPair privateKey = wxFaPiaoService.getPrivateKey(); + HeaderDto headerDto = new HeaderDto(); + headerDto.setCallback_url(faPiaoDto.getCallbackUrl()); + 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 = wxFaPiaoService.createAuthorization( + "POST", + canonicalUrl, + parseObj, + privateKey + ); + // 创建httppost + try { + HttpClient httpClient = new HttpClient(); + PostMethod post = new PostMethod(baseUrl+canonicalUrl); + post.setRequestHeader("Accept", "application/json"); + post.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"); + post.setRequestHeader("Content-Type", "application/json"); + post.setRequestHeader("Connection", "keep-alive"); + post.setRequestHeader("Authorization", "WECHATPAY2-SHA256-RSA2048 "+postStr); + RequestEntity entity = new StringRequestEntity(parseObj, "text/html", "utf-8"); + post.setRequestEntity(entity); + httpClient.executeMethod(post); + String responseBodyAsString = post.getResponseBodyAsString(); + cn.hutool.json.JSONObject maps = JSONUtil.parseObj(responseBodyAsString); + System.out.println(maps); + } catch (IOException e) { + e.printStackTrace(); + } + + return new FebsResponse().success().message("操作成功"); + } + @PostMapping(value = "/agentDetail") public FebsResponse agentDetail(AdminAgentDetailDto adminAgentDetailDto) { DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( -- Gitblit v1.9.1