Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
O
order-group
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
order-group-application
order-group
Commits
b2aab53f
Commit
b2aab53f
authored
Jun 09, 2022
by
周晓航
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
【订C】新增订单退款成功回调接口,需要修改售后单状态(原因:发起退款时支付那边可能是退款中状态,定时任务补偿后需要回调订单)
parent
b85b4c71
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
86 additions
and
1 deletions
+86
-1
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/response/order/MultiOrderRefundResponse.java
+18
-1
order-application-service/src/main/java/cn/freemud/controller/OrderController.java
+11
-0
order-application-service/src/main/java/cn/freemud/entities/vo/RefundSuccessCallbackVo.java
+29
-0
order-application-service/src/main/java/cn/freemud/service/impl/OrderAdapterServiceImpl.java
+0
-0
order-management/src/main/java/cn/freemud/management/adapter/PaymentSdkAdapter.java
+17
-0
order-management/src/main/java/cn/freemud/management/entities/dto/response/pay/AgentPayRefundResp.java
+8
-0
order-management/src/main/java/cn/freemud/management/enums/ResponseResult.java
+2
-0
order-management/src/main/java/cn/freemud/management/service/handle/PaymentHandle.java
+0
-0
order-management/src/main/java/cn/freemud/management/service/handle/SaasOrderHandle.java
+1
-0
order-management/src/main/java/cn/freemud/management/service/impl/SaasOrderMangerServiceImpl.java
+0
-0
No files found.
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/response/order/MultiOrderRefundResponse.java
View file @
b2aab53f
package
com
.
freemud
.
sdk
.
api
.
assortment
.
order
.
response
.
order
;
import
com.fasterxml.jackson.annotation.JsonIgnoreProperties
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.util.List
;
...
...
@@ -22,7 +23,16 @@ public class MultiOrderRefundResponse<T> {
}
@Data
public
static
class
RefundPlatformResponse
{
public
static
class
RefundPlatformResponse
{
/**
* 退款中状态码需要单独处理
*/
public
static
Integer
REFUNDED_RESULTCODE
=
8200305
;
/**
* 退款成功
*/
public
static
Integer
REFUND_SUCCESS
=
100
;
private
String
endTransTradeNo
;
private
String
fmRefundNo
;
private
String
fmTradeNo
;
...
...
@@ -39,5 +49,11 @@ public class MultiOrderRefundResponse<T> {
private
Integer
totalAmount
;
private
String
transId
;
private
String
ebcode
;
@ApiModelProperty
(
value
=
"业务返回码 8200305 代表退款中 100是成功 其他 都是失败"
)
private
Integer
resultCode
;
@ApiModelProperty
(
value
=
"业务返回消息"
)
private
String
resultMsg
;
}
}
\ No newline at end of file
order-application-service/src/main/java/cn/freemud/controller/OrderController.java
View file @
b2aab53f
...
...
@@ -556,5 +556,16 @@ public class OrderController {
return
ResponseUtil
.
success
(
orderAdapterService
.
getOrderConfig
(
request
));
}
/**
* 同意退款, 支付服务退款失败的补偿接口
*
* 退款成功会回调该接口进行后续流程补偿
*/
@IsConvertEN
@ApiAnnotation
(
logMessage
=
"/order/refund/callback"
)
@PostMapping
(
"/refund/callback"
)
public
BaseResponse
refundSuccessCallback
(
@Validated
@LogParams
@RequestBody
RefundSuccessCallbackVo
req
)
{
return
orderAdapterService
.
refundSuccessCallback
(
req
);
}
}
order-application-service/src/main/java/cn/freemud/entities/vo/RefundSuccessCallbackVo.java
0 → 100644
View file @
b2aab53f
package
cn
.
freemud
.
entities
.
vo
;
import
javax.validation.constraints.NotBlank
;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2022/6/8 17:38
* @description :
*/
public
class
RefundSuccessCallbackVo
{
/**
* 商户号
*/
@NotBlank
(
message
=
"商户号不能为空"
)
private
String
partnerId
;
/**
* 订单号
*/
@NotBlank
(
message
=
"订单编号不能为空"
)
private
String
orderCode
;
/**
* 退款序列号
*/
private
String
refundId
;
}
order-application-service/src/main/java/cn/freemud/service/impl/OrderAdapterServiceImpl.java
View file @
b2aab53f
This diff is collapsed.
Click to expand it.
order-management/src/main/java/cn/freemud/management/adapter/PaymentSdkAdapter.java
View file @
b2aab53f
package
cn
.
freemud
.
management
.
adapter
;
import
cn.freemud.management.entities.dto.request.pay.AgentPayRefundReq
;
import
cn.freemud.management.entities.dto.request.pay.PayRefundRequestDto
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.freemud.application.sdk.api.ordercenter.entities.v1.OrderBeanV1
;
import
com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto
;
...
...
@@ -76,6 +78,21 @@ public class PaymentSdkAdapter {
return
multiQueryRequest
;
}
@SneakyThrows
public
AgentPayRefundReq
getAgentPayefundReq
(
OrderBeanV1
orderBean
,
BigDecimal
refundAmount
)
{
OrderExtInfoDto
ext
=
JSON
.
parseObject
(
orderBean
.
getExtInfo
(),
OrderExtInfoDto
.
class
);
AgentPayRefundReq
req
=
new
AgentPayRefundReq
();
req
.
setPartnerId
(
orderBean
.
getCompanyId
());
req
.
setStoreId
(
orderBean
.
getShopId
());
req
.
setFmTradeNo
(
ext
.
getPayTransId
());
req
.
setOutOrderNo
(
orderBean
.
getOid
());
req
.
setRefundTradeNo
(
this
.
getRefundSerialNo
().
toString
());
req
.
setRefundAmount
(
refundAmount
.
longValue
());
req
.
setNotifyUrl
(
refundNotifyCallback
);
req
.
setVer
(
"V1"
);
return
req
;
}
public
Long
getRefundSerialNo
()
{
return
System
.
currentTimeMillis
()
+
(
int
)
(
Math
.
random
()
*
9000
)
+
1000
;
}
...
...
order-management/src/main/java/cn/freemud/management/entities/dto/response/pay/AgentPayRefundResp.java
View file @
b2aab53f
package
cn
.
freemud
.
management
.
entities
.
dto
.
response
.
pay
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
...
...
@@ -20,6 +21,7 @@ public class AgentPayRefundResp {
@NoArgsConstructor
@Data
public
static
class
DataDTO
{
private
String
fmTradeNo
;
private
String
endTransTradeNo
;
private
String
platformTradeNo
;
...
...
@@ -35,6 +37,12 @@ public class AgentPayRefundResp {
private
String
refundTime
;
private
String
transId
;
private
String
ebcode
;
@ApiModelProperty
(
value
=
"业务返回码"
)
private
Integer
resultCode
;
@ApiModelProperty
(
value
=
"业务返回消息"
)
private
String
resultMsg
;
}
public
boolean
isOk
()
{
...
...
order-management/src/main/java/cn/freemud/management/enums/ResponseResult.java
View file @
b2aab53f
...
...
@@ -181,6 +181,8 @@ public enum ResponseResult {
REFUND_EXCEPTION
(
"58004"
,
"支付退款异常"
),
REFUND_FAIL
(
"58005"
,
"支付退款失败"
),
NOT_SUFFICIENT_FUNDS
(
"8200201"
,
"商户余额不足"
),
CHECK_PARAM_ERROR
(
"58006"
,
"支付退款请求参数校验异常"
),
REFUND_FAIL_WAIT_CALLBACK
(
"58007"
,
"支付退款失败,等待回调补偿中"
),
/**
* 优惠券活动
*/
...
...
order-management/src/main/java/cn/freemud/management/service/handle/PaymentHandle.java
View file @
b2aab53f
This diff is collapsed.
Click to expand it.
order-management/src/main/java/cn/freemud/management/service/handle/SaasOrderHandle.java
View file @
b2aab53f
...
...
@@ -221,6 +221,7 @@ public class SaasOrderHandle {
if
(
PayRefundStatus
.
SUCCESS
.
equals
(
refundResponse
.
getPayRefundStatus
()))
{
baseOrderResponse
=
orderCenterSdkService
.
refundComplete
(
refundAgreeRequest
);
}
else
{
// fisherman 这里有缺陷 退款失败也是最终状态, 基础服务售后状态不能为 4 不然用户无法重新发起售后单
baseOrderResponse
=
orderCenterSdkService
.
refundReturn
(
refundAgreeRequest
);
}
if
(
baseOrderResponse
==
null
||
ObjectUtils
.
notEqual
(
ResponseResult
.
SUCCESS
.
getCode
(),
baseOrderResponse
.
getErrcode
().
toString
()))
{
...
...
order-management/src/main/java/cn/freemud/management/service/impl/SaasOrderMangerServiceImpl.java
View file @
b2aab53f
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment