🆕 #2257【微信支付】增加微信签约代扣相关接口
This commit is contained in:
@@ -0,0 +1,236 @@
|
||||
package com.github.binarywang.wxpay.service.impl;
|
||||
|
||||
import com.github.binarywang.wxpay.bean.request.*;
|
||||
import com.github.binarywang.wxpay.bean.result.*;
|
||||
import com.github.binarywang.wxpay.exception.WxPayException;
|
||||
import com.github.binarywang.wxpay.service.WxPayService;
|
||||
import com.github.binarywang.wxpay.testbase.ApiTestModule;
|
||||
import com.google.common.base.Joiner;
|
||||
import com.google.inject.Inject;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.testng.annotations.Guice;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
/**
|
||||
* @author chenliang
|
||||
* @date 2021-08-02 6:45 下午
|
||||
*/
|
||||
@Test
|
||||
@Guice(modules = ApiTestModule.class)
|
||||
public class WxEntrustPapServiceTest {
|
||||
|
||||
private final Logger logger = LoggerFactory.getLogger(this.getClass());
|
||||
|
||||
|
||||
@Inject
|
||||
private WxPayService payService;
|
||||
|
||||
/**
|
||||
* 公众号纯签约
|
||||
*/
|
||||
@Test
|
||||
public void testMpSign() {
|
||||
|
||||
String contractCode = "222200002222";
|
||||
String displayAccount = Joiner.on("").join("陈*", "(", "10000014", ")");
|
||||
WxMpEntrustRequest wxMpEntrust = WxMpEntrustRequest.newBuilder()
|
||||
.planId("142323") //模板ID:跟微信申请
|
||||
.contractCode(contractCode)
|
||||
.contractDisplayAccount(displayAccount)
|
||||
.notifyUrl("http://domain.com/api/wxpay/sign/callback.do")
|
||||
.requestSerial(6L)
|
||||
//.returnWeb(1)
|
||||
.version("1.0")
|
||||
.timestamp(String.valueOf(System.currentTimeMillis() / 1000))
|
||||
.outerId(displayAccount)
|
||||
.build();
|
||||
|
||||
String url = null;
|
||||
try {
|
||||
url = this.payService.getWxEntrustPapService().mpSign(wxMpEntrust);
|
||||
} catch (WxPayException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
logger.info(url);
|
||||
}
|
||||
|
||||
/**
|
||||
* 小程序纯签约
|
||||
*/
|
||||
@Test
|
||||
public void testMaSign() {
|
||||
String contractCode = "222220000022222";
|
||||
String displayAccount = Joiner.on("").join("陈*", "(", "10000001", ")");
|
||||
|
||||
WxMaEntrustRequest wxMaEntrustRequest = WxMaEntrustRequest.newBuilder()
|
||||
.contractCode(contractCode)
|
||||
.contractDisplayAccount(contractCode)
|
||||
.notifyUrl("http://domain.com/api/wxpay/sign/callback.do")
|
||||
.outerId(displayAccount)
|
||||
.planId("141535")
|
||||
.requestSerial(2L)
|
||||
.timestamp(String.valueOf(System.currentTimeMillis() / 1000))
|
||||
.build();
|
||||
|
||||
try {
|
||||
String url = this.payService.getWxEntrustPapService().maSign(wxMaEntrustRequest);
|
||||
logger.info(url);
|
||||
} catch (WxPayException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* h5纯签约
|
||||
*/
|
||||
@Test
|
||||
public void testH5Sign() {
|
||||
String contractCode = "222111122222";
|
||||
String displayAccount = Joiner.on("").join("陈*", "(", "100000000", ")");
|
||||
|
||||
WxH5EntrustRequest wxH5EntrustRequest = WxH5EntrustRequest.newBuilder()
|
||||
.requestSerial(2L)
|
||||
.clientIp("127.0.0.1")
|
||||
.contractCode(contractCode)
|
||||
.contractDisplayAccount(displayAccount)
|
||||
.notifyUrl("http://domain.com/api/wxpay/sign/callback.do")
|
||||
.planId("141535")
|
||||
.returnAppid("1")
|
||||
.timestamp(String.valueOf(System.currentTimeMillis() / 1000))
|
||||
.version("1.0")
|
||||
.outerId(displayAccount)
|
||||
.build();
|
||||
|
||||
try {
|
||||
WxH5EntrustResult wxH5EntrustResult = this.payService.getWxEntrustPapService().h5Sign(wxH5EntrustRequest);
|
||||
logger.info(wxH5EntrustResult.toString());
|
||||
} catch (WxPayException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPaySign() {
|
||||
String contractCode = "2222211110000222";
|
||||
String displayAccount = Joiner.on("").join("陈*", "(", "10000005", ")");
|
||||
String outTradeNo = "11100111101";
|
||||
|
||||
WxPayEntrustRequest wxPayEntrustRequest = WxPayEntrustRequest.newBuilder()
|
||||
.attach("local")
|
||||
.body("产品名字")
|
||||
.contractAppId(this.payService.getConfig().getAppId())
|
||||
.contractCode(contractCode)
|
||||
.contractDisplayAccount(displayAccount)
|
||||
.contractMchId(this.payService.getConfig().getMchId())
|
||||
//签约回调
|
||||
.contractNotifyUrl("http://domain.com/api/wxpay/sign/callback.do")
|
||||
.detail("产品是好")
|
||||
.deviceInfo("oneplus 7 pro")
|
||||
//.goodsTag()
|
||||
//.limitPay()
|
||||
//支付回调
|
||||
.notifyUrl("http://domain.com/api/wxpay/pay/callback.do")
|
||||
.openId("oIvLdt8Q-_aKy4Vo6f4YI6gsIhMc") //openId
|
||||
.outTradeNo(outTradeNo)
|
||||
.planId("141535")
|
||||
//.productId()
|
||||
.requestSerial(3L)
|
||||
.spbillCreateIp("127.0.0.1")
|
||||
//.timeExpire()
|
||||
//.timeStart()
|
||||
.totalFee(1)
|
||||
.tradeType("MWEB")
|
||||
.contractOuterId(displayAccount)
|
||||
.build();
|
||||
|
||||
try {
|
||||
WxPayEntrustResult wxPayEntrustResult = this.payService.getWxEntrustPapService().paySign(wxPayEntrustRequest);
|
||||
logger.info(wxPayEntrustResult.toString());
|
||||
} catch (WxPayException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testWithhold() {
|
||||
String outTradeNo = "101010101";
|
||||
WxWithholdRequest withholdRequest = WxWithholdRequest.newBuilder()
|
||||
.attach("local")
|
||||
.body("产品名字")
|
||||
.contractId("202011065409471222") // 微信返回的签约协议号
|
||||
.detail("产品描述")
|
||||
.feeType("CNY")
|
||||
//.goodsTag()
|
||||
.notifyUrl("http://domain.com/api/wxpay/withhold/callback.do")
|
||||
.outTradeNo(outTradeNo)
|
||||
.spbillCreateIp("127.0.0.1")
|
||||
.totalFee(1)
|
||||
.tradeType("PAP")
|
||||
.build();
|
||||
|
||||
try {
|
||||
WxWithholdResult wxWithholdResult = this.payService.getWxEntrustPapService().withhold(withholdRequest);
|
||||
logger.info(wxWithholdResult.toString());
|
||||
} catch (WxPayException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPreWithhold() {
|
||||
WxPreWithholdRequest.EstimateAmount estimateAmount = new WxPreWithholdRequest.EstimateAmount();
|
||||
estimateAmount.setAmount(1);
|
||||
estimateAmount.setCurrency("CNY");
|
||||
|
||||
WxPreWithholdRequest wxPreWithholdRequest = WxPreWithholdRequest.newBuilder()
|
||||
.appId("wx73dssxxxxxx")
|
||||
.contractId("202010275173070001")
|
||||
.estimateAmount(estimateAmount)
|
||||
.mchId("1600010102")
|
||||
.build();
|
||||
|
||||
try {
|
||||
String httpResponseModel = this.payService.getWxEntrustPapService().preWithhold(wxPreWithholdRequest);
|
||||
logger.info(httpResponseModel);
|
||||
} catch (WxPayException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testQuerySign() {
|
||||
String outTradeNo = "1212121212";
|
||||
|
||||
WxSignQueryRequest wxSignQueryRequest = WxSignQueryRequest.newBuilder()
|
||||
//.contractId("202010275173073211")
|
||||
.contractCode(outTradeNo)
|
||||
.planId(1432112)
|
||||
.version("1.0")
|
||||
.build();
|
||||
|
||||
try {
|
||||
WxSignQueryResult wxSignQueryResult = this.payService.getWxEntrustPapService().querySign(wxSignQueryRequest);
|
||||
logger.info(wxSignQueryResult.toString());
|
||||
} catch (WxPayException e) {
|
||||
logger.info("异常码:" + e.getErrCode());
|
||||
logger.info("异常:" + e);
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testTerminationContract() {
|
||||
WxTerminatedContractRequest wxTerminatedContractRequest = WxTerminatedContractRequest.newBuilder()
|
||||
.contractId("202010275173070231")
|
||||
.contractTerminationRemark("测试解约")
|
||||
.version("1.0")
|
||||
.build();
|
||||
|
||||
try {
|
||||
WxTerminationContractResult wxTerminationContractResult = this.payService.getWxEntrustPapService().terminationContract(wxTerminatedContractRequest);
|
||||
logger.info(wxTerminationContractResult.toString());
|
||||
} catch (WxPayException e) {
|
||||
logger.error(e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user