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
269947c8
Commit
269947c8
authored
Jun 13, 2022
by
周晓航
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
退款没拦截成功的优化
parent
77126629
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
105 additions
and
7 deletions
+105
-7
order-management/src/main/java/cn/freemud/management/service/handle/DemoMain.java
+103
-0
order-management/src/main/java/cn/freemud/management/service/handle/PaymentHandle.java
+2
-7
No files found.
order-management/src/main/java/cn/freemud/management/service/handle/DemoMain.java
0 → 100644
View file @
269947c8
package
cn
.
freemud
.
management
.
service
.
handle
;
import
cn.freemud.management.entities.dto.response.pay.OrderRefundResponse
;
import
cn.freemud.management.entities.dto.response.pay.PayRefundData
;
import
cn.freemud.management.enums.PaymentRefundStatus
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.TypeReference
;
import
com.freemud.application.sdk.api.base.BaseResponse
;
import
com.freemud.application.sdk.api.util.ResponseUtils
;
import
com.freemud.sdk.api.assortment.order.enums.PayRefundStatus
;
import
org.apache.commons.lang.ObjectUtils
;
import
java.util.Objects
;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2022/6/13 10:56
* @description :
*/
public
class
DemoMain
{
public
static
void
main
(
String
[]
args
)
{
String
str
=
"{\n"
+
" \"code\": \"100\",\n"
+
" \"data\": {\n"
+
" \"refundAmount\": 2,\n"
+
" \"refundTradeNo\": \"246461447756995675\",\n"
+
" \"resultCode\": 8200305,\n"
+
" \"resultMsg\": \"退款测试开关打开:退款成功后失败\",\n"
+
" \"thirdPartTradeNo\": \"112474208621622061309493318575\",\n"
+
" \"totalAmount\": 2,\n"
+
" \"tradeNo\": \"7702399246460840433310808\"\n"
+
" },\n"
+
" \"message\": \"success\"\n"
+
"}"
;
BaseResponse
<
PayRefundData
>
refundNewResponse
=
JSON
.
parseObject
(
str
,
new
TypeReference
<
BaseResponse
<
PayRefundData
>>()
{
});
if
(
Objects
.
equals
(
refundNewResponse
.
getCode
(),
"100"
)
&&
refundNewResponse
.
getData
()
!=
null
)
{
refundNewResponse
.
setCode
(
refundNewResponse
.
getData
().
getResultCode
().
toString
());
refundNewResponse
.
setMessage
(
refundNewResponse
.
getData
().
getResultMsg
());
}
if
(
Objects
.
equals
(
refundNewResponse
.
getCode
(),
"100"
))
{
PayRefundData
refundData
=
refundNewResponse
.
getData
();
if
(
null
!=
refundData
)
{
OrderRefundResponse
refundResponse
=
new
OrderRefundResponse
();
refundResponse
.
setStatusCode
(
refundData
.
getResultCode
());
refundResponse
.
setMsg
(
refundData
.
getResultMsg
());
refundResponse
.
setRefundAmount
(
refundData
.
getRefundAmount
());
refundResponse
.
setTotalAmount
(
refundData
.
getTotalAmount
());
refundResponse
.
setRefundStatus
(
getRefundStatus
(
refundData
.
getResultCode
()));
refundResponse
.
setRefundTradeNo
(
refundData
.
getRefundTradeNo
());
refundResponse
.
setTradeNo
(
refundData
.
getRefundTradeNo
());
refundResponse
.
setThirdPartRefundTradeNo
(
refundData
.
getThirdPartRefundTradeNo
());
refundResponse
.
setThirdPartTradeNo
(
refundData
.
getThirdPartTradeNo
());
refundResponse
.
setTotalAmount
(
refundData
.
getTotalAmount
());
// return ResponseUtils.success(refundResponse);
}
}
BaseResponse
<
OrderRefundResponse
>
orderRefundResponse
=
ResponseUtils
.
error
(
refundNewResponse
.
getCode
(),
refundNewResponse
.
getMessage
());
// Integer refundStatus = PayRefundStatus.SUCCESS;
Integer
refundStatus
=
1
;
if
(
orderRefundResponse
==
null
)
{
// refundStatus = PayRefundStatus.RUNNING;
refundStatus
=
4
;
}
else
{
refundStatus
=
getFinalRefundStatus
(
Integer
.
valueOf
(
orderRefundResponse
.
getCode
()));
}
System
.
out
.
println
(
refundStatus
);
}
private
static
Integer
getFinalRefundStatus
(
Integer
resultCode
)
{
switch
(
resultCode
)
{
// 退款中状态码需要单独处理
case
8200305
:
// return PayRefundStatus.RUNNING;
return
4
;
// 退款成功
case
100
:
// return PayRefundStatus.SUCCESS;
return
1
;
default
:
// return PayRefundStatus.FAIL;
return
2
;
}
}
private
static
final
String
SUCCESS
=
"100"
;
public
static
final
Integer
SUCCESS_RESPONSE_CODE_INT
=
100
;
public
static
final
Integer
SUCCESS_RESPONSE_101_CODE_INT
=
101
;
public
static
final
Integer
REFUND_RESPONSE_CODE
=
8200305
;
public
static
Integer
getRefundStatus
(
Integer
resultCode
)
{
if
(
Objects
.
equals
(
resultCode
,
SUCCESS_RESPONSE_CODE_INT
))
{
return
PaymentRefundStatus
.
PAYMENT_REFUND_STATUS_1
.
getCode
();
}
else
if
(
Objects
.
equals
(
resultCode
,
SUCCESS_RESPONSE_101_CODE_INT
))
{
return
PaymentRefundStatus
.
PAYMENT_REFUND_STATUS_1
.
getCode
();
}
else
{
return
Objects
.
equals
(
resultCode
,
REFUND_RESPONSE_CODE
)
?
PaymentRefundStatus
.
PAYMENT_REFUND_STATUS_4
.
getCode
()
:
PaymentRefundStatus
.
PAYMENT_REFUND_STATUS_2
.
getCode
();
}
}
}
order-management/src/main/java/cn/freemud/management/service/handle/PaymentHandle.java
View file @
269947c8
...
...
@@ -104,12 +104,7 @@ public class PaymentHandle {
if
(
orderRefundResponse
==
null
)
{
refundStatus
=
PayRefundStatus
.
RUNNING
;
}
else
{
if
(
ObjectUtils
.
notEqual
(
orderRefundResponse
.
getCode
(),
SUCCESS
))
{
refundStatus
=
PayRefundStatus
.
FAIL
;
}
else
{
Integer
resultCode
=
orderRefundResponse
.
getData
().
getStatusCode
();
refundStatus
=
this
.
getFinalRefundStatus
(
resultCode
);
}
refundStatus
=
this
.
getFinalRefundStatus
(
Integer
.
valueOf
(
orderRefundResponse
.
getCode
()));
}
return
handlePayRefundResponse
(
refundStatus
,
orderRefundRequest
.
getRefundId
());
}
...
...
@@ -405,7 +400,7 @@ public class PaymentHandle {
}
logUtil
.
info
(
"paymentcenter/refund"
,
JSONObject
.
toJSONString
(
request
),
JSONObject
.
toJSONString
(
refundNewResponse
));
//支付状态码取内部值
if
(
Objects
.
equals
(
refundNewResponse
.
getCode
(),
"100"
)
&&
refundNewResponse
.
getData
()
!=
null
)
{
if
(
Objects
.
equals
(
refundNewResponse
.
getCode
(),
"100"
)
&&
refundNewResponse
.
getData
()
!=
null
)
{
refundNewResponse
.
setCode
(
refundNewResponse
.
getData
().
getResultCode
().
toString
());
refundNewResponse
.
setMessage
(
refundNewResponse
.
getData
().
getResultMsg
());
}
...
...
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