记得上下班打卡 | git大法好,push需谨慎
Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
liquidnet-bus-v1
Project
Project
Details
Activity
Releases
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
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
董敬伟
liquidnet-bus-v1
Commits
5e1d3567
Commit
5e1d3567
authored
Jul 16, 2021
by
anjiabin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
提交redis queue队列
parent
af5a04ca
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
160 additions
and
74 deletions
+160
-74
AlipayBiz.java
...iquidnet/service/dragon/channel/alipay/biz/AlipayBiz.java
+1
-1
AbstractAlipayStrategy.java
.../channel/alipay/strategy/impl/AbstractAlipayStrategy.java
+5
-1
DragonPayBiz.java
...net/service/dragon/channel/strategy/biz/DragonPayBiz.java
+50
-1
AbstractPayChannelStrategyImpl.java
...channel/strategy/impl/AbstractPayChannelStrategyImpl.java
+76
-0
PayChannelStrategyAlipayImpl.java
...n/channel/strategy/impl/PayChannelStrategyAlipayImpl.java
+10
-49
PayChannelStrategyApplepayImpl.java
...channel/strategy/impl/PayChannelStrategyApplepayImpl.java
+1
-2
PayChannelStrategyWepayImpl.java
...on/channel/strategy/impl/PayChannelStrategyWepayImpl.java
+8
-17
WepayBiz.java
.../liquidnet/service/dragon/channel/wepay/biz/WepayBiz.java
+1
-2
AbstractWepayStrategy.java
...on/channel/wepay/strategy/impl/AbstractWepayStrategy.java
+5
-1
sqlmap.properties
...-service-dragon-impl/src/main/resources/sqlmap.properties
+3
-0
No files found.
liquidnet-bus-service/liquidnet-service-dragon/liquidnet-service-dragon-impl/src/main/java/com/liquidnet/service/dragon/channel/alipay/biz/AlipayBiz.java
View file @
5e1d3567
...
@@ -30,7 +30,7 @@ import java.util.*;
...
@@ -30,7 +30,7 @@ import java.util.*;
*/
*/
@Slf4j
@Slf4j
@Component
@Component
public
class
AlipayBiz
extends
DragonPayBiz
{
public
class
AlipayBiz
{
/**
/**
* 支付宝支付
* 支付宝支付
* @param alipayTradePayReq
* @param alipayTradePayReq
...
...
liquidnet-bus-service/liquidnet-service-dragon/liquidnet-service-dragon-impl/src/main/java/com/liquidnet/service/dragon/channel/alipay/strategy/impl/AbstractAlipayStrategy.java
View file @
5e1d3567
...
@@ -6,6 +6,7 @@ import com.liquidnet.service.base.ResponseDto;
...
@@ -6,6 +6,7 @@ import com.liquidnet.service.base.ResponseDto;
import
com.liquidnet.service.dragon.channel.alipay.biz.AlipayBiz
;
import
com.liquidnet.service.dragon.channel.alipay.biz.AlipayBiz
;
import
com.liquidnet.service.dragon.channel.alipay.req.AlipayTradePayReq
;
import
com.liquidnet.service.dragon.channel.alipay.req.AlipayTradePayReq
;
import
com.liquidnet.service.dragon.channel.alipay.strategy.IAlipayStrategy
;
import
com.liquidnet.service.dragon.channel.alipay.strategy.IAlipayStrategy
;
import
com.liquidnet.service.dragon.channel.strategy.biz.DragonPayBiz
;
import
com.liquidnet.service.dragon.dto.DragonPayBaseReqDto
;
import
com.liquidnet.service.dragon.dto.DragonPayBaseReqDto
;
import
com.liquidnet.service.dragon.dto.DragonPayBaseRespDto
;
import
com.liquidnet.service.dragon.dto.DragonPayBaseRespDto
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
...
@@ -27,6 +28,9 @@ public abstract class AbstractAlipayStrategy implements IAlipayStrategy {
...
@@ -27,6 +28,9 @@ public abstract class AbstractAlipayStrategy implements IAlipayStrategy {
@Autowired
@Autowired
private
AlipayBiz
alipayBiz
;
private
AlipayBiz
alipayBiz
;
@Autowired
private
DragonPayBiz
dragonPayBiz
;
protected
String
productCode
=
"QUICK_WAP_PAY"
;
protected
String
productCode
=
"QUICK_WAP_PAY"
;
@Override
@Override
...
@@ -55,7 +59,7 @@ public abstract class AbstractAlipayStrategy implements IAlipayStrategy {
...
@@ -55,7 +59,7 @@ public abstract class AbstractAlipayStrategy implements IAlipayStrategy {
respDto
=
this
.
buildResponseDto
(
respDto
,
result
);
respDto
=
this
.
buildResponseDto
(
respDto
,
result
);
//支付订单持久化
//支付订单持久化
alip
ayBiz
.
buildPayOrders
(
dragonPayBaseReqDto
,
respDto
);
dragonP
ayBiz
.
buildPayOrders
(
dragonPayBaseReqDto
,
respDto
);
return
ResponseDto
.
success
(
respDto
);
return
ResponseDto
.
success
(
respDto
);
}
}
...
...
liquidnet-bus-service/liquidnet-service-dragon/liquidnet-service-dragon-impl/src/main/java/com/liquidnet/service/dragon/channel/strategy/biz/DragonPayBiz.java
View file @
5e1d3567
...
@@ -16,6 +16,7 @@ import com.liquidnet.service.dragon.utils.DataUtils;
...
@@ -16,6 +16,7 @@ import com.liquidnet.service.dragon.utils.DataUtils;
import
com.liquidnet.service.dragon.utils.MqHandleUtil
;
import
com.liquidnet.service.dragon.utils.MqHandleUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.LinkedMultiValueMap
;
import
org.springframework.util.LinkedMultiValueMap
;
import
org.springframework.util.MultiValueMap
;
import
org.springframework.util.MultiValueMap
;
...
@@ -31,7 +32,8 @@ import java.time.LocalDateTime;
...
@@ -31,7 +32,8 @@ import java.time.LocalDateTime;
* @date 2021/7/14 14:12
* @date 2021/7/14 14:12
*/
*/
@Slf4j
@Slf4j
public
abstract
class
DragonPayBiz
{
@Component
public
class
DragonPayBiz
{
@Autowired
@Autowired
private
MqHandleUtil
mqHandleUtil
;
private
MqHandleUtil
mqHandleUtil
;
...
@@ -78,6 +80,53 @@ public abstract class DragonPayBiz {
...
@@ -78,6 +80,53 @@ public abstract class DragonPayBiz {
return
orders
;
return
orders
;
}
}
/**
* 更新支付状态
* @param code
* @param paymentId
* @return
*/
public
boolean
updateDragonOrderStatus
(
String
code
,
String
paymentId
){
try
{
Integer
status
=
Integer
.
valueOf
(
DragonConstant
.
PayStatusEnum
.
STATUS_PAID
.
getCode
());
LocalDateTime
finishedAt
=
LocalDateTime
.
now
();
LocalDateTime
updateAt
=
LocalDateTime
.
now
();
//t.status = ? ,t.payment_id = ?,t.finished_at = ?,t.updated_at =? where t.code = ?
boolean
insertResult
=
mqHandleUtil
.
sendMySqlRedis
(
SqlMapping
.
get
(
"dragon_orders.update"
),
new
Object
[]{
status
,
paymentId
,
finishedAt
,
updateAt
,
code
}
,
DragonConstant
.
MysqlRedisQueueEnum
.
DRAGON_PAY_KEY
.
getCode
()
);
if
(
insertResult
)
return
true
;
}
catch
(
Exception
e
)
{
log
.
error
(
"dragon:updateDragonOrderStatus:error msg:{}"
,
e
);
e
.
printStackTrace
();
}
return
false
;
}
/**
* 更新支付通知状态
* @param code
* @return
*/
public
boolean
updateNotifyStatus
(
String
code
,
Integer
status
){
try
{
LocalDateTime
updateAt
=
LocalDateTime
.
now
();
//update dragon_orders t set t.status = ? ,t.updated_at =? where t.code = ?
boolean
insertResult
=
mqHandleUtil
.
sendMySqlRedis
(
SqlMapping
.
get
(
"dragon_orders.updateNotifyStatus"
),
new
Object
[]{
status
,
updateAt
,
code
}
,
DragonConstant
.
MysqlRedisQueueEnum
.
DRAGON_PAY_KEY
.
getCode
()
);
if
(
insertResult
)
return
true
;
}
catch
(
Exception
e
)
{
log
.
error
(
"dragon:updateNotifyStatus:error msg:{}"
,
e
);
e
.
printStackTrace
();
}
return
false
;
}
public
PayNotifyReqBo
buildPayNotifyReqBo
(
DragonOrdersDto
dragonOrdersDto
){
public
PayNotifyReqBo
buildPayNotifyReqBo
(
DragonOrdersDto
dragonOrdersDto
){
PayNotifyReqBo
payNotifyReqBo
=
new
PayNotifyReqBo
();
PayNotifyReqBo
payNotifyReqBo
=
new
PayNotifyReqBo
();
payNotifyReqBo
.
setNotifyUrl
(
dragonOrdersDto
.
getNotifyUrl
());
payNotifyReqBo
.
setNotifyUrl
(
dragonOrdersDto
.
getNotifyUrl
());
...
...
liquidnet-bus-service/liquidnet-service-dragon/liquidnet-service-dragon-impl/src/main/java/com/liquidnet/service/dragon/channel/strategy/impl/AbstractPayChannelStrategyImpl.java
0 → 100644
View file @
5e1d3567
package
com
.
liquidnet
.
service
.
dragon
.
channel
.
strategy
.
impl
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.dragon.channel.strategy.IPayChannelStrategy
;
import
com.liquidnet.service.dragon.channel.strategy.biz.DragonPayBiz
;
import
com.liquidnet.service.dragon.constant.DragonConstant
;
import
com.liquidnet.service.dragon.dto.DragonOrdersDto
;
import
com.liquidnet.service.dragon.dto.DragonPayBaseReqDto
;
import
com.liquidnet.service.dragon.dto.DragonPayBaseRespDto
;
import
com.liquidnet.service.dragon.dto.DragonPayOrderQueryRespDto
;
import
com.liquidnet.service.dragon.utils.DataUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.servlet.http.HttpServletRequest
;
import
java.time.LocalDateTime
;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: AbstractPayChannelStrategyImpl
* @Package com.liquidnet.service.dragon.channel.strategy.impl
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/7/16 13:04
*/
@Slf4j
public
abstract
class
AbstractPayChannelStrategyImpl
implements
IPayChannelStrategy
{
@Autowired
private
DragonPayBiz
dragonPayBiz
;
@Autowired
private
DataUtils
dataUtils
;
@Override
public
abstract
ResponseDto
<
DragonPayBaseRespDto
>
dragonPay
(
DragonPayBaseReqDto
dragonPayBaseReqDto
);
@Override
public
abstract
String
dragonNotify
(
HttpServletRequest
request
,
String
payType
,
String
deviceFrom
);
@Override
public
abstract
DragonPayOrderQueryRespDto
checkOrderStatus
(
String
code
);
/**
* 支付成功方法
* @param dragonOrdersDto
* @param bankTrxNo
* @param timeEnd
* @param bankReturnMsg
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
protected
void
completeSuccessOrder
(
DragonOrdersDto
dragonOrdersDto
,
String
bankTrxNo
,
LocalDateTime
timeEnd
,
String
bankReturnMsg
)
{
log
.
info
(
"订单支付成功!"
);
dragonOrdersDto
.
setPaymentAt
(
timeEnd
);
dragonOrdersDto
.
setPaymentId
(
bankTrxNo
);
// 设置银行流水号
dragonOrdersDto
.
setStatus
(
Integer
.
parseInt
(
DragonConstant
.
PayStatusEnum
.
STATUS_PAID
.
getCode
()));
dataUtils
.
updateOrderStatus
(
dragonOrdersDto
.
getCode
(),
dragonOrdersDto
);
//通知商户
dragonPayBiz
.
sendNotify
(
dragonPayBiz
.
buildPayNotifyReqBo
(
dragonOrdersDto
));
}
/**
* 支付失败方法
* @param dragonOrdersDto
* @param bankReturnMsg
*/
protected
void
completeFailOrder
(
DragonOrdersDto
dragonOrdersDto
,
String
bankReturnMsg
)
{
log
.
info
(
"订单支付失败!"
);
// DragonOrdersDto.(bankReturnMsg);
dragonOrdersDto
.
setStatus
(
Integer
.
parseInt
(
DragonConstant
.
PayStatusEnum
.
STATUS_PAID
.
getCode
()));
dataUtils
.
updateOrderStatus
(
dragonOrdersDto
.
getCode
(),
dragonOrdersDto
);
String
notifyUrl
=
dragonOrdersDto
.
getNotifyUrl
();
}
}
liquidnet-bus-service/liquidnet-service-dragon/liquidnet-service-dragon-impl/src/main/java/com/liquidnet/service/dragon/channel/strategy/impl/PayChannelStrategyAlipayImpl.java
View file @
5e1d3567
...
@@ -10,8 +10,8 @@ import com.liquidnet.service.base.ResponseDto;
...
@@ -10,8 +10,8 @@ import com.liquidnet.service.base.ResponseDto;
import
com.liquidnet.service.dragon.channel.alipay.biz.AlipayBiz
;
import
com.liquidnet.service.dragon.channel.alipay.biz.AlipayBiz
;
import
com.liquidnet.service.dragon.channel.alipay.constant.AlipayConstant
;
import
com.liquidnet.service.dragon.channel.alipay.constant.AlipayConstant
;
import
com.liquidnet.service.dragon.channel.alipay.strategy.AlipayStrategyContext
;
import
com.liquidnet.service.dragon.channel.alipay.strategy.AlipayStrategyContext
;
import
com.liquidnet.service.dragon.channel.strategy.IPayChannelStrategy
;
import
com.liquidnet.service.dragon.channel.strategy.annotation.StrategyPayChannelHandler
;
import
com.liquidnet.service.dragon.channel.strategy.annotation.StrategyPayChannelHandler
;
import
com.liquidnet.service.dragon.channel.strategy.biz.DragonPayBiz
;
import
com.liquidnet.service.dragon.constant.DragonConstant
;
import
com.liquidnet.service.dragon.constant.DragonConstant
;
import
com.liquidnet.service.dragon.constant.DragonErrorCodeEnum
;
import
com.liquidnet.service.dragon.constant.DragonErrorCodeEnum
;
import
com.liquidnet.service.dragon.dto.DragonOrdersDto
;
import
com.liquidnet.service.dragon.dto.DragonOrdersDto
;
...
@@ -25,7 +25,6 @@ import lombok.extern.slf4j.Slf4j;
...
@@ -25,7 +25,6 @@ import lombok.extern.slf4j.Slf4j;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletRequest
;
import
java.time.LocalDateTime
;
import
java.time.LocalDateTime
;
...
@@ -44,7 +43,7 @@ import java.util.Map;
...
@@ -44,7 +43,7 @@ import java.util.Map;
@Slf4j
@Slf4j
@Component
@Component
@StrategyPayChannelHandler
(
DragonConstant
.
PayChannelEnum
.
ALIPAY
)
@StrategyPayChannelHandler
(
DragonConstant
.
PayChannelEnum
.
ALIPAY
)
public
class
PayChannelStrategyAlipayImpl
implements
IPayChannelStrategy
{
public
class
PayChannelStrategyAlipayImpl
extends
AbstractPayChannelStrategyImpl
{
@Autowired
@Autowired
private
AlipayStrategyContext
alipayStrategyContext
;
private
AlipayStrategyContext
alipayStrategyContext
;
...
@@ -54,6 +53,9 @@ public class PayChannelStrategyAlipayImpl implements IPayChannelStrategy {
...
@@ -54,6 +53,9 @@ public class PayChannelStrategyAlipayImpl implements IPayChannelStrategy {
@Autowired
@Autowired
private
AlipayBiz
alipayBiz
;
private
AlipayBiz
alipayBiz
;
@Autowired
private
DragonPayBiz
dragonPayBiz
;
@Autowired
@Autowired
private
MqHandleUtil
mqHandleUtil
;
private
MqHandleUtil
mqHandleUtil
;
...
@@ -85,7 +87,7 @@ public class PayChannelStrategyAlipayImpl implements IPayChannelStrategy {
...
@@ -85,7 +87,7 @@ public class PayChannelStrategyAlipayImpl implements IPayChannelStrategy {
log
.
info
(
"dragonNotify-->alipay json : {}"
,
JSON
.
toJSONString
(
notifyMap
));
log
.
info
(
"dragonNotify-->alipay json : {}"
,
JSON
.
toJSONString
(
notifyMap
));
log
.
info
(
"接收到{}支付结果{}"
,
payType
,
notifyMap
);
log
.
info
(
"接收到{}支付结果{}"
,
payType
,
notifyMap
);
//持久化通知记录
//持久化通知记录
alipayBiz
.
createDragonOrderLogs
(
alip
ayBiz
.
getPaymentType
(
payType
,
deviceFrom
),
JSON
.
toJSONString
(
notifyMap
));
dragonPayBiz
.
createDragonOrderLogs
(
dragonP
ayBiz
.
getPaymentType
(
payType
,
deviceFrom
),
JSON
.
toJSONString
(
notifyMap
));
String
returnStr
=
null
;
String
returnStr
=
null
;
String
code
=
notifyMap
.
get
(
"out_trade_no"
);
String
code
=
notifyMap
.
get
(
"out_trade_no"
);
...
@@ -109,25 +111,18 @@ public class PayChannelStrategyAlipayImpl implements IPayChannelStrategy {
...
@@ -109,25 +111,18 @@ public class PayChannelStrategyAlipayImpl implements IPayChannelStrategy {
if
(
AlipaySignature
.
rsaCheckV1
(
notifyMap
,
merchantPubKey
,
"UTF-8"
,
"RSA2"
)){
if
(
AlipaySignature
.
rsaCheckV1
(
notifyMap
,
merchantPubKey
,
"UTF-8"
,
"RSA2"
)){
String
tradeStatus
=
notifyMap
.
get
(
"trade_status"
);
String
tradeStatus
=
notifyMap
.
get
(
"trade_status"
);
if
(
AlipayConstant
.
AlipayTradeStateEnum
.
TRADE_FINISHED
.
name
().
equals
(
tradeStatus
))
{
if
(
AlipayConstant
.
AlipayTradeStateEnum
.
TRADE_SUCCESS
.
name
().
equals
(
tradeStatus
)
// 判断该笔订单是否在商户网站中已经做过处理
||
AlipayConstant
.
AlipayTradeStateEnum
.
TRADE_FINISHED
.
name
().
equals
(
tradeStatus
))
{
// 如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
// 请务必判断请求时的total_fee、seller_id与通知时获取的total_fee、seller_id为一致的
// 如果有做过处理,不执行商户的业务程序
// 注意:
// 退款日期超过可退款期限后(如三个月可退款),支付宝系统发送该交易状态通知
}
else
if
(
AlipayConstant
.
AlipayTradeStateEnum
.
TRADE_SUCCESS
.
name
().
equals
(
tradeStatus
))
{
String
gmtPaymentStr
=
notifyMap
.
get
(
"gmt_payment"
);
// 付款时间
String
gmtPaymentStr
=
notifyMap
.
get
(
"gmt_payment"
);
// 付款时间
LocalDateTime
timeEnd
=
null
;
LocalDateTime
timeEnd
=
null
;
if
(!
StringUtil
.
isEmpty
(
gmtPaymentStr
))
{
if
(!
StringUtil
.
isEmpty
(
gmtPaymentStr
))
{
timeEnd
=
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
parse
(
gmtPaymentStr
);
timeEnd
=
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
parse
(
gmtPaymentStr
);
}
}
completeSuccessOrder
(
dragonOrdersDto
,
notifyMap
.
get
(
"trade_no"
),
timeEnd
,
notifyMap
.
toString
());
this
.
completeSuccessOrder
(
dragonOrdersDto
,
notifyMap
.
get
(
"trade_no"
),
timeEnd
,
notifyMap
.
toString
());
returnStr
=
"success"
;
returnStr
=
"success"
;
}
else
{
}
else
{
//
completeFailOrder(dragonOrdersDto, notifyMap.toString());
this
.
completeFailOrder
(
dragonOrdersDto
,
notifyMap
.
toString
());
returnStr
=
"fail"
;
returnStr
=
"fail"
;
}
}
}
else
{
// 验证失败
}
else
{
// 验证失败
...
@@ -154,38 +149,4 @@ public class PayChannelStrategyAlipayImpl implements IPayChannelStrategy {
...
@@ -154,38 +149,4 @@ public class PayChannelStrategyAlipayImpl implements IPayChannelStrategy {
}
}
return
respDto
;
return
respDto
;
}
}
/**
* 支付成功方法
* @param dragonOrdersDto
* @param bankTrxNo
* @param timeEnd
* @param bankReturnMsg
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
void
completeSuccessOrder
(
DragonOrdersDto
dragonOrdersDto
,
String
bankTrxNo
,
LocalDateTime
timeEnd
,
String
bankReturnMsg
)
{
log
.
info
(
"订单支付成功!"
);
dragonOrdersDto
.
setPaymentAt
(
timeEnd
);
dragonOrdersDto
.
setPaymentId
(
bankTrxNo
);
// 设置银行流水号
dragonOrdersDto
.
setStatus
(
Integer
.
parseInt
(
DragonConstant
.
PayStatusEnum
.
STATUS_PAID
.
getCode
()));
dataUtils
.
updateOrderStatus
(
dragonOrdersDto
.
getCode
(),
dragonOrdersDto
);
//通知商户
alipayBiz
.
sendNotify
(
alipayBiz
.
buildPayNotifyReqBo
(
dragonOrdersDto
));
}
/**
* 支付失败方法
*
* @param DragonOrdersDto
*/
// private void completeFailOrder(DragonOrdersDto dragonOrdersDto, String bankReturnMsg) {
// log.info("订单支付失败!");
//// DragonOrdersDto.(bankReturnMsg);
// dragonOrdersDto.setStatus(Integer.parseInt(DragonConstant.PayStatusEnum.STATUS_PAID.getCode()));
// dataUtils.updateOrderStatus(dragonOrdersDto.getCode(),dragonOrdersDto);
//
// String notifyUrl = dragonOrdersDto.getNotifyUrl();
// }
}
}
liquidnet-bus-service/liquidnet-service-dragon/liquidnet-service-dragon-impl/src/main/java/com/liquidnet/service/dragon/channel/strategy/impl/PayChannelStrategyApplepayImpl.java
View file @
5e1d3567
package
com
.
liquidnet
.
service
.
dragon
.
channel
.
strategy
.
impl
;
package
com
.
liquidnet
.
service
.
dragon
.
channel
.
strategy
.
impl
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.dragon.channel.strategy.IPayChannelStrategy
;
import
com.liquidnet.service.dragon.channel.strategy.annotation.StrategyPayChannelHandler
;
import
com.liquidnet.service.dragon.channel.strategy.annotation.StrategyPayChannelHandler
;
import
com.liquidnet.service.dragon.constant.DragonConstant
;
import
com.liquidnet.service.dragon.constant.DragonConstant
;
import
com.liquidnet.service.dragon.dto.DragonPayBaseReqDto
;
import
com.liquidnet.service.dragon.dto.DragonPayBaseReqDto
;
...
@@ -24,7 +23,7 @@ import javax.servlet.http.HttpServletRequest;
...
@@ -24,7 +23,7 @@ import javax.servlet.http.HttpServletRequest;
@Slf4j
@Slf4j
@Component
@Component
@StrategyPayChannelHandler
(
DragonConstant
.
PayChannelEnum
.
APPLEPAY
)
@StrategyPayChannelHandler
(
DragonConstant
.
PayChannelEnum
.
APPLEPAY
)
public
class
PayChannelStrategyApplepayImpl
implements
IPayChannelStrategy
{
public
class
PayChannelStrategyApplepayImpl
extends
AbstractPayChannelStrategyImpl
{
@Override
@Override
public
ResponseDto
<
DragonPayBaseRespDto
>
dragonPay
(
DragonPayBaseReqDto
dragonPayBaseReqDto
)
{
public
ResponseDto
<
DragonPayBaseRespDto
>
dragonPay
(
DragonPayBaseReqDto
dragonPayBaseReqDto
)
{
...
...
liquidnet-bus-service/liquidnet-service-dragon/liquidnet-service-dragon-impl/src/main/java/com/liquidnet/service/dragon/channel/strategy/impl/PayChannelStrategyWepayImpl.java
View file @
5e1d3567
...
@@ -5,8 +5,8 @@ import com.liquidnet.common.exception.LiquidnetServiceException;
...
@@ -5,8 +5,8 @@ import com.liquidnet.common.exception.LiquidnetServiceException;
import
com.liquidnet.commons.lang.util.DateUtil
;
import
com.liquidnet.commons.lang.util.DateUtil
;
import
com.liquidnet.commons.lang.util.StringUtil
;
import
com.liquidnet.commons.lang.util.StringUtil
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.dragon.channel.strategy.IPayChannelStrategy
;
import
com.liquidnet.service.dragon.channel.strategy.annotation.StrategyPayChannelHandler
;
import
com.liquidnet.service.dragon.channel.strategy.annotation.StrategyPayChannelHandler
;
import
com.liquidnet.service.dragon.channel.strategy.biz.DragonPayBiz
;
import
com.liquidnet.service.dragon.channel.wepay.biz.WepayBiz
;
import
com.liquidnet.service.dragon.channel.wepay.biz.WepayBiz
;
import
com.liquidnet.service.dragon.channel.wepay.constant.WepayConstant
;
import
com.liquidnet.service.dragon.channel.wepay.constant.WepayConstant
;
import
com.liquidnet.service.dragon.channel.wepay.strategy.WepayStrategyContext
;
import
com.liquidnet.service.dragon.channel.wepay.strategy.WepayStrategyContext
;
...
@@ -22,7 +22,6 @@ import com.liquidnet.service.dragon.utils.PayWepayUtils;
...
@@ -22,7 +22,6 @@ import com.liquidnet.service.dragon.utils.PayWepayUtils;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletRequest
;
import
java.io.IOException
;
import
java.io.IOException
;
...
@@ -43,7 +42,7 @@ import java.util.Map;
...
@@ -43,7 +42,7 @@ import java.util.Map;
@Slf4j
@Slf4j
@Component
@Component
@StrategyPayChannelHandler
(
DragonConstant
.
PayChannelEnum
.
WEPAY
)
@StrategyPayChannelHandler
(
DragonConstant
.
PayChannelEnum
.
WEPAY
)
public
class
PayChannelStrategyWepayImpl
implements
IPayChannelStrategy
{
public
class
PayChannelStrategyWepayImpl
extends
AbstractPayChannelStrategyImpl
{
@Autowired
@Autowired
private
WepayStrategyContext
wepayStrategyContext
;
private
WepayStrategyContext
wepayStrategyContext
;
...
@@ -56,6 +55,9 @@ public class PayChannelStrategyWepayImpl implements IPayChannelStrategy {
...
@@ -56,6 +55,9 @@ public class PayChannelStrategyWepayImpl implements IPayChannelStrategy {
@Autowired
@Autowired
private
WepayBiz
wepayBiz
;
private
WepayBiz
wepayBiz
;
@Autowired
private
DragonPayBiz
dragonPayBiz
;
@Override
@Override
public
ResponseDto
<
DragonPayBaseRespDto
>
dragonPay
(
DragonPayBaseReqDto
dragonPayBaseReqDto
)
{
public
ResponseDto
<
DragonPayBaseRespDto
>
dragonPay
(
DragonPayBaseReqDto
dragonPayBaseReqDto
)
{
return
wepayStrategyContext
.
getStrategy
(
dragonPayBaseReqDto
.
getDeviceFrom
()).
dragonPay
(
dragonPayBaseReqDto
);
return
wepayStrategyContext
.
getStrategy
(
dragonPayBaseReqDto
.
getDeviceFrom
()).
dragonPay
(
dragonPayBaseReqDto
);
...
@@ -72,7 +74,7 @@ public class PayChannelStrategyWepayImpl implements IPayChannelStrategy {
...
@@ -72,7 +74,7 @@ public class PayChannelStrategyWepayImpl implements IPayChannelStrategy {
log
.
info
(
"dragonNotify-->wepay json : {}"
,
JSON
.
toJSONString
(
notifyMap
));
log
.
info
(
"dragonNotify-->wepay json : {}"
,
JSON
.
toJSONString
(
notifyMap
));
//持久化通知记录
//持久化通知记录
wepayBiz
.
createDragonOrderLogs
(
wep
ayBiz
.
getPaymentType
(
payType
,
deviceFrom
),
JSON
.
toJSONString
(
notifyMap
));
dragonPayBiz
.
createDragonOrderLogs
(
dragonP
ayBiz
.
getPaymentType
(
payType
,
deviceFrom
),
JSON
.
toJSONString
(
notifyMap
));
log
.
info
(
"接收到{}支付结果{}"
,
payType
,
notifyMap
);
log
.
info
(
"接收到{}支付结果{}"
,
payType
,
notifyMap
);
String
code
=
notifyMap
.
get
(
"out_trade_no"
);
String
code
=
notifyMap
.
get
(
"out_trade_no"
);
...
@@ -97,10 +99,10 @@ public class PayChannelStrategyWepayImpl implements IPayChannelStrategy {
...
@@ -97,10 +99,10 @@ public class PayChannelStrategyWepayImpl implements IPayChannelStrategy {
if
(!
StringUtil
.
isEmpty
(
timeEndStr
))
{
if
(!
StringUtil
.
isEmpty
(
timeEndStr
))
{
timeEnd
=
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
parse
(
timeEndStr
);
timeEnd
=
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
parse
(
timeEndStr
);
}
}
completeSuccessOrder
(
dragonOrdersDto
,
notifyMap
.
get
(
"transaction_id"
),
timeEnd
,
notifyMap
.
toString
());
this
.
completeSuccessOrder
(
dragonOrdersDto
,
notifyMap
.
get
(
"transaction_id"
),
timeEnd
,
notifyMap
.
toString
());
returnStr
=
"<xml>\n"
+
" <return_code><![CDATA[SUCCESS]]></return_code>\n"
+
" <return_msg><![CDATA[OK]]></return_msg>\n"
+
"</xml>"
;
returnStr
=
"<xml>\n"
+
" <return_code><![CDATA[SUCCESS]]></return_code>\n"
+
" <return_msg><![CDATA[OK]]></return_msg>\n"
+
"</xml>"
;
}
else
{
}
else
{
//
completeFailOrder(dragonOrdersDto, notifyMap.toString());
this
.
completeFailOrder
(
dragonOrdersDto
,
notifyMap
.
toString
());
}
}
}
else
{
}
else
{
throw
new
LiquidnetServiceException
(
DragonErrorCodeEnum
.
TRADE_WEPAY_SIGN_ERROR
.
getCode
(),
DragonErrorCodeEnum
.
TRADE_WEPAY_SIGN_ERROR
.
getMessage
());
throw
new
LiquidnetServiceException
(
DragonErrorCodeEnum
.
TRADE_WEPAY_SIGN_ERROR
.
getCode
(),
DragonErrorCodeEnum
.
TRADE_WEPAY_SIGN_ERROR
.
getMessage
());
...
@@ -120,15 +122,4 @@ public class PayChannelStrategyWepayImpl implements IPayChannelStrategy {
...
@@ -120,15 +122,4 @@ public class PayChannelStrategyWepayImpl implements IPayChannelStrategy {
DragonPayOrderQueryRespDto
respDto
=
wepayStrategyContext
.
getStrategy
(
DragonConstant
.
PayTypeEnum
.
getEnumByCode
(
ordersDto
.
getPaymentType
()).
getDeviceFrom
()).
checkOrderStatus
(
code
);
DragonPayOrderQueryRespDto
respDto
=
wepayStrategyContext
.
getStrategy
(
DragonConstant
.
PayTypeEnum
.
getEnumByCode
(
ordersDto
.
getPaymentType
()).
getDeviceFrom
()).
checkOrderStatus
(
code
);
return
respDto
;
return
respDto
;
}
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
void
completeSuccessOrder
(
DragonOrdersDto
dragonOrdersDto
,
String
bankTrxNo
,
LocalDateTime
timeEnd
,
String
bankReturnMsg
)
{
log
.
info
(
"订单支付成功!"
);
dragonOrdersDto
.
setPaymentAt
(
timeEnd
);
dragonOrdersDto
.
setPaymentId
(
bankTrxNo
);
// 设置银行流水号
dragonOrdersDto
.
setStatus
(
Integer
.
parseInt
(
DragonConstant
.
PayStatusEnum
.
STATUS_PAID
.
getCode
()));
dataUtils
.
updateOrderStatus
(
dragonOrdersDto
.
getCode
(),
dragonOrdersDto
);
wepayBiz
.
sendNotify
(
wepayBiz
.
buildPayNotifyReqBo
(
dragonOrdersDto
));
}
}
}
liquidnet-bus-service/liquidnet-service-dragon/liquidnet-service-dragon-impl/src/main/java/com/liquidnet/service/dragon/channel/wepay/biz/WepayBiz.java
View file @
5e1d3567
package
com
.
liquidnet
.
service
.
dragon
.
channel
.
wepay
.
biz
;
package
com
.
liquidnet
.
service
.
dragon
.
channel
.
wepay
.
biz
;
import
com.liquidnet.service.dragon.channel.strategy.biz.DragonPayBiz
;
import
com.liquidnet.service.dragon.channel.wepay.resp.WepayOrderQueryRespDto
;
import
com.liquidnet.service.dragon.channel.wepay.resp.WepayOrderQueryRespDto
;
import
com.liquidnet.service.dragon.utils.PayWepayUtils
;
import
com.liquidnet.service.dragon.utils.PayWepayUtils
;
import
com.liquidnet.service.dragon.utils.XmlUtil
;
import
com.liquidnet.service.dragon.utils.XmlUtil
;
...
@@ -28,7 +27,7 @@ import java.util.TreeMap;
...
@@ -28,7 +27,7 @@ import java.util.TreeMap;
*/
*/
@Slf4j
@Slf4j
@Component
@Component
public
class
WepayBiz
extends
DragonPayBiz
{
public
class
WepayBiz
{
@Value
(
"${liquidnet.dragon.wepay.merchantId}"
)
@Value
(
"${liquidnet.dragon.wepay.merchantId}"
)
private
String
merchantId
;
private
String
merchantId
;
...
...
liquidnet-bus-service/liquidnet-service-dragon/liquidnet-service-dragon-impl/src/main/java/com/liquidnet/service/dragon/channel/wepay/strategy/impl/AbstractWepayStrategy.java
View file @
5e1d3567
...
@@ -3,6 +3,7 @@ package com.liquidnet.service.dragon.channel.wepay.strategy.impl;
...
@@ -3,6 +3,7 @@ package com.liquidnet.service.dragon.channel.wepay.strategy.impl;
import
com.liquidnet.common.exception.LiquidnetServiceException
;
import
com.liquidnet.common.exception.LiquidnetServiceException
;
import
com.liquidnet.commons.lang.util.DateUtil
;
import
com.liquidnet.commons.lang.util.DateUtil
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.dragon.channel.strategy.biz.DragonPayBiz
;
import
com.liquidnet.service.dragon.channel.wepay.biz.WepayBiz
;
import
com.liquidnet.service.dragon.channel.wepay.biz.WepayBiz
;
import
com.liquidnet.service.dragon.channel.wepay.constant.WepayConstant
;
import
com.liquidnet.service.dragon.channel.wepay.constant.WepayConstant
;
import
com.liquidnet.service.dragon.channel.wepay.resp.WepayOrderQueryRespDto
;
import
com.liquidnet.service.dragon.channel.wepay.resp.WepayOrderQueryRespDto
;
...
@@ -42,6 +43,9 @@ public abstract class AbstractWepayStrategy implements IWepayStrategy {
...
@@ -42,6 +43,9 @@ public abstract class AbstractWepayStrategy implements IWepayStrategy {
@Autowired
@Autowired
private
WepayBiz
wepayBiz
;
private
WepayBiz
wepayBiz
;
@Autowired
private
DragonPayBiz
dragonPayBiz
;
@Override
@Override
public
ResponseDto
<
DragonPayBaseRespDto
>
dragonPay
(
DragonPayBaseReqDto
dragonPayBaseReqDto
)
{
public
ResponseDto
<
DragonPayBaseRespDto
>
dragonPay
(
DragonPayBaseReqDto
dragonPayBaseReqDto
)
{
...
@@ -74,7 +78,7 @@ public abstract class AbstractWepayStrategy implements IWepayStrategy {
...
@@ -74,7 +78,7 @@ public abstract class AbstractWepayStrategy implements IWepayStrategy {
this
.
buildResponseDto
(
respPayDto
,
respWepayDto
);
this
.
buildResponseDto
(
respPayDto
,
respWepayDto
);
//支付订单持久化
//支付订单持久化
wep
ayBiz
.
buildPayOrders
(
dragonPayBaseReqDto
,
respPayDto
);
dragonP
ayBiz
.
buildPayOrders
(
dragonPayBaseReqDto
,
respPayDto
);
return
ResponseDto
.
success
(
respPayDto
);
return
ResponseDto
.
success
(
respPayDto
);
}
else
{
}
else
{
throw
new
LiquidnetServiceException
(
DragonErrorCodeEnum
.
TRADE_PARAM_ERROR
.
getCode
(),
DragonErrorCodeEnum
.
TRADE_PARAM_ERROR
.
getMessage
());
throw
new
LiquidnetServiceException
(
DragonErrorCodeEnum
.
TRADE_PARAM_ERROR
.
getCode
(),
DragonErrorCodeEnum
.
TRADE_PARAM_ERROR
.
getMessage
());
...
...
liquidnet-bus-service/liquidnet-service-dragon/liquidnet-service-dragon-impl/src/main/resources/sqlmap.properties
View file @
5e1d3567
...
@@ -13,3 +13,6 @@ dragon_order_logs.insert=insert into dragon_order_logs(order_id, payment_type, c
...
@@ -13,3 +13,6 @@ dragon_order_logs.insert=insert into dragon_order_logs(order_id, payment_type, c
dragon_pay_notify.insert
=
insert into dragon_pay_notify (code, order_code, notify_url, notify_data, created_at, updated_at) values(?,?,?,?,?,?)
dragon_pay_notify.insert
=
insert into dragon_pay_notify (code, order_code, notify_url, notify_data, created_at, updated_at) values(?,?,?,?,?,?)
dragon_pay_notify_fail.insert
=
insert into dragon_pay_notify_fail (code, order_code, notify_url, notify_data, fail_desc, created_at, updated_at) values(?,?,?,?,?,?,?)
dragon_pay_notify_fail.insert
=
insert into dragon_pay_notify_fail (code, order_code, notify_url, notify_data, fail_desc, created_at, updated_at) values(?,?,?,?,?,?,?)
dragon_orders.update
=
update dragon_orders t set t.status = ? ,t.payment_id = ?,t.finished_at = ?,t.updated_at =? where t.code = ?
dragon_orders.updateNotifyStatus
=
update dragon_orders t set t.status = ? ,t.updated_at =? where t.code = ?
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