Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
P
payment
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
iuav
payment
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
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论