bug
jiangqs
2023-08-25 156e141e55a8abf486157d1fa89d25e23f4a06a3
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/WechatPayUtils.java
@@ -1,8 +1,20 @@
package com.ruoyi.shop.util;
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;
/**
 * 微信支付
@@ -11,13 +23,20 @@
@AllArgsConstructor
public class WechatPayUtils {
    /*private final WxPayService wxService;
    private final WxPayService wxService;
    *//**
     * 电商二级商户进件(提交申请单)
     *//*
    public ApplymentsResult ecommerceApply(ShopAuthentication shopAuthentication, String applyNumber, Shop shop) throws WxPayException {
    /**
     * @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 Exception {
        EcommerceService ecommerceService = wxService.getEcommerceService();
        MerchantMediaService merchantMediaService = wxService.getMerchantMediaService();
        ApplymentsRequest request = new ApplymentsRequest();
        //生成提交类
        request.setOutRequestNo(applyNumber);
@@ -28,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);
@@ -55,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);
            }
@@ -89,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;
    }
}