mirror of
https://github.com/dromara/payment-spring-boot.git
synced 2026-03-16 06:53:41 +08:00
README.md
This commit is contained in:
20
README.md
20
README.md
@@ -29,9 +29,25 @@
|
|||||||
更多参考[changelog](https://notfound403.github.io/payment-spring-boot/#/changelog)
|
更多参考[changelog](https://notfound403.github.io/payment-spring-boot/#/changelog)
|
||||||
|
|
||||||
## 核心API结构
|
## 核心API结构
|
||||||

|

|
||||||
|
|
||||||
> 随着版本迭代会增加
|
- `WechatPartnerProfitsharingApi` 微信支付服务商V3分账
|
||||||
|
- `WechatPayCallback` 微信支付V3回调通知工具封装
|
||||||
|
- `WechatAllocationApi` 微信支付V2分账(未来会移除)
|
||||||
|
- `WechatMarketingFavorApi` 微信支付代金券V3
|
||||||
|
- `WechatCombinePayApi` 微信支付合单支付V3
|
||||||
|
- `WechatPayScoreApi` 微信支付分V3
|
||||||
|
- `WechatPayRedpackApi` 微信支付V2现金红包
|
||||||
|
- `WechatDiscountCardApi` 微信支付V3先享卡
|
||||||
|
- `WechatProfitsharingApi` 微信支付直连商户V3分账
|
||||||
|
- `WechatPartnerPayApi` 微信支付服务商模式V3普通支付
|
||||||
|
- `WechatMarketingBusiFavorApi` 微信支付V3商家券
|
||||||
|
- `WechatPayTransfersApi` 微信支付V2企业付款到零钱,目前不包括到银行卡
|
||||||
|
- `WechatDirectPayApi` 微信支付直连模式V3普通支付
|
||||||
|
- `WechatPayScoreParkingApi` 微信支付分V3停车服务
|
||||||
|
- `WechatBatchTransferApi` 微信支付V3批量转账到零钱
|
||||||
|
|
||||||
|
> 随着版本迭代功能会增加。
|
||||||
|
|
||||||
## 开源协议
|
## 开源协议
|
||||||
**Apache 2.0**
|
**Apache 2.0**
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ import com.fasterxml.jackson.annotation.JsonInclude;
|
|||||||
import com.fasterxml.jackson.databind.DeserializationFeature;
|
import com.fasterxml.jackson.databind.DeserializationFeature;
|
||||||
import com.fasterxml.jackson.databind.JsonNode;
|
import com.fasterxml.jackson.databind.JsonNode;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import com.fasterxml.jackson.databind.PropertyNamingStrategy;
|
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
|
||||||
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
|
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
|
||||||
import lombok.SneakyThrows;
|
import lombok.SneakyThrows;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
@@ -47,7 +47,7 @@ public class WechatAllocationApi {
|
|||||||
private static final ObjectMapper MAPPER = new ObjectMapper();
|
private static final ObjectMapper MAPPER = new ObjectMapper();
|
||||||
|
|
||||||
static {
|
static {
|
||||||
MAPPER.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE)
|
MAPPER.setPropertyNamingStrategy(PropertyNamingStrategies.SNAKE_CASE)
|
||||||
.setSerializationInclusion(JsonInclude.Include.NON_NULL)
|
.setSerializationInclusion(JsonInclude.Include.NON_NULL)
|
||||||
.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
|
.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
|
||||||
.configure(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT, true)
|
.configure(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT, true)
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ import com.fasterxml.jackson.annotation.JsonInclude;
|
|||||||
import com.fasterxml.jackson.core.type.TypeReference;
|
import com.fasterxml.jackson.core.type.TypeReference;
|
||||||
import com.fasterxml.jackson.databind.JsonNode;
|
import com.fasterxml.jackson.databind.JsonNode;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import com.fasterxml.jackson.databind.PropertyNamingStrategy;
|
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
|
||||||
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
|
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.SneakyThrows;
|
import lombok.SneakyThrows;
|
||||||
@@ -54,7 +54,11 @@ import javax.net.ssl.HostnameVerifier;
|
|||||||
import javax.net.ssl.SSLContext;
|
import javax.net.ssl.SSLContext;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.security.*;
|
import java.security.KeyManagementException;
|
||||||
|
import java.security.KeyStore;
|
||||||
|
import java.security.KeyStoreException;
|
||||||
|
import java.security.NoSuchAlgorithmException;
|
||||||
|
import java.security.UnrecoverableKeyException;
|
||||||
import java.security.cert.CertificateException;
|
import java.security.cert.CertificateException;
|
||||||
import java.util.TreeMap;
|
import java.util.TreeMap;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
@@ -75,11 +79,11 @@ public abstract class BaseModel {
|
|||||||
// 忽略null
|
// 忽略null
|
||||||
XML_MAPPER.setSerializationInclusion(JsonInclude.Include.NON_NULL)
|
XML_MAPPER.setSerializationInclusion(JsonInclude.Include.NON_NULL)
|
||||||
// 属性使用 驼峰首字母小写
|
// 属性使用 驼峰首字母小写
|
||||||
.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE);
|
.setPropertyNamingStrategy(PropertyNamingStrategies.SNAKE_CASE);
|
||||||
OBJECT_MAPPER
|
OBJECT_MAPPER
|
||||||
// .configure(MapperFeature.SORT_PROPERTIES_ALPHABETICALLY, true)
|
// .configure(MapperFeature.SORT_PROPERTIES_ALPHABETICALLY, true)
|
||||||
.setSerializationInclusion(JsonInclude.Include.NON_NULL)
|
.setSerializationInclusion(JsonInclude.Include.NON_NULL)
|
||||||
.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE);
|
.setPropertyNamingStrategy(PropertyNamingStrategies.SNAKE_CASE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ import com.fasterxml.jackson.annotation.JsonInclude;
|
|||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
import com.fasterxml.jackson.databind.DeserializationFeature;
|
import com.fasterxml.jackson.databind.DeserializationFeature;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import com.fasterxml.jackson.databind.PropertyNamingStrategy;
|
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
|
||||||
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
|
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
|
||||||
import lombok.SneakyThrows;
|
import lombok.SneakyThrows;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
@@ -78,7 +78,7 @@ public class WechatPayCallback {
|
|||||||
private final String tenantId;
|
private final String tenantId;
|
||||||
|
|
||||||
static {
|
static {
|
||||||
MAPPER.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE)
|
MAPPER.setPropertyNamingStrategy(PropertyNamingStrategies.SNAKE_CASE)
|
||||||
.setSerializationInclusion(JsonInclude.Include.NON_NULL)
|
.setSerializationInclusion(JsonInclude.Include.NON_NULL)
|
||||||
.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
|
.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
|
||||||
.configure(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT, true)
|
.configure(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT, true)
|
||||||
|
|||||||
Reference in New Issue
Block a user