From 82581bd9f30b38cd5b402bfd15486fe7d37e3178 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Wed, 17 Jan 2024 14:38:52 +0800
Subject: [PATCH] fapiao
---
src/test/java/cc/mrbird/febs/ProfitTest.java | 208 ++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 195 insertions(+), 13 deletions(-)
diff --git a/src/test/java/cc/mrbird/febs/ProfitTest.java b/src/test/java/cc/mrbird/febs/ProfitTest.java
index fa3a8ef..a9eacb1 100644
--- a/src/test/java/cc/mrbird/febs/ProfitTest.java
+++ b/src/test/java/cc/mrbird/febs/ProfitTest.java
@@ -1,44 +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.AdminLeaderAddFenceDto;
-import cc.mrbird.febs.mall.dto.ApiLeaderRefundOrderDto;
-import cc.mrbird.febs.mall.dto.ApiRechargeWalletDto;
+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.BrandWCPayRequestData;
-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;
@@ -46,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;
@@ -89,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;
@@ -203,8 +387,6 @@
}
@Autowired
private IXcxPayService iXcxPayService;
- @Autowired
- private MallGoodsMapper mallGoodsMapper;
@Autowired
private IAdminMallTeamLeaderService iAdminMallTeamLeaderService;
--
Gitblit v1.9.1