Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
计全科技
jeepay
提交
7b065480
jeepay
项目概览
计全科技
/
jeepay
通知
10
Star
3
Fork
2
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
6
Wiki
分析
仓库
DevOps
项目成员
Pages
jeepay
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
6
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
7b065480
编写于
6月 18, 2021
作者:
terrfly
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
更改退款接口
上级
9e8d51da
变更
10
隐藏空白更改
内联
并排
Showing
10 changed file
with
56 addition
and
39 deletion
+56
-39
docs/sql/init.sql
docs/sql/init.sql
+5
-4
jeepay-core/src/main/java/com/jeequan/jeepay/core/entity/RefundOrder.java
...main/java/com/jeequan/jeepay/core/entity/RefundOrder.java
+2
-2
jeepay-manager/src/main/java/com/jeequan/jeepay/mgr/ctrl/order/PayOrderController.java
...com/jeequan/jeepay/mgr/ctrl/order/PayOrderController.java
+32
-4
jeepay-payment/src/main/java/com/jeequan/jeepay/pay/ctrl/refund/RefundOrderController.java
...jeequan/jeepay/pay/ctrl/refund/RefundOrderController.java
+4
-4
jeepay-payment/src/main/java/com/jeequan/jeepay/pay/rqrs/payorder/QueryPayOrderRS.java
...com/jeequan/jeepay/pay/rqrs/payorder/QueryPayOrderRS.java
+5
-0
jeepay-payment/src/main/java/com/jeequan/jeepay/pay/rqrs/refund/RefundOrderRQ.java
...ava/com/jeequan/jeepay/pay/rqrs/refund/RefundOrderRQ.java
+0
-3
jeepay-payment/src/main/java/com/jeequan/jeepay/pay/rqrs/refund/RefundOrderRS.java
...ava/com/jeequan/jeepay/pay/rqrs/refund/RefundOrderRS.java
+2
-16
jeepay-payment/src/main/java/com/jeequan/jeepay/pay/service/PayMchNotifyService.java
...a/com/jeequan/jeepay/pay/service/PayMchNotifyService.java
+2
-2
jeepay-service/src/main/java/com/jeequan/jeepay/service/impl/RefundOrderService.java
...a/com/jeequan/jeepay/service/impl/RefundOrderService.java
+2
-2
jeepay-service/src/main/java/com/jeequan/jeepay/service/mapper/RefundOrderMapper.xml
...a/com/jeequan/jeepay/service/mapper/RefundOrderMapper.xml
+2
-2
未找到文件。
docs/sql/init.sql
浏览文件 @
7b065480
...
...
@@ -287,8 +287,8 @@ CREATE TABLE `t_pay_order` (
`refund_amount`
BIGINT
(
20
)
NOT
NULL
DEFAULT
0
COMMENT
'退款总金额,单位分'
,
`division_flag`
TINYINT
(
6
)
DEFAULT
0
COMMENT
'订单分账标志:0-否 1-是'
,
`division_time`
DATETIME
COMMENT
'预计分账发起时间'
,
`err_code`
VARCHAR
(
64
)
DEFAULT
NULL
COMMENT
'渠道支付错误码'
,
`err_msg`
VARCHAR
(
128
)
DEFAULT
NULL
COMMENT
'渠道支付错误描述'
,
`err_code`
VARCHAR
(
128
)
DEFAULT
NULL
COMMENT
'渠道支付错误码'
,
`err_msg`
VARCHAR
(
256
)
DEFAULT
NULL
COMMENT
'渠道支付错误描述'
,
`ext_param`
VARCHAR
(
128
)
DEFAULT
NULL
COMMENT
'商户扩展参数'
,
`notify_url`
VARCHAR
(
128
)
NOT
NULL
default
''
COMMENT
'异步通知地址'
,
`return_url`
VARCHAR
(
128
)
DEFAULT
''
COMMENT
'页面跳转地址'
,
...
...
@@ -364,8 +364,8 @@ CREATE TABLE `t_refund_order` (
`client_ip`
VARCHAR
(
32
)
DEFAULT
NULL
COMMENT
'客户端IP'
,
`refund_reason`
VARCHAR
(
256
)
NOT
NULL
COMMENT
'退款原因'
,
`channel_order_no`
VARCHAR
(
32
)
DEFAULT
NULL
COMMENT
'渠道订单号'
,
`
channel_
err_code`
VARCHAR
(
128
)
DEFAULT
NULL
COMMENT
'渠道错误码'
,
`
channel_err_msg`
VARCHAR
(
128
)
DEFAULT
NULL
COMMENT
'渠道错误描述'
,
`err_code`
VARCHAR
(
128
)
DEFAULT
NULL
COMMENT
'渠道错误码'
,
`
err_msg`
VARCHAR
(
256
)
DEFAULT
NULL
COMMENT
'渠道错误描述'
,
`channel_extra`
VARCHAR
(
512
)
DEFAULT
NULL
COMMENT
'特定渠道发起时额外参数'
,
`notify_url`
VARCHAR
(
128
)
DEFAULT
NULL
COMMENT
'通知地址'
,
`ext_param`
VARCHAR
(
64
)
DEFAULT
NULL
COMMENT
'扩展参数'
,
...
...
@@ -433,6 +433,7 @@ insert into t_sys_entitlement values('ENT_ORDER', '订单管理', 'transaction',
insert
into
t_sys_entitlement
values
(
'ENT_PAY_ORDER'
,
'支付订单'
,
'account-book'
,
'/pay'
,
'PayOrderListPage'
,
'ML'
,
0
,
1
,
'ENT_ORDER'
,
'10'
,
'MGR'
,
now
(),
now
());
insert
into
t_sys_entitlement
values
(
'ENT_ORDER_LIST'
,
'页面:订单列表'
,
'no-icon'
,
''
,
''
,
'PB'
,
0
,
1
,
'ENT_PAY_ORDER'
,
'0'
,
'MGR'
,
now
(),
now
());
insert
into
t_sys_entitlement
values
(
'ENT_PAY_ORDER_VIEW'
,
'按钮:详情'
,
'no-icon'
,
''
,
''
,
'PB'
,
0
,
1
,
'ENT_PAY_ORDER'
,
'0'
,
'MGR'
,
now
(),
now
());
insert
into
t_sys_entitlement
values
(
'ENT_PAY_ORDER_REFUND'
,
'按钮:订单退款'
,
'no-icon'
,
''
,
''
,
'PB'
,
0
,
1
,
'ENT_PAY_ORDER'
,
'0'
,
'MGR'
,
now
(),
now
());
insert
into
t_sys_entitlement
values
(
'ENT_REFUND_ORDER'
,
'退款订单'
,
'exception'
,
'/refund'
,
'RefundOrderListPage'
,
'ML'
,
0
,
1
,
'ENT_ORDER'
,
'20'
,
'MGR'
,
now
(),
now
());
insert
into
t_sys_entitlement
values
(
'ENT_REFUND_LIST'
,
'页面:退款订单列表'
,
'no-icon'
,
''
,
''
,
'PB'
,
0
,
1
,
'ENT_REFUND_ORDER'
,
'0'
,
'MGR'
,
now
(),
now
());
insert
into
t_sys_entitlement
values
(
'ENT_REFUND_ORDER_VIEW'
,
'按钮:详情'
,
'no-icon'
,
''
,
''
,
'PB'
,
0
,
1
,
'ENT_REFUND_ORDER'
,
'0'
,
'MGR'
,
now
(),
now
());
...
...
jeepay-core/src/main/java/com/jeequan/jeepay/core/entity/RefundOrder.java
浏览文件 @
7b065480
...
...
@@ -145,12 +145,12 @@ public class RefundOrder extends BaseModel {
/**
* 渠道错误码
*/
private
String
channelE
rrCode
;
private
String
e
rrCode
;
/**
* 渠道错误描述
*/
private
String
channelE
rrMsg
;
private
String
e
rrMsg
;
/**
* 特定渠道发起时额外参数
...
...
jeepay-manager/src/main/java/com/jeequan/jeepay/mgr/ctrl/order/PayOrderController.java
浏览文件 @
7b065480
...
...
@@ -18,9 +18,11 @@ package com.jeequan.jeepay.mgr.ctrl.order;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.jeequan.jeepay.core.aop.MethodLog
;
import
com.jeequan.jeepay.core.constants.ApiCodeEnum
;
import
com.jeequan.jeepay.core.entity.PayOrder
;
import
com.jeequan.jeepay.core.entity.PayWay
;
import
com.jeequan.jeepay.core.exception.BizException
;
import
com.jeequan.jeepay.core.model.ApiRes
;
import
com.jeequan.jeepay.mgr.ctrl.CommonCtrl
;
import
com.jeequan.jeepay.service.impl.PayOrderService
;
...
...
@@ -28,10 +30,7 @@ import com.jeequan.jeepay.service.impl.PayWayService;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.security.access.prepost.PreAuthorize
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.HashMap
;
import
java.util.List
;
...
...
@@ -108,4 +107,33 @@ public class PayOrderController extends CommonCtrl {
return
ApiRes
.
ok
(
payOrder
);
}
/**
* 发起订单退款
* @author terrfly
* @site https://www.jeepay.vip
* @date 2021/6/17 16:38
*/
@MethodLog
(
remark
=
"发起订单退款"
)
@PreAuthorize
(
"hasAuthority('ENT_PAY_ORDER_REFUND')"
)
@PostMapping
(
"/refunds/{payOrderId}"
)
public
ApiRes
refund
(
@PathVariable
(
"payOrderId"
)
String
payOrderId
)
{
Long
refundAmount
=
getRequiredAmountL
(
"refundAmount"
);
String
refundReason
=
getValStringRequired
(
"refundReason"
);
PayOrder
payOrder
=
payOrderService
.
getById
(
payOrderId
);
if
(
payOrder
==
null
)
return
ApiRes
.
fail
(
ApiCodeEnum
.
SYS_OPERATION_FAIL_SELETE
);
if
(
payOrder
.
getState
()
!=
PayOrder
.
STATE_SUCCESS
){
throw
new
BizException
(
"订单状态不正确"
);
}
if
(
payOrder
.
getRefundAmount
()
+
refundAmount
>=
payOrder
.
getAmount
()){
throw
new
BizException
(
"退款金额超过订单可退款金额!"
);
}
throw
new
BizException
(
"功能开发中, 暂时不支持后台退款,请调起API接口发起退款。"
);
}
}
jeepay-payment/src/main/java/com/jeequan/jeepay/pay/ctrl/refund/RefundOrderController.java
浏览文件 @
7b065480
...
...
@@ -196,8 +196,8 @@ public class RefundOrderController extends ApiController {
refundOrder
.
setClientIp
(
StringUtils
.
defaultIfEmpty
(
rq
.
getClientIp
(),
getClientIp
()));
//客户端IP
refundOrder
.
setRefundReason
(
rq
.
getRefundReason
());
//退款原因
refundOrder
.
setChannelOrderNo
(
null
);
//渠道订单号
refundOrder
.
set
Channel
ErrCode
(
null
);
//渠道错误码
refundOrder
.
set
Channel
ErrMsg
(
null
);
//渠道错误描述
refundOrder
.
setErrCode
(
null
);
//渠道错误码
refundOrder
.
setErrMsg
(
null
);
//渠道错误描述
refundOrder
.
setChannelExtra
(
rq
.
getChannelExtra
());
//特定渠道发起时额外参数
refundOrder
.
setNotifyUrl
(
rq
.
getNotifyUrl
());
//通知地址
refundOrder
.
setExtParam
(
rq
.
getExtParam
());
//扩展参数
...
...
@@ -254,8 +254,8 @@ public class RefundOrderController extends ApiController {
refundOrder
.
setState
(
orderState
);
refundOrder
.
setChannelOrderNo
(
channelRetMsg
.
getChannelOrderId
());
refundOrder
.
set
Channel
ErrCode
(
channelRetMsg
.
getChannelErrCode
());
refundOrder
.
set
Channel
ErrMsg
(
channelRetMsg
.
getChannelErrMsg
());
refundOrder
.
setErrCode
(
channelRetMsg
.
getChannelErrCode
());
refundOrder
.
setErrMsg
(
channelRetMsg
.
getChannelErrMsg
());
boolean
isSuccess
=
refundOrderService
.
updateInit2Ing
(
refundOrder
.
getRefundOrderId
());
...
...
jeepay-payment/src/main/java/com/jeequan/jeepay/pay/rqrs/payorder/QueryPayOrderRS.java
浏览文件 @
7b065480
...
...
@@ -40,6 +40,11 @@ public class QueryPayOrderRS extends AbstractRS {
*/
private
String
mchNo
;
/**
* 商户应用ID
*/
private
String
appId
;
/**
* 商户订单号
*/
...
...
jeepay-payment/src/main/java/com/jeequan/jeepay/pay/rqrs/refund/RefundOrderRQ.java
浏览文件 @
7b065480
...
...
@@ -58,9 +58,6 @@ public class RefundOrderRQ extends AbstractMchAppRQ {
/** 客户端IP地址 **/
private
String
clientIp
;
/** 客户端设备信息 **/
private
String
device
;
/** 异步通知地址 **/
private
String
notifyUrl
;
...
...
jeepay-payment/src/main/java/com/jeequan/jeepay/pay/rqrs/refund/RefundOrderRS.java
浏览文件 @
7b065480
...
...
@@ -33,12 +33,6 @@ public class RefundOrderRS extends AbstractRS {
/** 支付系统退款订单号 **/
private
String
refundOrderId
;
/** 商户号 **/
private
String
mchNo
;
/** 商户应用ID **/
private
String
appId
;
/** 商户发起的退款订单号 **/
private
String
mchRefundNo
;
...
...
@@ -55,16 +49,10 @@ public class RefundOrderRS extends AbstractRS {
private
String
channelOrderNo
;
/** 渠道返回错误代码 **/
private
String
channelE
rrCode
;
private
String
e
rrCode
;
/** 渠道返回错误信息 **/
private
String
channelErrMsg
;
/** 退款成功时间 **/
private
Long
successTime
;
/** 创建时间 **/
private
Long
createdAt
;
private
String
errMsg
;
public
static
RefundOrderRS
buildByRefundOrder
(
RefundOrder
refundOrder
){
...
...
@@ -75,8 +63,6 @@ public class RefundOrderRS extends AbstractRS {
RefundOrderRS
result
=
new
RefundOrderRS
();
BeanUtils
.
copyProperties
(
refundOrder
,
result
);
result
.
setSuccessTime
(
refundOrder
.
getSuccessTime
()
==
null
?
null
:
refundOrder
.
getSuccessTime
().
getTime
());
result
.
setCreatedAt
(
refundOrder
.
getCreatedAt
()
==
null
?
null
:
refundOrder
.
getCreatedAt
().
getTime
());
return
result
;
}
...
...
jeepay-payment/src/main/java/com/jeequan/jeepay/pay/service/PayMchNotifyService.java
浏览文件 @
7b065480
...
...
@@ -159,8 +159,8 @@ public class PayMchNotifyService {
*/
public
String
createNotifyUrl
(
RefundOrder
refundOrder
,
String
appSecret
)
{
QueryRefundOrderRS
query
Pay
OrderRS
=
QueryRefundOrderRS
.
buildByRefundOrder
(
refundOrder
);
JSONObject
jsonObject
=
(
JSONObject
)
JSONObject
.
toJSON
(
query
Pay
OrderRS
);
QueryRefundOrderRS
query
Refund
OrderRS
=
QueryRefundOrderRS
.
buildByRefundOrder
(
refundOrder
);
JSONObject
jsonObject
=
(
JSONObject
)
JSONObject
.
toJSON
(
query
Refund
OrderRS
);
jsonObject
.
put
(
"reqTime"
,
System
.
currentTimeMillis
());
//添加请求时间
// 报文签名
...
...
jeepay-service/src/main/java/com/jeequan/jeepay/service/impl/RefundOrderService.java
浏览文件 @
7b065480
...
...
@@ -98,8 +98,8 @@ public class RefundOrderService extends ServiceImpl<RefundOrderMapper, RefundOrd
RefundOrder
updateRecord
=
new
RefundOrder
();
updateRecord
.
setState
(
RefundOrder
.
STATE_FAIL
);
updateRecord
.
set
Channel
ErrCode
(
channelErrCode
);
updateRecord
.
set
Channel
ErrMsg
(
channelErrMsg
);
updateRecord
.
setErrCode
(
channelErrCode
);
updateRecord
.
setErrMsg
(
channelErrMsg
);
updateRecord
.
setChannelOrderNo
(
channelOrderNo
);
return
update
(
updateRecord
,
new
LambdaUpdateWrapper
<
RefundOrder
>()
...
...
jeepay-service/src/main/java/com/jeequan/jeepay/service/mapper/RefundOrderMapper.xml
浏览文件 @
7b065480
...
...
@@ -22,8 +22,8 @@
<result
column=
"client_ip"
property=
"clientIp"
/>
<result
column=
"refund_reason"
property=
"refundReason"
/>
<result
column=
"channel_order_no"
property=
"channelOrderNo"
/>
<result
column=
"
channel_err_code"
property=
"channelE
rrCode"
/>
<result
column=
"
channel_err_msg"
property=
"channelE
rrMsg"
/>
<result
column=
"
err_code"
property=
"e
rrCode"
/>
<result
column=
"
err_msg"
property=
"e
rrMsg"
/>
<result
column=
"channel_extra"
property=
"channelExtra"
/>
<result
column=
"notify_url"
property=
"notifyUrl"
/>
<result
column=
"ext_param"
property=
"extParam"
/>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录