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/test/java/cc/mrbird/febs/ProfitTest.java | 96 +++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 86 insertions(+), 10 deletions(-) diff --git a/src/test/java/cc/mrbird/febs/ProfitTest.java b/src/test/java/cc/mrbird/febs/ProfitTest.java index 93719a9..817e62a 100644 --- a/src/test/java/cc/mrbird/febs/ProfitTest.java +++ b/src/test/java/cc/mrbird/febs/ProfitTest.java @@ -12,8 +12,11 @@ import cc.mrbird.febs.mall.mapper.*; import cc.mrbird.febs.mall.service.*; import cc.mrbird.febs.mall.vo.MallMemberCouponVo; +import cc.mrbird.febs.pay.configure.WxPayUtil; import cc.mrbird.febs.pay.model.BrandWCPayRequestData; +import cc.mrbird.febs.pay.model.HeaderDto; 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; @@ -22,10 +25,17 @@ import cn.hutool.json.JSONUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; +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.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.CloseableHttpClient; @@ -33,6 +43,8 @@ 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 +52,7 @@ import java.math.BigDecimal; import java.net.URLConnection; import java.nio.charset.Charset; +import java.security.KeyPair; import java.util.*; import java.io.ByteArrayOutputStream; import java.io.InputStream; @@ -89,18 +102,81 @@ private MallGoodsMapper mallGoodsMapper; @Autowired private CouponGoodsMapper couponGoodsMapper; + @Autowired + private WxFaPiaoService wxFaPiaoService; + @Autowired + ResourceLoader resourceLoader; @Test - public void rankProfit() { -// memberProfitService.rankProfit(); - MallMemberCouponDto mallMemberCouponDto = new MallMemberCouponDto(); - mallMemberCouponDto.setMemberId(72L); - mallMemberCouponDto.setExpireTime(DateUtil.date()); - List<Long> couponIds = couponGoodsMapper.selectByGoodId(10L); - List<MallMemberCouponVo> mallMemberCouponVos = new ArrayList<>(); - if(CollUtil.isNotEmpty(couponIds)){ - mallMemberCouponVos = mallMemberCouponMapper.selectListCreateInPage(mallMemberCouponDto,couponIds); - System.out.println(mallMemberCouponVos); + 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()); + KeyPair privateKey = wxFaPiaoService.getPrivateKey(); + HeaderDto headerDto = new HeaderDto(); + headerDto.setCallback_url("https://api.blnka.cn/api/xcxPay/fapiaoCallBack"); + headerDto.setShow_fapiao_cell(true); + 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("https://api.mch.weixin.qq.com/v3/new-tax-control-fapiao/merchant/development-config"); + 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; charset=UTF-8"); + 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(); } + + } + + @Test + public void rankProfit2() throws IOException { + KeyPair privateKey = wxFaPiaoService.getPrivateKey(); + String baseUrl = "https://api.mch.weixin.qq.com"; + String canonicalUrl = "/v3/new-tax-control-fapiao/merchant/development-config"; + String postStr = wxFaPiaoService.createAuthorization( + "GET", + canonicalUrl, + "", + privateKey + + ); + 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(); + } + } -- Gitblit v1.9.1