Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
P
payment-ci-test
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
test-ci
payment-ci-test
Commits
bd9911d7
提交
bd9911d7
authored
9月 06, 2023
作者:
xiaowang
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'develop'
上级
0e95460c
8b03126b
隐藏空白字符变更
内嵌
并排
正在显示
14 个修改的文件
包含
211 行增加
和
3 行删除
+211
-3
deployment.yaml
kustomization/base/deployment.yaml
+5
-0
kustomization.yaml
kustomization/overlays/dev/kustomization.yaml
+1
-1
pom.xml
pom.xml
+11
-0
WechatPayController.java
.../java/com/mmc/payment/controller/WechatPayController.java
+9
-0
AuthSignatureFilter.java
...main/java/com/mmc/payment/filter/AuthSignatureFilter.java
+2
-1
OrderRequestParamsVO.java
.../com/mmc/payment/model/vo/order/OrderRequestParamsVO.java
+3
-1
TopUpOrderVO.java
...in/java/com/mmc/payment/model/vo/wallet/TopUpOrderVO.java
+29
-0
PublishMsg.java
src/main/java/com/mmc/payment/mq/PublishMsg.java
+12
-0
DirectExchangeConfig.java
.../java/com/mmc/payment/mq/config/DirectExchangeConfig.java
+43
-0
RabbitmqConstant.java
...in/java/com/mmc/payment/mq/constant/RabbitmqConstant.java
+24
-0
PublishMsgImpl.java
src/main/java/com/mmc/payment/mq/impl/PublishMsgImpl.java
+29
-0
WechatPayServiceImpl.java
...va/com/mmc/payment/service/Impl/WechatPayServiceImpl.java
+29
-0
application-dev.yml
src/main/resources/application-dev.yml
+7
-0
application-prod.yml
src/main/resources/application-prod.yml
+7
-0
没有找到文件。
kustomization/base/deployment.yaml
浏览文件 @
bd9911d7
...
@@ -76,6 +76,11 @@ spec:
...
@@ -76,6 +76,11 @@ spec:
secretKeyRef
:
secretKeyRef
:
name
:
iuav-secret
name
:
iuav-secret
key
:
WECHAT_APPLET_SECRET
key
:
WECHAT_APPLET_SECRET
-
name
:
RABBITMQ_PASSWORD
valueFrom
:
secretKeyRef
:
name
:
iuav-secret
key
:
RABBITMQ_PASSWORD
volumes
:
volumes
:
-
name
:
log-of-app
-
name
:
log-of-app
hostPath
:
hostPath
:
...
...
kustomization/overlays/dev/kustomization.yaml
浏览文件 @
bd9911d7
...
@@ -14,4 +14,4 @@ patches:
...
@@ -14,4 +14,4 @@ patches:
images
:
images
:
-
name
:
REGISTRY/NAMESPACE/IMAGE:TAG
-
name
:
REGISTRY/NAMESPACE/IMAGE:TAG
newName
:
mmc-registry.cn-shenzhen.cr.aliyuncs.com/sharefly-dev/payment
newName
:
mmc-registry.cn-shenzhen.cr.aliyuncs.com/sharefly-dev/payment
newTag
:
01f38f32f51899d7bdc6a4ec9743138ad2011e65
newTag
:
fd973dad9131dc9bae45573c0847dd344ec84f9a
pom.xml
浏览文件 @
bd9911d7
...
@@ -60,6 +60,17 @@
...
@@ -60,6 +60,17 @@
<artifactId>
mysql-connector-java
</artifactId>
<artifactId>
mysql-connector-java
</artifactId>
<!--<scope>runtime</scope>-->
<!--<scope>runtime</scope>-->
</dependency>
</dependency>
<!-- RabbitMQ -->
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-amqp
</artifactId>
</dependency>
<dependency>
<groupId>
com.rabbitmq
</groupId>
<artifactId>
amqp-client
</artifactId>
<version>
5.5.0
</version>
<!-- 支持开源所有版本 -->
</dependency>
<!--swagger-->
<!--swagger-->
<dependency>
<dependency>
...
...
src/main/java/com/mmc/payment/controller/WechatPayController.java
浏览文件 @
bd9911d7
...
@@ -10,6 +10,7 @@ import io.swagger.annotations.ApiOperation;
...
@@ -10,6 +10,7 @@ import io.swagger.annotations.ApiOperation;
import
io.swagger.annotations.ApiResponse
;
import
io.swagger.annotations.ApiResponse
;
import
io.swagger.annotations.ApiResponses
;
import
io.swagger.annotations.ApiResponses
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
springfox.documentation.annotations.ApiIgnore
;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletRequest
;
...
@@ -64,6 +65,14 @@ public class WechatPayController extends BaseController {
...
@@ -64,6 +65,14 @@ public class WechatPayController extends BaseController {
return
wechatPayService
.
applyRefund
(
applyRefundVO
);
return
wechatPayService
.
applyRefund
(
applyRefundVO
);
}
}
@ApiIgnore
@ApiOperation
(
value
=
"feign-申请退款"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
@PostMapping
(
"feignApplyRefund"
)
public
ResultBody
feignApplyRefund
(
@RequestBody
ApplyRefundVO
applyRefundVO
)
{
return
wechatPayService
.
applyRefund
(
applyRefundVO
);
}
@ApiOperation
(
value
=
"退款异步通知"
)
@ApiOperation
(
value
=
"退款异步通知"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
@PostMapping
(
"refundCallback"
)
@PostMapping
(
"refundCallback"
)
...
...
src/main/java/com/mmc/payment/filter/AuthSignatureFilter.java
浏览文件 @
bd9911d7
...
@@ -40,7 +40,8 @@ public class AuthSignatureFilter implements AuthFilter {
...
@@ -40,7 +40,8 @@ public class AuthSignatureFilter implements AuthFilter {
*/
*/
private
static
final
String
[]
IGNORE_URLS
=
{
"/payment/swagger-resources"
private
static
final
String
[]
IGNORE_URLS
=
{
"/payment/swagger-resources"
,
"/payment/v2/api-docs"
,
"/payment/repocash/walletUsers"
,
"/payment/doc.html"
,
,
"/payment/v2/api-docs"
,
"/payment/repocash/walletUsers"
,
"/payment/doc.html"
,
"/payment/actuator/health/readiness"
,
"/payment/wechat/payCallback"
,
"/payment/wechat/refundCallback"
};
"/payment/actuator/health/readiness"
,
"/payment/wechat/payCallback"
,
"/payment/wechat/refundCallback"
,
"/payment/wechat/feignApplyRefund"
};
/*无需加密狗无需登录白名单*/
/*无需加密狗无需登录白名单*/
private
static
final
String
[]
USE_KEY
=
{
"/oms/account/loginByUsbKey"
};
private
static
final
String
[]
USE_KEY
=
{
"/oms/account/loginByUsbKey"
};
...
...
src/main/java/com/mmc/payment/model/vo/order/OrderRequestParamsVO.java
浏览文件 @
bd9911d7
...
@@ -22,7 +22,9 @@ public class OrderRequestParamsVO implements Serializable {
...
@@ -22,7 +22,9 @@ public class OrderRequestParamsVO implements Serializable {
private
String
description
;
private
String
description
;
@ApiModelProperty
(
value
=
"订单金额(分为单位)"
)
@ApiModelProperty
(
value
=
"订单金额(分为单位)"
)
private
Integer
amount
;
private
Integer
amount
;
@ApiModelProperty
(
value
=
"订单来源 0:产品商城 1:租赁订单 2:培训订单 ...其他后续加"
)
@ApiModelProperty
(
value
=
"订单来源 0:产品商城 1:租赁订单 2:培训订单
3:充值云享金
...其他后续加"
)
private
Integer
orderPort
;
private
Integer
orderPort
;
@ApiModelProperty
(
value
=
"附加参数 :附加数据,在查询API和支付通知中原样返回,可作为自定义参数使用,实际情况下只有支付完成状态才会返回该字段。"
)
private
String
attach
;
}
}
src/main/java/com/mmc/payment/model/vo/wallet/TopUpOrderVO.java
0 → 100644
浏览文件 @
bd9911d7
package
com
.
mmc
.
payment
.
model
.
vo
.
wallet
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* @Author LW
* @date 2023/8/23 13:37
* 概要:
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public
class
TopUpOrderVO
{
@ApiModelProperty
(
value
=
"支付用户的openid"
)
private
String
openid
;
@ApiModelProperty
(
value
=
"订单编号"
)
private
String
orderNo
;
@ApiModelProperty
(
value
=
"金额(分)"
)
private
Integer
amount
;
@ApiModelProperty
(
value
=
"订单状态"
)
private
String
tradeState
;
@ApiModelProperty
(
value
=
"交易状态描述"
)
private
String
tradeStateDesc
;
}
src/main/java/com/mmc/payment/mq/PublishMsg.java
0 → 100644
浏览文件 @
bd9911d7
package
com
.
mmc
.
payment
.
mq
;
import
com.mmc.payment.model.vo.wallet.TopUpOrderVO
;
/**
* @Author LW
* @date 2023/8/23 11:30
* 概要:
*/
public
interface
PublishMsg
{
void
sendNewTopUpOrder
(
TopUpOrderVO
topUpOrder
,
String
routingKey
);
}
src/main/java/com/mmc/payment/mq/config/DirectExchangeConfig.java
0 → 100644
浏览文件 @
bd9911d7
package
com
.
mmc
.
payment
.
mq
.
config
;
import
com.mmc.payment.mq.constant.RabbitmqConstant
;
import
org.springframework.amqp.core.Binding
;
import
org.springframework.amqp.core.BindingBuilder
;
import
org.springframework.amqp.core.DirectExchange
;
import
org.springframework.amqp.core.Queue
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
/**
* @author: lw
* @Date: 2023/8/23 11:26
*/
@Configuration
public
class
DirectExchangeConfig
{
@Bean
public
DirectExchange
directExchange
()
{
return
new
DirectExchange
(
RabbitmqConstant
.
USER_TOP_UP_DIRECT_EXCHANGE
);
}
@Bean
public
Queue
directQueue1
()
{
return
new
Queue
(
RabbitmqConstant
.
USER_TOP_UP_DIRECT_QUEUE
,
true
);
}
@Bean
public
Binding
bindingDirect1
()
{
Binding
binding
=
BindingBuilder
.
bind
(
directQueue1
()).
to
(
directExchange
()).
with
(
RabbitmqConstant
.
USER_TOP_UP_ROUTING_KEY
);
return
binding
;
}
@Bean
public
Queue
directQueue2
()
{
return
new
Queue
(
RabbitmqConstant
.
USER_TOP_UP_SUCCESS_QUEUE
,
true
);
}
@Bean
public
Binding
bindingDirect2
()
{
Binding
binding
=
BindingBuilder
.
bind
(
directQueue2
()).
to
(
directExchange
()).
with
(
RabbitmqConstant
.
USER_TOP_UP_SUCCESS_ROUTING_KEY
);
return
binding
;
}
}
src/main/java/com/mmc/payment/mq/constant/RabbitmqConstant.java
0 → 100644
浏览文件 @
bd9911d7
package
com
.
mmc
.
payment
.
mq
.
constant
;
/**
* @author: lw
* @Date: 2023/8/23 11:26
*/
public
class
RabbitmqConstant
{
/**
* 用户充值订单交换机
*/
public
final
static
String
USER_TOP_UP_DIRECT_EXCHANGE
=
"USER_TOP_UP_DIRECT_EXCHANGE"
;
/**
* 充值订单队列、routing_key
*/
public
final
static
String
USER_TOP_UP_DIRECT_QUEUE
=
"USER_TOP_UP_DIRECT_QUEUE"
;
public
final
static
String
USER_TOP_UP_ROUTING_KEY
=
"USER_TOP_UP_ROUTING_KEY"
;
/**
* 充值成功队列、routing_key
*/
public
final
static
String
USER_TOP_UP_SUCCESS_QUEUE
=
"USER_TOP_UP_SUCCESS_QUEUE"
;
public
final
static
String
USER_TOP_UP_SUCCESS_ROUTING_KEY
=
"USER_TOP_UP_SUCCESS_ROUTING_KEY"
;
}
src/main/java/com/mmc/payment/mq/impl/PublishMsgImpl.java
0 → 100644
浏览文件 @
bd9911d7
package
com
.
mmc
.
payment
.
mq
.
impl
;
import
com.alibaba.fastjson2.JSONObject
;
import
com.mmc.payment.model.vo.wallet.TopUpOrderVO
;
import
com.mmc.payment.mq.PublishMsg
;
import
com.mmc.payment.mq.constant.RabbitmqConstant
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.amqp.rabbit.core.RabbitTemplate
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
/**
* @Author LW
* @date 2023/8/23 13:42
* 概要:
*/
@Slf4j
@Service
public
class
PublishMsgImpl
implements
PublishMsg
{
@Autowired
RabbitTemplate
rabbitTemplate
;
@Override
public
void
sendNewTopUpOrder
(
TopUpOrderVO
topUpOrder
,
String
routingKey
)
{
log
.
info
(
"############云享飞pro-充值订单-RabbitMQ-Send-##########"
);
log
.
info
(
"sendNewTopUpOrder:{},routingKey:{}"
,
JSONObject
.
toJSONString
(
topUpOrder
),
routingKey
);
rabbitTemplate
.
convertAndSend
(
RabbitmqConstant
.
USER_TOP_UP_DIRECT_EXCHANGE
,
routingKey
,
JSONObject
.
toJSONString
(
topUpOrder
));
}
}
src/main/java/com/mmc/payment/service/Impl/WechatPayServiceImpl.java
浏览文件 @
bd9911d7
...
@@ -17,6 +17,9 @@ import com.mmc.payment.model.vo.order.ApplyRefundVO;
...
@@ -17,6 +17,9 @@ import com.mmc.payment.model.vo.order.ApplyRefundVO;
import
com.mmc.payment.model.vo.order.OrderRequestParamsVO
;
import
com.mmc.payment.model.vo.order.OrderRequestParamsVO
;
import
com.mmc.payment.model.vo.order.UserPayInfoVO
;
import
com.mmc.payment.model.vo.order.UserPayInfoVO
;
import
com.mmc.payment.model.vo.order.WxPayLogVO
;
import
com.mmc.payment.model.vo.order.WxPayLogVO
;
import
com.mmc.payment.model.vo.wallet.TopUpOrderVO
;
import
com.mmc.payment.mq.PublishMsg
;
import
com.mmc.payment.mq.constant.RabbitmqConstant
;
import
com.mmc.payment.service.WechatPayService
;
import
com.mmc.payment.service.WechatPayService
;
import
com.mmc.payment.util.WxConfigUtils
;
import
com.mmc.payment.util.WxConfigUtils
;
import
com.wechat.pay.java.core.Config
;
import
com.wechat.pay.java.core.Config
;
...
@@ -61,6 +64,8 @@ public class WechatPayServiceImpl implements WechatPayService {
...
@@ -61,6 +64,8 @@ public class WechatPayServiceImpl implements WechatPayService {
UserAppApi
userAppApi
;
UserAppApi
userAppApi
;
@Resource
@Resource
WxConfigUtils
wxConfigUtils
;
WxConfigUtils
wxConfigUtils
;
@Resource
PublishMsg
publishMsg
;
@Override
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
...
@@ -85,6 +90,7 @@ public class WechatPayServiceImpl implements WechatPayService {
...
@@ -85,6 +90,7 @@ public class WechatPayServiceImpl implements WechatPayService {
Payer
payer
=
new
Payer
();
Payer
payer
=
new
Payer
();
payer
.
setOpenid
(
userSimpleInfo
.
getOpenid
());
payer
.
setOpenid
(
userSimpleInfo
.
getOpenid
());
prepayRequest
.
setPayer
(
payer
);
prepayRequest
.
setPayer
(
payer
);
prepayRequest
.
setAttach
(
orderRequestParamsVO
.
getAttach
());
prepayRequest
.
setAppid
(
userSystemConstant
.
getWxAppId
());
prepayRequest
.
setAppid
(
userSystemConstant
.
getWxAppId
());
prepayRequest
.
setMchid
(
userSystemConstant
.
getMchid
());
prepayRequest
.
setMchid
(
userSystemConstant
.
getMchid
());
prepayRequest
.
setDescription
(
orderRequestParamsVO
.
getDescription
());
prepayRequest
.
setDescription
(
orderRequestParamsVO
.
getDescription
());
...
@@ -191,12 +197,35 @@ public class WechatPayServiceImpl implements WechatPayService {
...
@@ -191,12 +197,35 @@ public class WechatPayServiceImpl implements WechatPayService {
wxPayLogDO
.
setTradeStateDesc
(
transaction
.
getTradeStateDesc
());
wxPayLogDO
.
setTradeStateDesc
(
transaction
.
getTradeStateDesc
());
wechatPayDao
.
updateWxPayLog
(
wxPayLogDO
);
wechatPayDao
.
updateWxPayLog
(
wxPayLogDO
);
result
.
put
(
"code"
,
"SUCCESS"
);
result
.
put
(
"code"
,
"SUCCESS"
);
if
(
"TOP_UP"
.
equals
(
transaction
.
getAttach
()))
{
// 充值订单,发送mq消息进行操作
sendTopUpMsg
(
transaction
,
0
);
}
if
(
"TOP_UP"
.
equals
(
transaction
.
getAttach
())
&&
"SUCCESS"
.
equals
(
transaction
.
getTradeState
().
toString
()))
{
// 发送充值成功消息
sendTopUpMsg
(
transaction
,
1
);
}
}
catch
(
IOException
e
)
{
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
e
.
printStackTrace
();
}
}
return
result
;
return
result
;
}
}
private
void
sendTopUpMsg
(
Transaction
transaction
,
Integer
flag
)
{
TopUpOrderVO
topUpOrderVO
=
new
TopUpOrderVO
();
topUpOrderVO
.
setOpenid
(
transaction
.
getPayer
().
getOpenid
());
topUpOrderVO
.
setOrderNo
(
transaction
.
getOutTradeNo
());
topUpOrderVO
.
setAmount
(
transaction
.
getAmount
().
getTotal
());
topUpOrderVO
.
setTradeState
(
transaction
.
getTradeState
().
toString
());
topUpOrderVO
.
setTradeStateDesc
(
transaction
.
getTradeStateDesc
());
if
(
flag
==
0
)
{
publishMsg
.
sendNewTopUpOrder
(
topUpOrderVO
,
RabbitmqConstant
.
USER_TOP_UP_ROUTING_KEY
);
}
if
(
flag
==
1
)
{
publishMsg
.
sendNewTopUpOrder
(
topUpOrderVO
,
RabbitmqConstant
.
USER_TOP_UP_SUCCESS_ROUTING_KEY
);
}
}
@Override
@Override
public
ResultBody
closeOrder
(
String
orderNo
)
{
public
ResultBody
closeOrder
(
String
orderNo
)
{
Config
config
=
wxConfigUtils
.
createConfig
();
Config
config
=
wxConfigUtils
.
createConfig
();
...
...
src/main/resources/application-dev.yml
浏览文件 @
bd9911d7
...
@@ -13,6 +13,13 @@ spring:
...
@@ -13,6 +13,13 @@ spring:
jedis
:
jedis
:
pool
:
pool
:
max-active
:
2
max-active
:
2
#rabbitMQ
rabbitmq
:
host
:
amqp-cn-zvp2ozhnj001.cn-shenzhen.amqp-0.vpc.mq.amqp.aliyuncs.com
port
:
5672
username
:
MjphbXFwLWNuLXp2cDJvemhuajAwMTpMVEFJNEZ6Q3B5ckEzM1BlZ254V1M2WFY=
password
:
${RABBITMQ_PASSWORD}
virtual-host
:
dev
springfox
:
springfox
:
documentation
:
documentation
:
...
...
src/main/resources/application-prod.yml
浏览文件 @
bd9911d7
...
@@ -13,6 +13,13 @@ spring:
...
@@ -13,6 +13,13 @@ spring:
jedis
:
jedis
:
pool
:
pool
:
max-active
:
2
max-active
:
2
#rabbitMQ
rabbitmq
:
host
:
amqp-cn-zvp2ozhnj001.cn-shenzhen.amqp-0.vpc.mq.amqp.aliyuncs.com
port
:
5672
username
:
MjphbXFwLWNuLXp2cDJvemhuajAwMTpMVEFJNEZ6Q3B5ckEzM1BlZ254V1M2WFY=
password
:
${RABBITMQ_PASSWORD}
virtual-host
:
prod
springfox
:
springfox
:
documentation
:
documentation
:
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论