记得上下班打卡 | 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
92e9c22a
Commit
92e9c22a
authored
Jul 15, 2021
by
jiangxiulong
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/dev' into dev
parents
e4b9eea0
21cb3fba
Changes
15
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
113 additions
and
86 deletions
+113
-86
DragonConstant.java
...com/liquidnet/service/dragon/constant/DragonConstant.java
+9
-1
IDragonOrdersService.java
...iquidnet/service/dragon/service/IDragonOrdersService.java
+1
-1
IDGenerator.java
...ain/java/com/liquidnet/commons/lang/util/IDGenerator.java
+6
-4
DragonOrders.java
...ava/com/liquidnet/service/dragon/entity/DragonOrders.java
+4
-0
AdamLoginController.java
...iquidnet/service/adam/controller/AdamLoginController.java
+12
-10
RedisPayReceiver.java
...ce/consumer/dragon/service/receiver/RedisPayReceiver.java
+2
-4
PayNotifyReqBo.java
.../java/com/liquidnet/service/dragon/bo/PayNotifyReqBo.java
+1
-0
IPayChannelStrategy.java
.../service/dragon/channel/strategy/IPayChannelStrategy.java
+1
-1
DragonPayBiz.java
...net/service/dragon/channel/strategy/biz/DragonPayBiz.java
+54
-2
PayChannelStrategyAlipayImpl.java
...n/channel/strategy/impl/PayChannelStrategyAlipayImpl.java
+10
-4
PayChannelStrategyApplepayImpl.java
...channel/strategy/impl/PayChannelStrategyApplepayImpl.java
+2
-2
PayChannelStrategyWepayImpl.java
...on/channel/strategy/impl/PayChannelStrategyWepayImpl.java
+5
-5
PayNotifyController.java
...uidnet/service/dragon/controller/PayNotifyController.java
+2
-3
DragonOrdersServiceImpl.java
.../service/dragon/service/impl/DragonOrdersServiceImpl.java
+2
-2
MqHandleUtil.java
...java/com/liquidnet/service/dragon/utils/MqHandleUtil.java
+2
-47
No files found.
liquidnet-bus-api/liquidnet-service-dragon-api/src/main/java/com/liquidnet/service/dragon/constant/DragonConstant.java
View file @
92e9c22a
...
...
@@ -217,10 +217,16 @@ public class DragonConstant {
* MYSQL_REDIS_QUEUE
*/
public
enum
MysqlRedisQueueEnum
{
//支付相关队列
DRAGON_PAY_KEY
(
"dragon:stream:dragon-pay"
,
"同步数据-支付"
),
DRAGON_REFUND_KEY
(
"dragon:stream:dragon-refund"
,
"同步数据-退款"
),
DRAGON_PAY_GROUP
(
"dragon-pay-group"
,
"同步数据-支付-组"
),
DRAGON_REFUND_GROUP
(
"dragon-refund-group"
,
"同步数据-退款-组"
);
DRAGON_REFUND_GROUP
(
"dragon-refund-group"
,
"同步数据-退款-组"
),
//商户通知相关队列
DRAGON_PAY_NOTIFY_KEY
(
"dragon-pay-notify-key"
,
"支付异步通知"
),
DRAGON_PAY_NOTIFY_GROUP
(
"dragon-pay-notify-group"
,
"支付异步通知-组"
),
PAY_MCH_NOTIFY_ERROR_KEY
(
"pay-mch-notify-error-key"
,
"商户异步通知失败"
),
PAY_MCH_NOTIFY_ERROR_GROUP
(
"pay-mch-notify-error-group"
,
"商户异步通知失败"
);
private
String
code
;
private
String
message
;
MysqlRedisQueueEnum
(
String
code
,
String
message
)
{
...
...
@@ -237,6 +243,7 @@ public class DragonConstant {
* CHANNEL_REDIS_QUEUE
*/
public
enum
ChannelRedisQueueEnum
{
//支付回调相关队列
WECHAT_PAY_KEY
(
"wechat-pay"
,
"微信-支付-回调"
),
WECHAT_REFUND_KEY
(
"wechat-refund"
,
"微信-退款-回调"
),
ALIPAY_PAY_KEY
(
"alipay-pay"
,
"支付宝-支付-回调"
),
...
...
@@ -245,6 +252,7 @@ public class DragonConstant {
WECHAT_REFUND_GROUP
(
"wechat-refund-group"
,
"微信-退款-回调-组"
),
ALIPAY_PAY_GROUP
(
"alipay-pay-group"
,
"支付宝-支付-回调-组"
),
ALIPAY_REFUND_GROUP
(
"alipay-refund-group"
,
"支付宝-退款-回调-组"
);
private
String
code
;
private
String
message
;
ChannelRedisQueueEnum
(
String
code
,
String
message
)
{
...
...
liquidnet-bus-api/liquidnet-service-dragon-api/src/main/java/com/liquidnet/service/dragon/service/IDragonOrdersService.java
View file @
92e9c22a
...
...
@@ -10,7 +10,7 @@ import javax.servlet.http.HttpServletRequest;
public
interface
IDragonOrdersService
{
ResponseDto
<
DragonPayBaseRespDto
>
dragonPay
(
DragonPayBaseReqDto
dragonPayBaseReqDto
);
void
dragonNotify
(
HttpServletRequest
request
,
String
payType
,
String
deviceFrom
);
String
dragonNotify
(
HttpServletRequest
request
,
String
payType
,
String
deviceFrom
);
DragonPayOrderQueryRespDto
checkOrderStatusByCode
(
String
code
);
...
...
liquidnet-bus-common/liquidnet-common-base/src/main/java/com/liquidnet/commons/lang/util/IDGenerator.java
View file @
92e9c22a
package
com
.
liquidnet
.
commons
.
lang
.
util
;
import
org.apache.commons.lang3.StringUtils
;
import
java.time.LocalDateTime
;
import
java.time.format.DateTimeFormatter
;
import
java.util.UUID
;
...
...
@@ -67,7 +65,11 @@ public class IDGenerator {
}
public
static
void
main
(
String
[]
args
)
{
System
.
out
.
println
(
IDGenerator
.
payCode
());
System
.
out
.
println
(
IDGenerator
.
refundCode
());
System
.
out
.
println
(
""
+
IDGenerator
.
payCode
());
System
.
out
.
println
(
""
+
IDGenerator
.
refundCode
());
System
.
out
.
println
(
"nextTimeId==="
+
IDGenerator
.
nextTimeId
());
System
.
out
.
println
(
"nextMilliId==="
+
IDGenerator
.
nextMilliId
());
System
.
out
.
println
(
"nextSnowId==="
+
IDGenerator
.
nextSnowId
());
System
.
out
.
println
(
"get32UUID==="
+
IDGenerator
.
get32UUID
());
}
}
liquidnet-bus-do/liquidnet-service-dragon-do/src/main/java/com/liquidnet/service/dragon/entity/DragonOrders.java
View file @
92e9c22a
...
...
@@ -17,6 +17,10 @@ public class DragonOrders implements Serializable {
@TableId
(
value
=
"mid"
,
type
=
IdType
.
AUTO
)
private
Long
mid
;
/**
* order_id
*/
private
String
orderId
;
/**
* status
*/
...
...
liquidnet-bus-service/liquidnet-service-adam/liquidnet-service-adam-impl/src/main/java/com/liquidnet/service/adam/controller/AdamLoginController.java
View file @
92e9c22a
...
...
@@ -335,19 +335,20 @@ public class AdamLoginController {
@ApiOperation
(
value
=
"微信小程序登录凭证校验"
,
notes
=
"这里仅用于获取OPENID使用。登录凭证校验。通过 wx.login 接口获得临时登录凭证 code 后传到开发者服务器调用此接口完成登录流程。更多使用方法详见 https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/login/auth.code2Session.html"
)
@GetMapping
(
value
=
{
"wxa/code2session"
})
public
ResponseDto
<
String
>
wxaCode2Session
(
@RequestParam
String
jsCode
)
{
String
openId
=
null
;
String
openId
=
null
,
respJStr
=
null
;
try
{
String
url
=
AdamWechatConst
.
API_URL_JS_CODE2SESSION
.
replace
(
"APPID"
,
AdamWechatConst
.
zhengzaiAppletAppid
)
.
replace
(
"SECRET"
,
AdamWechatConst
.
zhengzaiAppletSecret
).
replace
(
"JSCODE"
,
jsCode
);
String
respJStr
=
HttpUtil
.
get
(
url
,
null
);
JsonNode
respJNode
=
JsonUtils
.
fromJson
(
respJStr
,
JsonNode
.
class
);
if
(
null
==
respJNode
||
!
"0"
.
equalsIgnoreCase
(
respJNode
.
get
(
"errcode"
).
asText
()))
{
log
.
debug
(
"jsCode={},url={}"
,
jsCode
,
url
);
respJStr
=
HttpUtil
.
get
(
url
,
null
);
JsonNode
respJNode
=
JsonUtils
.
fromJson
(
respJStr
,
JsonNode
.
class
),
respErrcode
;
if
(
null
==
respJNode
||
(((
respErrcode
=
respJNode
.
get
(
"errcode"
))
!=
null
)
&&
!
"0"
.
equalsIgnoreCase
(
respErrcode
.
asText
())))
{
log
.
warn
(
"WX.API调用失败[{}]"
,
respJStr
);
return
ResponseDto
.
success
(
null
);
}
openId
=
respJNode
.
get
(
"openid"
).
asText
();
}
catch
(
Exception
e
)
{
log
.
error
(
"WX.API调用异常[jsCode:{}
]"
,
jsCode
,
e
);
log
.
error
(
"WX.API调用异常[jsCode:{}
,respJStr={}]"
,
jsCode
,
respJStr
,
e
);
}
return
ResponseDto
.
success
(
openId
);
}
...
...
@@ -356,19 +357,20 @@ public class AdamLoginController {
@ApiOperation
(
value
=
"微信网站应用登录"
,
notes
=
"这里仅用于获取OPENID使用。方法详见 https://developers.weixin.qq.com/doc/oplatform/Website_App/WeChat_Login/Wechat_Login.html"
)
@GetMapping
(
value
=
{
"wx/oauth2/access_token"
})
public
ResponseDto
<
String
>
wxOauth2AccessToken
(
@RequestParam
String
code
)
{
String
openId
=
null
;
String
openId
=
null
,
respJStr
=
null
;
try
{
String
url
=
AdamWechatConst
.
API_URL_OAUTH2_ACCESS_TOKEN
.
replace
(
"APPID"
,
AdamWechatConst
.
zhengzaiServiceAppid
)
.
replace
(
"SECRET"
,
AdamWechatConst
.
zhengzaiServiceSecret
).
replace
(
"CODE"
,
code
);
String
respJStr
=
HttpUtil
.
get
(
url
,
null
);
JsonNode
respJNode
=
JsonUtils
.
fromJson
(
respJStr
,
JsonNode
.
class
);
if
(
null
==
respJNode
||
!
"0"
.
equalsIgnoreCase
(
respJNode
.
get
(
"errcode"
).
asText
()))
{
log
.
debug
(
"code={},url={}"
,
code
,
url
);
respJStr
=
HttpUtil
.
get
(
url
,
null
);
JsonNode
respJNode
=
JsonUtils
.
fromJson
(
respJStr
,
JsonNode
.
class
),
respErrcode
;
if
(
null
==
respJNode
||
(((
respErrcode
=
respJNode
.
get
(
"errcode"
))
!=
null
)
&&
!
"0"
.
equalsIgnoreCase
(
respErrcode
.
asText
())))
{
log
.
warn
(
"WX.API调用失败[{}]"
,
respJStr
);
return
ResponseDto
.
success
(
null
);
}
openId
=
respJNode
.
get
(
"openid"
).
asText
();
}
catch
(
Exception
e
)
{
log
.
error
(
"WX.API调用异常[
code:{}]"
,
code
,
e
);
log
.
error
(
"WX.API调用异常[
jsCode:{},respJStr={}]"
,
code
,
respJStr
,
e
);
}
return
ResponseDto
.
success
(
openId
);
}
...
...
liquidnet-bus-service/liquidnet-service-consumer-all/liquidnet-service-consumer-dragon/src/main/java/com/liquidnet/service/consumer/dragon/service/receiver/RedisPayReceiver.java
View file @
92e9c22a
...
...
@@ -26,7 +26,7 @@ public class RedisPayReceiver implements StreamListener<String, MapRecord<String
@Override
public
void
onMessage
(
MapRecord
<
String
,
String
,
String
>
message
)
{
log
.
info
(
"接受到来自redis
REFUND
的消息"
);
log
.
info
(
"接受到来自redis
PAY
的消息"
);
System
.
out
.
println
(
"message id "
+
message
.
getId
());
System
.
out
.
println
(
"stream "
+
message
.
getStream
());
System
.
out
.
println
(
"body "
+
message
.
getValue
());
...
...
@@ -42,8 +42,6 @@ public class RedisPayReceiver implements StreamListener<String, MapRecord<String
log
.
debug
(
"CONSUMER SQL result of execution:{}"
,
rstBatchSqls
);
if
(
rstBatchSqls
)
{
//应答
}
else
{
sendMySqlRedis
(
msg
);
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
...
...
@@ -60,7 +58,7 @@ public class RedisPayReceiver implements StreamListener<String, MapRecord<String
try
{
HashMap
<
String
,
String
>
map
=
new
HashMap
<>();
map
.
put
(
"message"
,
msg
);
MapRecord
<
String
,
String
,
String
>
record
=
StreamRecords
.
mapBacked
(
map
).
withStreamKey
(
DragonConstant
.
MysqlRedisQueueEnum
.
DRAGON_
REFUND
_KEY
.
getCode
());
MapRecord
<
String
,
String
,
String
>
record
=
StreamRecords
.
mapBacked
(
map
).
withStreamKey
(
DragonConstant
.
MysqlRedisQueueEnum
.
DRAGON_
PAY
_KEY
.
getCode
());
stringRedisTemplate
.
opsForStream
().
add
(
record
);
return
true
;
}
catch
(
Exception
e
)
{
...
...
liquidnet-bus-service/liquidnet-service-dragon/liquidnet-service-dragon-impl/src/main/java/com/liquidnet/service/dragon/bo/PayNotifyReqBo.java
View file @
92e9c22a
...
...
@@ -16,6 +16,7 @@ import lombok.Data;
@Data
public
class
PayNotifyReqBo
{
private
String
notifyUrl
;
private
String
content
;
private
PayNotifyDto
payNotifyDto
;
@Override
...
...
liquidnet-bus-service/liquidnet-service-dragon/liquidnet-service-dragon-impl/src/main/java/com/liquidnet/service/dragon/channel/strategy/IPayChannelStrategy.java
View file @
92e9c22a
...
...
@@ -20,7 +20,7 @@ import javax.servlet.http.HttpServletRequest;
public
interface
IPayChannelStrategy
{
ResponseDto
<
DragonPayBaseRespDto
>
dragonPay
(
DragonPayBaseReqDto
dragonPayBaseReqDto
);
void
dragonNotify
(
HttpServletRequest
request
,
String
payType
,
String
deviceFrom
);
String
dragonNotify
(
HttpServletRequest
request
,
String
payType
,
String
deviceFrom
);
DragonPayOrderQueryRespDto
checkOrderStatus
(
String
code
);
}
liquidnet-bus-service/liquidnet-service-dragon/liquidnet-service-dragon-impl/src/main/java/com/liquidnet/service/dragon/channel/strategy/biz/DragonPayBiz.java
View file @
92e9c22a
package
com
.
liquidnet
.
service
.
dragon
.
channel
.
strategy
.
biz
;
import
com.liquidnet.commons.lang.util.BeanUtil
;
import
com.liquidnet.commons.lang.util.HttpUtil
;
import
com.liquidnet.commons.lang.util.IDGenerator
;
import
com.liquidnet.service.base.SqlMapping
;
import
com.liquidnet.service.dragon.bo.PayNotifyReqBo
;
import
com.liquidnet.service.dragon.constant.DragonConstant
;
...
...
@@ -11,7 +13,10 @@ import com.liquidnet.service.dragon.dto.PayNotifyDto;
import
com.liquidnet.service.dragon.entity.DragonOrders
;
import
com.liquidnet.service.dragon.utils.DataUtils
;
import
com.liquidnet.service.dragon.utils.MqHandleUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.util.LinkedMultiValueMap
;
import
org.springframework.util.MultiValueMap
;
import
java.time.LocalDateTime
;
...
...
@@ -24,6 +29,7 @@ import java.time.LocalDateTime;
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/7/14 14:12
*/
@Slf4j
public
abstract
class
DragonPayBiz
{
@Autowired
private
MqHandleUtil
mqHandleUtil
;
...
...
@@ -35,6 +41,7 @@ public abstract class DragonPayBiz {
//构造订单
DragonOrders
orders
=
new
DragonOrders
();
// orders.setMid();
orders
.
setOrderId
(
IDGenerator
.
nextTimeId
());
orders
.
setStatus
(
Integer
.
valueOf
(
DragonConstant
.
PayStatusEnum
.
STATUS_UNPAID
.
getCode
()));
orders
.
setCode
(
respDto
.
getCode
());
orders
.
setType
(
dragonPayBaseReqDto
.
getType
());
...
...
@@ -58,13 +65,14 @@ public abstract class DragonPayBiz {
// 持久化到数据库
boolean
insertResult
=
mqHandleUtil
.
sendMySqlRedis
(
SqlMapping
.
get
(
"dragon_orders.insert"
),
new
Object
[]{
orders
.
getStatus
(),
orders
.
getCode
(),
orders
.
getType
()
new
Object
[]{
orders
.
get
OrderId
(),
orders
.
get
Status
(),
orders
.
getCode
(),
orders
.
getType
()
,
orders
.
getPrice
(),
orders
.
getName
(),
orders
.
getDetail
()
,
orders
.
getOrderCode
(),
orders
.
getClientIp
()
,
orders
.
getNotifyUrl
(),
orders
.
getPaymentType
(),
orders
.
getPaymentId
(),
orders
.
getPaymentAt
()
,
orders
.
getFinishedAt
(),
orders
.
getCreatedAt
()
,
orders
.
getUpdatedAt
()}
,
orders
.
getUpdatedAt
(),
orders
.
getDeletedAt
()}
,
DragonConstant
.
MysqlRedisQueueEnum
.
DRAGON_PAY_KEY
.
getCode
()
);
return
orders
;
}
...
...
@@ -83,4 +91,48 @@ public abstract class DragonPayBiz {
payNotifyReqBo
.
setPayNotifyDto
(
payNotifyDto
);
return
payNotifyReqBo
;
}
public
void
createDragonOrderLogs
(
String
paymentType
,
String
content
){
try
{
String
orderId
=
IDGenerator
.
nextTimeId
();
LocalDateTime
createAt
=
LocalDateTime
.
now
();
LocalDateTime
updateAt
=
null
;
LocalDateTime
deleteAt
=
null
;
boolean
insertResult
=
mqHandleUtil
.
sendMySqlRedis
(
SqlMapping
.
get
(
"dragon_order_logs.insert"
),
new
Object
[]{
orderId
,
paymentType
,
content
,
createAt
,
updateAt
,
deleteAt
}
,
DragonConstant
.
MysqlRedisQueueEnum
.
DRAGON_PAY_NOTIFY_KEY
.
getCode
()
);
}
catch
(
Exception
e
)
{
log
.
error
(
"dragon:createOrderLog:error msg:{}"
,
e
);
e
.
printStackTrace
();
}
}
public
void
sendNotify
(
PayNotifyReqBo
payNotifyReqBo
){
PayNotifyDto
payNotifyDto
=
payNotifyReqBo
.
getPayNotifyDto
();
LocalDateTime
nowTime
=
LocalDateTime
.
now
();
MultiValueMap
<
String
,
String
>
params
=
new
LinkedMultiValueMap
();
params
.
add
(
"status"
,
payNotifyDto
.
getStatus
().
toString
());
params
.
add
(
"type"
,
payNotifyDto
.
getType
());
params
.
add
(
"code"
,
payNotifyDto
.
getCode
());
params
.
add
(
"paymentId"
,
payNotifyDto
.
getPaymentId
());
params
.
add
(
"orderCode"
,
payNotifyDto
.
getOrderCode
());
params
.
add
(
"price"
,
payNotifyDto
.
getPrice
().
toString
());
params
.
add
(
"paymentType"
,
payNotifyDto
.
getPaymentType
());
String
response
=
HttpUtil
.
post
(
payNotifyReqBo
.
getNotifyUrl
(),
params
);
log
.
debug
(
"PAY RESPONSE="
+
response
);
if
(
response
.
equals
(
"success"
))
{
}
else
{
// sendMySqlRedis(
// SqlMapping.get("dragon_order_pay.update"),
// new Object[]{nowTime, DateUtil.Formatter.yyyyMMddHHmmss.format(nowTime), DragonConstant.RefundStatusEnum.STATUS_FAIL.getCode(), notifyUrlDto.getRefundCode()}
// );
}
}
public
String
getPaymentType
(
String
payType
,
String
deviceFrom
){
return
(
deviceFrom
+
payType
).
toUpperCase
();
}
}
liquidnet-bus-service/liquidnet-service-dragon/liquidnet-service-dragon-impl/src/main/java/com/liquidnet/service/dragon/channel/strategy/impl/PayChannelStrategyAlipayImpl.java
View file @
92e9c22a
...
...
@@ -77,12 +77,15 @@ public class PayChannelStrategyAlipayImpl implements IPayChannelStrategy {
}
@Override
public
void
dragonNotify
(
HttpServletRequest
request
,
String
payType
,
String
deviceFrom
)
{
public
String
dragonNotify
(
HttpServletRequest
request
,
String
payType
,
String
deviceFrom
)
{
log
.
info
(
"alipay-->notify-->begin payType:{} deviceFrom:{}"
,
payType
,
deviceFrom
);
Map
<
String
,
String
[]>
requestParams
=
request
.
getParameterMap
();
Map
<
String
,
String
>
notifyMap
=
new
HashMap
<
String
,
String
>();
notifyMap
=
alipayBiz
.
parseNotifyMsg
(
requestParams
);
log
.
info
(
"dragonNotify-->alipay json : {}"
,
JSON
.
toJSONString
(
notifyMap
));
log
.
info
(
"接收到{}支付结果{}"
,
payType
,
notifyMap
);
//持久化通知记录
alipayBiz
.
createDragonOrderLogs
(
alipayBiz
.
getPaymentType
(
payType
,
deviceFrom
),
JSON
.
toJSONString
(
notifyMap
));
String
returnStr
=
null
;
String
code
=
notifyMap
.
get
(
"out_trade_no"
);
...
...
@@ -136,6 +139,8 @@ public class PayChannelStrategyAlipayImpl implements IPayChannelStrategy {
}
log
.
info
(
"返回支付通道{}信息{}"
,
payType
,
returnStr
);
log
.
info
(
"alipay-->notify-->end payType:{} deviceFrom:{}"
,
payType
,
deviceFrom
);
return
returnStr
;
}
@Override
...
...
@@ -162,11 +167,10 @@ public class PayChannelStrategyAlipayImpl implements IPayChannelStrategy {
log
.
info
(
"订单支付成功!"
);
dragonOrdersDto
.
setPaymentAt
(
timeEnd
);
dragonOrdersDto
.
setPaymentId
(
bankTrxNo
);
// 设置银行流水号
// DragonOrdersDto.(bankReturnMsg);
dragonOrdersDto
.
setStatus
(
Integer
.
parseInt
(
DragonConstant
.
PayStatusEnum
.
STATUS_PAID
.
getCode
()));
dataUtils
.
updateOrderStatus
(
dragonOrdersDto
.
getCode
(),
dragonOrdersDto
);
//通知
消息入队列
mqHandleUtil
.
sendQueueAlipa
y
(
alipayBiz
.
buildPayNotifyReqBo
(
dragonOrdersDto
));
//通知
商户
alipayBiz
.
sendNotif
y
(
alipayBiz
.
buildPayNotifyReqBo
(
dragonOrdersDto
));
}
/**
...
...
@@ -182,4 +186,6 @@ public class PayChannelStrategyAlipayImpl implements IPayChannelStrategy {
//
// 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 @
92e9c22a
...
...
@@ -32,8 +32,8 @@ public class PayChannelStrategyApplepayImpl implements IPayChannelStrategy {
}
@Override
public
void
dragonNotify
(
HttpServletRequest
request
,
String
payType
,
String
deviceFrom
)
{
public
String
dragonNotify
(
HttpServletRequest
request
,
String
payType
,
String
deviceFrom
)
{
return
null
;
}
@Override
...
...
liquidnet-bus-service/liquidnet-service-dragon/liquidnet-service-dragon-impl/src/main/java/com/liquidnet/service/dragon/channel/strategy/impl/PayChannelStrategyWepayImpl.java
View file @
92e9c22a
...
...
@@ -62,7 +62,8 @@ public class PayChannelStrategyWepayImpl implements IPayChannelStrategy {
}
@Override
public
void
dragonNotify
(
HttpServletRequest
request
,
String
payType
,
String
deviceFrom
)
{
public
String
dragonNotify
(
HttpServletRequest
request
,
String
payType
,
String
deviceFrom
)
{
String
returnStr
=
"<xml>\n"
+
" <return_code><![CDATA[FAIL]]></return_code>\n"
+
" <return_msg><![CDATA[FAIL]]></return_msg>\n"
+
"</xml>"
;;
try
{
InputStream
inputStream
=
request
.
getInputStream
();
// 从request中取得输入流
Map
<
String
,
String
>
notifyMap
=
new
HashMap
<
String
,
String
>();
...
...
@@ -95,7 +96,7 @@ public class PayChannelStrategyWepayImpl implements IPayChannelStrategy {
timeEnd
=
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
parse
(
timeEndStr
);
}
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
{
// completeFailOrder(dragonOrdersDto, notifyMap.toString());
}
...
...
@@ -108,6 +109,7 @@ public class PayChannelStrategyWepayImpl implements IPayChannelStrategy {
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
return
returnStr
;
}
@Override
...
...
@@ -122,11 +124,9 @@ public class PayChannelStrategyWepayImpl implements IPayChannelStrategy {
log
.
info
(
"订单支付成功!"
);
dragonOrdersDto
.
setPaymentAt
(
timeEnd
);
dragonOrdersDto
.
setPaymentId
(
bankTrxNo
);
// 设置银行流水号
// DragonOrdersDto.(bankReturnMsg);
dragonOrdersDto
.
setStatus
(
Integer
.
parseInt
(
DragonConstant
.
PayStatusEnum
.
STATUS_PAID
.
getCode
()));
dataUtils
.
updateOrderStatus
(
dragonOrdersDto
.
getCode
(),
dragonOrdersDto
);
//通知消息入队列
mqHandleUtil
.
sendQueueWepay
(
wepayBiz
.
buildPayNotifyReqBo
(
dragonOrdersDto
));
wepayBiz
.
sendNotify
(
wepayBiz
.
buildPayNotifyReqBo
(
dragonOrdersDto
));
}
}
liquidnet-bus-service/liquidnet-service-dragon/liquidnet-service-dragon-impl/src/main/java/com/liquidnet/service/dragon/controller/PayNotifyController.java
View file @
92e9c22a
package
com
.
liquidnet
.
service
.
dragon
.
controller
;
import
com.liquidnet.service.dragon.service.IDragonOrderRefundsService
;
import
com.liquidnet.service.dragon.service.IDragonOrdersService
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
...
...
@@ -39,7 +38,7 @@ public class PayNotifyController {
@ApiImplicitParams
({
@ApiImplicitParam
(
type
=
"form"
,
required
=
true
,
dataType
=
"String"
,
name
=
"payType"
,
value
=
"支付类型:alipay,wepay,iappay"
,
example
=
"alipay"
)
})
public
void
dragonNotify
(
@PathVariable
(
"payType"
)
String
payType
,
@PathVariable
(
"deviceFrom"
)
String
deviceFrom
,
HttpServletRequest
request
,
HttpServletResponse
respone
)
throws
Exception
{
dragonOrdersService
.
dragonNotify
(
request
,
payType
,
deviceFrom
);
public
String
dragonNotify
(
@PathVariable
(
"payType"
)
String
payType
,
@PathVariable
(
"deviceFrom"
)
String
deviceFrom
,
HttpServletRequest
request
,
HttpServletResponse
respone
)
throws
Exception
{
return
dragonOrdersService
.
dragonNotify
(
request
,
payType
,
deviceFrom
);
}
}
liquidnet-bus-service/liquidnet-service-dragon/liquidnet-service-dragon-impl/src/main/java/com/liquidnet/service/dragon/service/impl/DragonOrdersServiceImpl.java
View file @
92e9c22a
...
...
@@ -41,8 +41,8 @@ public class DragonOrdersServiceImpl implements IDragonOrdersService {
}
@Override
public
void
dragonNotify
(
HttpServletRequest
request
,
String
payType
,
String
deviceFrom
)
{
payChannelStrategyContext
.
getStrategy
(
payType
).
dragonNotify
(
request
,
payType
,
deviceFrom
);
public
String
dragonNotify
(
HttpServletRequest
request
,
String
payType
,
String
deviceFrom
)
{
return
payChannelStrategyContext
.
getStrategy
(
payType
).
dragonNotify
(
request
,
payType
,
deviceFrom
);
}
@Override
...
...
liquidnet-bus-service/liquidnet-service-dragon/liquidnet-service-dragon-impl/src/main/java/com/liquidnet/service/dragon/utils/MqHandleUtil.java
View file @
92e9c22a
...
...
@@ -2,7 +2,6 @@ package com.liquidnet.service.dragon.utils;
import
com.liquidnet.service.base.SqlMapping
;
import
com.liquidnet.service.dragon.bo.PayNotifyReqBo
;
import
com.liquidnet.service.dragon.constant.DragonConstant
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.redis.connection.stream.MapRecord
;
import
org.springframework.data.redis.connection.stream.StreamRecords
;
...
...
@@ -31,55 +30,11 @@ public class MqHandleUtil {
* @param payNotifyReqBo
* @return
*/
public
boolean
send
QueueAlipay
(
PayNotifyReqBo
payNotifyReqBo
)
{
public
boolean
send
NotifyErrorQueue
(
PayNotifyReqBo
payNotifyReqBo
,
String
queueKey
)
{
try
{
HashMap
<
String
,
String
>
map
=
new
HashMap
<>();
map
.
put
(
"message"
,
payNotifyReqBo
.
toString
());
MapRecord
<
String
,
String
,
String
>
record
=
StreamRecords
.
mapBacked
(
map
).
withStreamKey
(
DragonConstant
.
ChannelRedisQueueEnum
.
ALIPAY_PAY_KEY
.
getCode
());
stringRedisTemplate
.
opsForStream
().
add
(
record
);
return
true
;
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
false
;
}
}
/**
* REDIS 队列发送消息 通知商户相关
* @param payNotifyReqBo
* @return
*/
public
boolean
sendQueueWepay
(
PayNotifyReqBo
payNotifyReqBo
)
{
try
{
HashMap
<
String
,
String
>
map
=
new
HashMap
<>();
map
.
put
(
"message"
,
payNotifyReqBo
.
toString
());
MapRecord
<
String
,
String
,
String
>
record
=
StreamRecords
.
mapBacked
(
map
).
withStreamKey
(
DragonConstant
.
ChannelRedisQueueEnum
.
WECHAT_PAY_KEY
.
getCode
());
stringRedisTemplate
.
opsForStream
().
add
(
record
);
return
true
;
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
false
;
}
}
/**
* 给 REDIS 队列发送消息 数据库相关
*
* @param sql sql语句
* @param data 需要操作的数据
* @return
*/
public
boolean
sendMySqlRedis
(
String
sql
,
Object
[]
data
)
{
try
{
LinkedList
<
String
>
sqls
=
new
LinkedList
<>();
sqls
.
add
(
sql
);
LinkedList
<
Object
[]>
sqlsData
=
new
LinkedList
();
sqlsData
.
add
(
data
);
String
sqlData
=
SqlMapping
.
gets
(
sqls
,
sqlsData
);
HashMap
<
String
,
String
>
map
=
new
HashMap
<>();
map
.
put
(
"message"
,
sqlData
);
MapRecord
<
String
,
String
,
String
>
record
=
StreamRecords
.
mapBacked
(
map
).
withStreamKey
(
DragonConstant
.
MysqlRedisQueueEnum
.
DRAGON_PAY_KEY
.
getCode
());
MapRecord
<
String
,
String
,
String
>
record
=
StreamRecords
.
mapBacked
(
map
).
withStreamKey
(
queueKey
);
stringRedisTemplate
.
opsForStream
().
add
(
record
);
return
true
;
}
catch
(
Exception
e
)
{
...
...
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