Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
P
payment-ci-test
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
test-ci
payment-ci-test
Commits
005c93a7
提交
005c93a7
authored
8月 23, 2023
作者:
xiaowang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
充值订单支付
上级
7d936f14
隐藏空白字符变更
内嵌
并排
正在显示
10 个修改的文件
包含
165 行增加
和
1 行删除
+165
-1
pom.xml
pom.xml
+11
-0
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
+34
-0
RabbitmqConstant.java
...in/java/com/mmc/payment/mq/constant/RabbitmqConstant.java
+13
-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
+20
-0
application-dev.yml
src/main/resources/application-dev.yml
+7
-0
application-prod.yml
src/main/resources/application-prod.yml
+7
-0
没有找到文件。
pom.xml
浏览文件 @
005c93a7
...
@@ -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/model/vo/order/OrderRequestParamsVO.java
浏览文件 @
005c93a7
...
@@ -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
浏览文件 @
005c93a7
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
浏览文件 @
005c93a7
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
浏览文件 @
005c93a7
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
directQueue
()
{
return
new
Queue
(
RabbitmqConstant
.
USER_TOP_UP_DIRECT_QUEUE
,
true
);
}
@Bean
public
Binding
bindingDirect
()
{
Binding
binding
=
BindingBuilder
.
bind
(
directQueue
()).
to
(
directExchange
()).
with
(
RabbitmqConstant
.
USER_TOP_UP_ROUTING_KEY
);
return
binding
;
}
}
src/main/java/com/mmc/payment/mq/constant/RabbitmqConstant.java
0 → 100644
浏览文件 @
005c93a7
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"
;
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"
;
}
src/main/java/com/mmc/payment/mq/impl/PublishMsgImpl.java
0 → 100644
浏览文件 @
005c93a7
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
浏览文件 @
005c93a7
...
@@ -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,26 @@ public class WechatPayServiceImpl implements WechatPayService {
...
@@ -191,12 +197,26 @@ 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
);
}
}
catch
(
IOException
e
)
{
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
e
.
printStackTrace
();
}
}
return
result
;
return
result
;
}
}
private
void
sendTopUpMsg
(
Transaction
transaction
)
{
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
());
publishMsg
.
sendNewTopUpOrder
(
topUpOrderVO
,
RabbitmqConstant
.
USER_TOP_UP_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
浏览文件 @
005c93a7
...
@@ -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
浏览文件 @
005c93a7
...
@@ -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
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论