From 10f1422bc8f401b06b1e55ee63b23016d74abce8 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期三, 28 二月 2024 11:34:09 +0800
Subject: [PATCH] 优化商户发券逻辑
---
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/WechatPayUtils.java | 79 ++++++++++++++++++++++++++++++---------
1 files changed, 60 insertions(+), 19 deletions(-)
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/WechatPayUtils.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/WechatPayUtils.java
index 14eae48..38836b9 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/WechatPayUtils.java
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/WechatPayUtils.java
@@ -1,16 +1,18 @@
package com.ruoyi.shop.util;
-import com.github.binarywang.wxpay.bean.ecommerce.ApplymentsRequest;
-import com.github.binarywang.wxpay.bean.ecommerce.ApplymentsResult;
-import com.github.binarywang.wxpay.bean.ecommerce.ApplymentsStatusResult;
+import com.alibaba.fastjson.JSONObject;
+import com.github.binarywang.wxpay.bean.ecommerce.*;
+import com.github.binarywang.wxpay.bean.media.ImageUploadResult;
import com.github.binarywang.wxpay.exception.WxPayException;
import com.github.binarywang.wxpay.service.EcommerceService;
+import com.github.binarywang.wxpay.service.MerchantMediaService;
import com.github.binarywang.wxpay.service.WxPayService;
import com.ruoyi.shop.domain.pojo.shop.ShopAuthentication;
import com.ruoyi.system.api.domain.poji.shop.Shop;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Component;
+import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
@@ -24,10 +26,17 @@
private final WxPayService wxService;
/**
- * 电商二级商户进件(提交申请单)
+ * @description 电商二级商户进件(提交申请单)
+ * @author jqs
+ * @date 2023/8/11 10:04
+ * @param shopAuthentication
+ * @param applyNumber
+ * @param shop
+ * @return ApplymentsResult
*/
- public ApplymentsResult ecommerceApply(ShopAuthentication shopAuthentication, String applyNumber, Shop shop) throws WxPayException {
+ public ApplymentsResult ecommerceApply(ShopAuthentication shopAuthentication, String applyNumber, Shop shop) throws Exception {
EcommerceService ecommerceService = wxService.getEcommerceService();
+ MerchantMediaService merchantMediaService = wxService.getMerchantMediaService();
ApplymentsRequest request = new ApplymentsRequest();
//生成提交类
request.setOutRequestNo(applyNumber);
@@ -38,20 +47,38 @@
}
//营业执照
ApplymentsRequest.BusinessLicenseInfo business_license_info = new ApplymentsRequest.BusinessLicenseInfo();
- business_license_info.setBusinessLicenseCopy(shopAuthentication.getBlImage());
+ InputStream blImageIO = OBSUploadUtils.getOSSInputStream(shopAuthentication.getBlImage().replace("https://hongruitang.oss-cn-beijing.aliyuncs.com/",""));
+ ImageUploadResult blImageIR = merchantMediaService.imageUploadV3(blImageIO,applyNumber+"blimage.jpg");
+ business_license_info.setBusinessLicenseCopy(blImageIR.getMediaId());
+ blImageIO.close();
business_license_info.setBusinessLicenseNumber(shopAuthentication.getBlNumber());
business_license_info.setMerchantName(shopAuthentication.getBlShopName());
business_license_info.setLegalPerson(shopAuthentication.getBlCorporateName());
business_license_info.setCompanyAddress(shopAuthentication.getBlRegisteredAddress());
- business_license_info.setBusinessTime(shopAuthentication.getBlBusinessDeanline());
+ List<String> businessTimeList = new ArrayList<>();
+ businessTimeList.add(0,shopAuthentication.getBlBusinessStartTime());
+ businessTimeList.add(1,shopAuthentication.getBlBusinessDeanline());
+ if(businessTimeList!=null&&businessTimeList.size()>1){
+ String businessTime = JSONObject.toJSONString(businessTimeList);
+ business_license_info.setBusinessTime(businessTime);
+ }
request.setBusinessLicenseInfo(business_license_info);
//法人证件
request.setIdDocType("IDENTIFICATION_TYPE_MAINLAND_IDCARD");
ApplymentsRequest.IdCardInfo id_card_info = new ApplymentsRequest.IdCardInfo();
- id_card_info.setIdCardCopy(shopAuthentication.getLpIcFront());
- id_card_info.setIdCardNational(shopAuthentication.getLpIcBack());
+ InputStream lpIcFrontIO = OBSUploadUtils.getOSSInputStream(shopAuthentication.getLpIcFront().replace("https://hongruitang.oss-cn-beijing.aliyuncs.com/",""));
+ ImageUploadResult lpIcFrontIR = merchantMediaService.imageUploadV3(lpIcFrontIO,applyNumber+"lpIcFront.jpg");
+ id_card_info.setIdCardCopy(lpIcFrontIR.getMediaId());
+ lpIcFrontIO.close();
+ InputStream lpIcBackIO = OBSUploadUtils.getOSSInputStream(shopAuthentication.getLpIcBack().replace("https://hongruitang.oss-cn-beijing.aliyuncs.com/",""));
+ ImageUploadResult lpIcBackIR = merchantMediaService.imageUploadV3(lpIcBackIO,applyNumber+"lpIcBack.jpg");
+ id_card_info.setIdCardNational(lpIcBackIR.getMediaId());
+ lpIcBackIO.close();
id_card_info.setIdCardName(shopAuthentication.getLpCorporateName());
id_card_info.setIdCardNumber(shopAuthentication.getLpIdCard());
+ if(shopAuthentication.getMainType()==2){
+ id_card_info.setIdCardAddress(shopAuthentication.getLpIdAddress());
+ }
id_card_info.setIdCardValidTimeBegin(shopAuthentication.getLpIcStartDate());
id_card_info.setIdCardValidTime(shopAuthentication.getLpIcEndDate());
request.setIdCardInfo(id_card_info);
@@ -65,13 +92,18 @@
List<ApplymentsRequest.UboInfo> ubo_info_list = new ArrayList<>();
ApplymentsRequest.UboInfo uboInfo = new ApplymentsRequest.UboInfo();
uboInfo.setUboIdDocType("IDENTIFICATION_TYPE_MAINLAND_IDCARD");
- uboInfo.setUboIdDocCopy(shopAuthentication.getUboIcFront());
- uboInfo.setUboIdDocCopyBack(shopAuthentication.getUboIcBack());
+ InputStream uboIcFrontIO = OBSUploadUtils.getOSSInputStream(shopAuthentication.getUboIcFront().replace("https://hongruitang.oss-cn-beijing.aliyuncs.com/",""));
+ ImageUploadResult uboIcFrontIR = merchantMediaService.imageUploadV3(uboIcFrontIO,applyNumber+"uboIcFront.jpg");
+ uboInfo.setUboIdDocCopy(uboIcFrontIR.getMediaId());
+ uboIcFrontIO.close();
+ InputStream uboIcBackIO = OBSUploadUtils.getOSSInputStream(shopAuthentication.getUboIcBack().replace("https://hongruitang.oss-cn-beijing.aliyuncs.com/",""));
+ ImageUploadResult uboIcBackIR = merchantMediaService.imageUploadV3(uboIcBackIO,applyNumber+"uboIcBack.jpg");
+ uboInfo.setUboIdDocCopyBack(uboIcBackIR.getMediaId());
+ uboIcBackIO.close();
uboInfo.setUboIdDocName(shopAuthentication.getUboName());
uboInfo.setUboIdDocNumber(shopAuthentication.getUboIdCard());
uboInfo.setUboIdDocAddress(shopAuthentication.getUboIcAddress());
uboInfo.setUboIdDocPeriodBegin(shopAuthentication.getUboIcStartDate());
- uboInfo.setUboIdDocCopyBack(shopAuthentication.getUboIcEndDate());
ubo_info_list.add(uboInfo);
request.setUboInfoList(ubo_info_list);
}
@@ -99,25 +131,34 @@
//店铺信息
ApplymentsRequest.SalesSceneInfo salesSceneInfo = new ApplymentsRequest.SalesSceneInfo();
salesSceneInfo.setStoreName(shop.getShopName());
- salesSceneInfo.setStoreUrl("");
- salesSceneInfo.setStoreQrCode("");
+ InputStream storeQrCodeIO = OBSUploadUtils.getOSSInputStream(shop.getShopCode().replace("https://hongruitang.oss-cn-beijing.aliyuncs.com/",""));
+ ImageUploadResult storeQrCodeIR = merchantMediaService.imageUploadV3(storeQrCodeIO,applyNumber+"storeQrCode.jpg");
+ salesSceneInfo.setStoreQrCode(storeQrCodeIR.getMediaId());
+ storeQrCodeIO.close();
request.setSalesSceneInfo(salesSceneInfo);
request.setMerchantShortname(shop.getShopName());
request.setBusinessAdditionPics(shopAuthentication.getBaPics());
request.setBusinessAdditionDesc(shopAuthentication.getBaDesc());
-
return ecommerceService.createApply(request);
}
/**
- * 通过查询申请状态API查询二级商户入驻申请结果
- * @param applymentId 微信支付申请单号
- * @return 申请状态
- * @throws WxPayException
+ * @description 查询申请审核状态
+ * @author jqs
+ * @date 2023/8/11 10:04
+ * @param applymentId
+ * @return ApplymentsStatusResult
*/
public ApplymentsStatusResult queryApplyStatusByApplymentId(String applymentId) throws WxPayException {
return wxService.getEcommerceService().queryApplyStatusByApplymentId(applymentId);
}
+ public ProfitSharingReceiverResult addProfitSharingReceiver(ProfitSharingReceiverRequest request) throws WxPayException {
+ request.setAppid("wxb7f0ea286fc4e535");
+ request.setType("MERCHANT_ID");
+ request.setRelationType("SERVICE_PROVIDER");
+ ProfitSharingReceiverResult result = wxService.getEcommerceService().addReceivers(request);
+ return result;
+ }
}
--
Gitblit v1.7.1