com.github.binarywang.wxpay.service.impl.Applyment4SubServiceImpl Maven / Gradle / Ivy
The newest version!
package com.github.binarywang.wxpay.service.impl;
import com.github.binarywang.wxpay.bean.applyment.*;
import com.github.binarywang.wxpay.exception.WxPayException;
import com.github.binarywang.wxpay.service.Applyment4SubService;
import com.github.binarywang.wxpay.service.WxPayService;
import com.github.binarywang.wxpay.v3.util.RsaCryptoUtil;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import java.security.cert.X509Certificate;
@Slf4j
@RequiredArgsConstructor
public class Applyment4SubServiceImpl implements Applyment4SubService {
private static final Gson GSON = new GsonBuilder().create();
private final WxPayService payService;
private void encryptFiled(Object request) throws WxPayException {
X509Certificate validCertificate = payService.getConfig().getVerifier().getValidCertificate();
RsaCryptoUtil.encryptFields(request, validCertificate);
}
@Override
public WxPayApplymentCreateResult createApply(WxPayApplyment4SubCreateRequest request) throws WxPayException {
String url = String.format("%s/v3/applyment4sub/applyment/", this.payService.getPayBaseUrl());
encryptFiled(request);
String result = payService.postV3WithWechatpaySerial(url, GSON.toJson(request));
return GSON.fromJson(result, WxPayApplymentCreateResult.class);
}
@Override
public ApplymentStateQueryResult queryApplyStatusByBusinessCode(String businessCode) throws WxPayException {
String url = String.format("%s/v3/applyment4sub/applyment/business_code/%s", this.payService.getPayBaseUrl(), businessCode);
String result = payService.getV3(url);
return GSON.fromJson(result, ApplymentStateQueryResult.class);
}
@Override
public ApplymentStateQueryResult queryApplyStatusByApplymentId(String applymentId) throws WxPayException {
String url = String.format("%s/v3/applyment4sub/applyment/applyment_id/%s", this.payService.getPayBaseUrl(), applymentId);
String result = payService.getV3(url);
return GSON.fromJson(result, ApplymentStateQueryResult.class);
}
@Override
public SettlementInfoResult querySettlementBySubMchid(String subMchid) throws WxPayException {
String url = String.format("%s/v3/apply4sub/sub_merchants/%s/settlement", this.payService.getPayBaseUrl(), subMchid);
String result = payService.getV3(url);
return GSON.fromJson(result, SettlementInfoResult.class);
}
@Override
public String modifySettlement(String subMchid, ModifySettlementRequest request) throws WxPayException {
String url = String.format("%s/v3/apply4sub/sub_merchants/%s/modify-settlement", this.payService.getPayBaseUrl(), subMchid);
encryptFiled(request);
return payService.postV3WithWechatpaySerial(url, GSON.toJson(request));
}
@Override
public SettlementModifyStateQueryResult querySettlementModifyStatusByApplicationNo(String subMchid, String applicationNo) throws WxPayException {
String url = String.format("%s/v3/apply4sub/sub_merchants/%s/application/%s", this.payService.getPayBaseUrl(), subMchid, applicationNo);
String result = payService.getV3(url);
return GSON.fromJson(result, SettlementModifyStateQueryResult.class);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy