mirror of
https://github.com/dromara/payment-spring-boot.git
synced 2026-03-13 21:33:41 +08:00
@@ -45,7 +45,7 @@ Starter,支持微信优惠券,代金券、商家券、智慧商圈、商家
|
||||
<dependency>
|
||||
<groupId>cn.felord</groupId>
|
||||
<artifactId>payment-spring-boot-starter</artifactId>
|
||||
<version>1.0.19.RELEASE</version>
|
||||
<version>1.0.20.RELEASE</version>
|
||||
</dependency>
|
||||
```
|
||||
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
<dependency>
|
||||
<groupId>cn.felord</groupId>
|
||||
<artifactId>payment-spring-boot-starter</artifactId>
|
||||
<version>1.0.19.RELEASE</version>
|
||||
<version>1.0.20.RELEASE</version>
|
||||
</dependency>
|
||||
```
|
||||
## 采用技术
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<dependency>
|
||||
<groupId>cn.felord</groupId>
|
||||
<artifactId>payment-spring-boot-starter</artifactId>
|
||||
<version>1.0.19.RELEASE</version>
|
||||
<version>1.0.20.RELEASE</version>
|
||||
</dependency>
|
||||
```
|
||||
> 基于 **Spring Boot 2.x**
|
||||
|
||||
@@ -22,11 +22,11 @@
|
||||
<parent>
|
||||
<groupId>cn.felord</groupId>
|
||||
<artifactId>payment-spring-boot</artifactId>
|
||||
<version>1.0.19.RELEASE</version>
|
||||
<version>1.0.20.RELEASE</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>payment-spring-boot-autoconfigure</artifactId>
|
||||
<version>1.0.19.RELEASE</version>
|
||||
<version>1.0.20.RELEASE</version>
|
||||
<packaging>jar</packaging>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
||||
@@ -0,0 +1,71 @@
|
||||
/*
|
||||
* Copyright 2019-2022 felord.cn
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* https://www.apache.org/licenses/LICENSE-2.0
|
||||
* Website:
|
||||
* https://felord.cn
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package cn.felord.payment.wechat.enumeration;
|
||||
|
||||
/**
|
||||
* The enum Business cert type.
|
||||
*
|
||||
* @author dax
|
||||
* @since 2023 /7/1 8:34
|
||||
*/
|
||||
public enum BusinessCertType {
|
||||
/**
|
||||
* 事业单位法人证书
|
||||
*/
|
||||
CERTIFICATE_TYPE_2388,
|
||||
|
||||
/**
|
||||
* 统一社会信用代码证书
|
||||
*/
|
||||
CERTIFICATE_TYPE_2389,
|
||||
|
||||
/**
|
||||
* 社会团体法人登记证书
|
||||
*/
|
||||
CERTIFICATE_TYPE_2394,
|
||||
/**
|
||||
* 民办非企业单位登记证书
|
||||
*/
|
||||
CERTIFICATE_TYPE_2395,
|
||||
|
||||
/**
|
||||
* 基金会法人登记证书
|
||||
*/
|
||||
CERTIFICATE_TYPE_2396,
|
||||
/**
|
||||
* 宗教活动场所登记证
|
||||
*/
|
||||
CERTIFICATE_TYPE_2399,
|
||||
|
||||
/**
|
||||
* 政府部门下发的其他有效证明文件
|
||||
*/
|
||||
CERTIFICATE_TYPE_2400,
|
||||
/**
|
||||
* 执业许可证/执业证
|
||||
*/
|
||||
CERTIFICATE_TYPE_2520,
|
||||
/**
|
||||
* 基层群众性自治组织特别法人统一社会信用代码证
|
||||
*/
|
||||
CERTIFICATE_TYPE_2521,
|
||||
/**
|
||||
* 农村集体经济组织登记证
|
||||
*/
|
||||
CERTIFICATE_TYPE_2522
|
||||
}
|
||||
@@ -31,6 +31,9 @@ import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.fasterxml.jackson.databind.PropertyNamingStrategy;
|
||||
import com.fasterxml.jackson.databind.node.ObjectNode;
|
||||
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
|
||||
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer;
|
||||
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
|
||||
import com.fasterxml.jackson.datatype.jsr310.ser.LocalTimeSerializer;
|
||||
import org.springframework.core.io.Resource;
|
||||
import org.springframework.http.ContentDisposition;
|
||||
import org.springframework.http.HttpHeaders;
|
||||
@@ -44,6 +47,8 @@ import org.springframework.web.util.UriComponentsBuilder;
|
||||
|
||||
import java.net.URI;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
@@ -92,12 +97,16 @@ public abstract class AbstractApi {
|
||||
* @param mapper the mapper
|
||||
*/
|
||||
private void applyObjectMapper(ObjectMapper mapper) {
|
||||
JavaTimeModule javaTimeModule = new JavaTimeModule();
|
||||
javaTimeModule.addSerializer(LocalDate.class, new LocalDateSerializer(DateTimeFormatter.ISO_LOCAL_DATE));
|
||||
javaTimeModule.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(DateTimeFormatter.ISO_LOCAL_DATE_TIME));
|
||||
javaTimeModule.addSerializer(LocalTime.class, new LocalTimeSerializer(DateTimeFormatter.ISO_LOCAL_TIME));
|
||||
mapper.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE)
|
||||
.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
|
||||
// empty string error
|
||||
.configure(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT, true)
|
||||
.setSerializationInclusion(JsonInclude.Include.NON_NULL)
|
||||
.registerModule(new JavaTimeModule());
|
||||
.registerModule(javaTimeModule);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -230,12 +230,9 @@ public class SignatureProvider {
|
||||
throw new PayException("cant obtain the response body");
|
||||
}
|
||||
ArrayNode certificates = bodyObjectNode.withArray("data");
|
||||
if (certificates.isArray() && certificates.size() > 0) {
|
||||
CERTIFICATE_SET.forEach(x509WechatCertificateInfo -> {
|
||||
if (Objects.equals(tenantId, x509WechatCertificateInfo.getTenantId())) {
|
||||
CERTIFICATE_SET.remove(x509WechatCertificateInfo);
|
||||
}
|
||||
});
|
||||
if (certificates.isArray() && !certificates.isEmpty()) {
|
||||
CERTIFICATE_SET.removeIf(x509WechatCertificateInfo ->
|
||||
Objects.equals(tenantId, x509WechatCertificateInfo.getTenantId()));
|
||||
final CertificateFactory certificateFactory = CertificateFactory.getInstance("X509", BC_PROVIDER);
|
||||
certificates.forEach(objectNode -> {
|
||||
JsonNode encryptCertificate = objectNode.get("encrypt_certificate");
|
||||
|
||||
@@ -158,7 +158,9 @@ public class WechatMarketingFavorApi extends AbstractApi {
|
||||
WechatPayProperties.V3 v3 = this.wechatMetaBean().getV3();
|
||||
|
||||
params.setAppid(v3.getAppId());
|
||||
if (StringUtils.hasText(params.getStockCreatorMchid())){
|
||||
params.setStockCreatorMchid(v3.getMchId());
|
||||
}
|
||||
URI uri = UriComponentsBuilder.fromHttpUrl(type.uri(WeChatServer.CHINA))
|
||||
.build()
|
||||
.expand(params.getOpenid())
|
||||
|
||||
@@ -76,6 +76,7 @@ public class WechatPayScoreParkingApi extends AbstractApi {
|
||||
|
||||
URI uri = UriComponentsBuilder.fromHttpUrl(wechatPayV3Type.uri(WeChatServer.CHINA))
|
||||
.queryParams(queryParams)
|
||||
.encode()
|
||||
.build()
|
||||
.toUri();
|
||||
return Get(uri);
|
||||
|
||||
@@ -61,6 +61,11 @@ public class CreateBatchTransferParams {
|
||||
* 指定该笔转账使用的转账场景ID
|
||||
*/
|
||||
private String transferSceneId;
|
||||
/**
|
||||
* 回调通知
|
||||
* @since 1.0.20
|
||||
*/
|
||||
private String notifyUrl;
|
||||
|
||||
/**
|
||||
* 转账明细.
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
|
||||
package cn.felord.payment.wechat.v3.model.ecommerce;
|
||||
|
||||
import cn.felord.payment.wechat.enumeration.BusinessCertType;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
@@ -25,6 +26,7 @@ import lombok.Data;
|
||||
*/
|
||||
@Data
|
||||
public class EcommerceBusinessLicenseInfo {
|
||||
private BusinessCertType certType;
|
||||
private String businessLicenseCopy;
|
||||
private String businessLicenseNumber;
|
||||
private String merchantName;
|
||||
|
||||
@@ -28,9 +28,9 @@ public class EcommerceContactInfo {
|
||||
private String contactIdCardNumber;
|
||||
private String contactIdDocCopy;
|
||||
private String contactIdDocCopyBack;
|
||||
private String contactIdDocPeriodBegin;
|
||||
private String contactIdDocPeriodEnd;
|
||||
private String businessAuthorizationLetter;
|
||||
private String contactIdDocPeriodBegin;
|
||||
private String mobilePhone;
|
||||
private String contactEmail;
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
/*
|
||||
* Copyright 2019-2022 felord.cn
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* https://www.apache.org/licenses/LICENSE-2.0
|
||||
* Website:
|
||||
* https://felord.cn
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package cn.felord.payment.wechat.v3.model.ecommerce;
|
||||
|
||||
import cn.felord.payment.wechat.enumeration.IdDocType;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
@Data
|
||||
public class UboInfoListItem {
|
||||
private IdDocType uboIdDocType;
|
||||
private String uboIdDocCopy;
|
||||
private String uboIdDocCopyBack;
|
||||
private String uboIdDocName;
|
||||
private String uboIdDocNumber;
|
||||
private String uboIdDocAddress;
|
||||
private LocalDate uboIdDocPeriodBegin;
|
||||
private String uboIdDocPeriodEnd;
|
||||
}
|
||||
@@ -22,11 +22,11 @@
|
||||
<parent>
|
||||
<groupId>cn.felord</groupId>
|
||||
<artifactId>payment-spring-boot</artifactId>
|
||||
<version>1.0.19.RELEASE</version>
|
||||
<version>1.0.20.RELEASE</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>payment-spring-boot-starter</artifactId>
|
||||
<version>1.0.19.RELEASE</version>
|
||||
<version>1.0.20.RELEASE</version>
|
||||
<packaging>jar</packaging>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
||||
4
pom.xml
4
pom.xml
@@ -21,7 +21,7 @@
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<groupId>cn.felord</groupId>
|
||||
<artifactId>payment-spring-boot</artifactId>
|
||||
<version>1.0.19.RELEASE</version>
|
||||
<version>1.0.20.RELEASE</version>
|
||||
<packaging>pom</packaging>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
@@ -90,7 +90,7 @@
|
||||
<java.version>1.8</java.version>
|
||||
<spring-boot.version>2.7.7</spring-boot.version>
|
||||
<alipay-sdk.version>4.31.7.ALL</alipay-sdk.version>
|
||||
<bcprov.version>1.69</bcprov.version>
|
||||
<bcprov.version>1.74</bcprov.version>
|
||||
</properties>
|
||||
|
||||
<distributionManagement>
|
||||
|
||||
Reference in New Issue
Block a user