Toggle navigation
Toggle navigation
This project
Loading...
Sign in
jiujian
/
client-customer-order-api
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
zhuyifan
2025-02-20 13:48:51 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
f5e7e733a073a1d12e308a3bb0fa13829c94fd71
f5e7e733
1 parent
c06206bc
支付回调接口处理
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
64 additions
and
3 deletions
build.gradle
src/main/java/com/infoloop/tianting/config/AppConfig.java
src/main/java/com/infoloop/tianting/controller/PayController.java
src/main/java/com/infoloop/tianting/model/dto/PaymentCallbackDTO.java
src/main/java/com/infoloop/tianting/service/client/PayServiceClient.java
build.gradle
View file @
f5e7e73
...
...
@@ -42,6 +42,7 @@ dependencies {
implementation
"org.apache.poi:poi:4.1.2"
//poi
implementation
"org.apache.poi:poi-ooxml:4.1.2"
//poi
implementation
'cn.hutool:hutool-all:5.8.27'
//huTool-util
implementation
'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.11.2'
// Jackson XML 模块
implementation
'com.aliyun:aliyun-java-sdk-core:4.6.4'
//阿里云SDK核心库
implementation
'com.aliyun:aliyun-java-sdk-dysmsapi:2.2.1'
//阿里云短信服务SDK
...
...
src/main/java/com/infoloop/tianting/config/AppConfig.java
View file @
f5e7e73
...
...
@@ -2,6 +2,7 @@ package com.infoloop.tianting.config;
import
com.aliyuncs.DefaultAcsClient
;
import
com.aliyuncs.profile.DefaultProfile
;
import
com.fasterxml.jackson.dataformat.xml.XmlMapper
;
import
com.infoloop.tianting.store.LoginCodeStore
;
import
com.infoloop.tianting.utils.SmsUtil
;
import
io.lettuce.core.api.StatefulRedisConnection
;
...
...
@@ -10,6 +11,7 @@ import org.springframework.beans.factory.annotation.Qualifier;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.Import
;
import
org.springframework.http.converter.xml.MappingJackson2XmlHttpMessageConverter
;
import
static
com
.
infoloop
.
tianting
.
constant
.
ConfigConstants
.
REDIS_CONNECTION
;
...
...
@@ -32,4 +34,9 @@ public class AppConfig {
return
new
SmsUtil
(
smsConfig
,
new
DefaultAcsClient
(
profile
));
}
@Bean
public
MappingJackson2XmlHttpMessageConverter
mappingJackson2XmlHttpMessageConverter
()
{
return
new
MappingJackson2XmlHttpMessageConverter
(
new
XmlMapper
());
}
}
...
...
src/main/java/com/infoloop/tianting/controller/PayController.java
View file @
f5e7e73
...
...
@@ -4,6 +4,7 @@ import cn.dev33.satoken.annotation.SaIgnore;
import
com.github.xiaoymin.knife4j.annotations.ApiSupport
;
import
com.infoloop.tianting.model.dto.PayDTO
;
import
com.infoloop.tianting.model.dto.PayDTO.PayResponseDto
;
import
com.infoloop.tianting.model.dto.PaymentCallbackDTO
;
import
com.infoloop.tianting.service.client.PayServiceClient
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
...
...
@@ -11,6 +12,7 @@ import lombok.RequiredArgsConstructor;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.MediaType
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
...
...
@@ -39,9 +41,9 @@ public class PayController {
@SaIgnore
@ApiOperation
(
value
=
"支付通知"
)
@PostMapping
(
"/pay/callback"
)
@PostMapping
(
value
=
"/pay/callback"
,
consumes
=
MediaType
.
APPLICATION_XML_VALUE
,
produces
=
MediaType
.
APPLICATION_JSON_VALUE
)
@ResponseStatus
(
HttpStatus
.
OK
)
public
void
callback
(
@
Valid
@RequestBody
PayDTO
.
PayInformRequestDto
payInformRequestDto
)
{
public
void
callback
(
@
RequestBody
PaymentCallbackDTO
payInformRequestDto
)
{
payServiceClient
.
callback
(
payInformRequestDto
);
}
...
...
src/main/java/com/infoloop/tianting/model/dto/PaymentCallbackDTO.java
0 → 100644
View file @
f5e7e73
package
com
.
infoloop
.
tianting
.
model
.
dto
;
import
com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty
;
import
lombok.Data
;
@Data
public
class
PaymentCallbackDTO
{
@JacksonXmlProperty
(
localName
=
"TradeId"
)
private
String
tradeId
;
@JacksonXmlProperty
(
localName
=
"TransSN"
)
private
String
transSN
;
@JacksonXmlProperty
(
localName
=
"TransType"
)
private
String
transType
;
@JacksonXmlProperty
(
localName
=
"TransAmount"
)
private
String
transAmount
;
@JacksonXmlProperty
(
localName
=
"RealAmount"
)
private
String
realAmount
;
@JacksonXmlProperty
(
localName
=
"PayMode"
)
private
String
payMode
;
@JacksonXmlProperty
(
localName
=
"PayModeRemark"
)
private
String
payModeRemark
;
@JacksonXmlProperty
(
localName
=
"TransDate"
)
private
String
transDate
;
@JacksonXmlProperty
(
localName
=
"OrginalTransSN"
)
private
String
orginalTransSN
;
@JacksonXmlProperty
(
localName
=
"Remark"
)
private
String
remark
;
@JacksonXmlProperty
(
localName
=
"PayModeNote"
)
private
String
payModeNote
;
@JacksonXmlProperty
(
localName
=
"PayIdentify"
)
private
String
payIdentify
;
@JacksonXmlProperty
(
localName
=
"PayIdentifyNote"
)
private
String
payIdentifyNote
;
}
src/main/java/com/infoloop/tianting/service/client/PayServiceClient.java
View file @
f5e7e73
...
...
@@ -7,6 +7,7 @@ import com.infoloop.tianting.config.BusinessConfig;
import
com.infoloop.tianting.model.dto.PayDTO.PayInformRequestDto
;
import
com.infoloop.tianting.model.dto.PayDTO.PayResponseDto
;
import
com.infoloop.tianting.model.dto.PayDTO.ThirdPartyPayInformRequestDto
;
import
com.infoloop.tianting.model.dto.PaymentCallbackDTO
;
import
com.infoloop.tianting.utils.DateUtil
;
import
com.infoloop.tianting.utils.EncryptionUtil
;
import
lombok.RequiredArgsConstructor
;
...
...
@@ -30,7 +31,9 @@ import java.time.LocalDateTime;
public
class
PayServiceClient
{
private
final
RestTemplate
restTemplate
;
private
final
BusinessConfig
businessConfig
;
private
final
ObjectMapper
objectMapper
;
@Value
(
"${payment.client-id:Order0001}"
)
...
...
@@ -85,7 +88,8 @@ public class PayServiceClient {
return
responseEntity
.
getBody
();
}
public
void
callback
(
PayInformRequestDto
payInformRequestDto
)
{
public
void
callback
(
PaymentCallbackDTO
payInformRequestDto
)
{
log
.
info
(
"callback: {}"
,
payInformRequestDto
);
}
}
...
...
Please
register
or
login
to post a comment