Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
jinli gu
Jeepay
Commits
19851620
Commit
19851620
authored
Aug 30, 2021
by
terrfly
Browse files
支付成功/ 查单添加 渠道用户信息;
parent
96eaa92e
Changes
9
Hide whitespace changes
Inline
Side-by-side
jeepay-payment/src/main/java/com/jeequan/jeepay/pay/channel/alipay/payway/AliBar.java
View file @
19851620
...
...
@@ -84,6 +84,7 @@ public class AliBar extends AlipayPaymentService {
//放置 响应数据
channelRetMsg
.
setChannelAttach
(
alipayResp
.
getBody
());
channelRetMsg
.
setChannelOrderId
(
alipayResp
.
getTradeNo
());
channelRetMsg
.
setChannelUserId
(
alipayResp
.
getBuyerUserId
());
//渠道用户标识
// ↓↓↓↓↓↓ 调起接口成功后业务判断务必谨慎!! 避免因代码编写bug,导致不能正确返回订单状态信息 ↓↓↓↓↓↓
...
...
jeepay-payment/src/main/java/com/jeequan/jeepay/pay/channel/wxpay/payway/WxBar.java
View file @
19851620
...
...
@@ -91,6 +91,7 @@ public class WxBar extends WxpayPaymentService {
WxPayMicropayResult
wxPayMicropayResult
=
wxPayService
.
micropay
(
request
);
channelRetMsg
.
setChannelOrderId
(
wxPayMicropayResult
.
getTransactionId
());
channelRetMsg
.
setChannelUserId
(
wxPayMicropayResult
.
getOpenid
());
channelRetMsg
.
setChannelState
(
ChannelRetMsg
.
ChannelState
.
CONFIRM_SUCCESS
);
}
catch
(
WxPayException
e
)
{
...
...
jeepay-payment/src/main/java/com/jeequan/jeepay/pay/ctrl/payorder/AbstractPayOrderController.java
View file @
19851620
...
...
@@ -93,6 +93,7 @@ public abstract class AbstractPayOrderController extends ApiController {
}
payOrder
.
setWayCode
(
wayCode
);
// 需要将订单更新 支付方式
payOrder
.
setChannelUser
(
bizRQ
.
getChannelUserId
());
//更新渠道用户信息
bizRQ
.
setMchNo
(
payOrder
.
getMchNo
());
bizRQ
.
setAppId
(
payOrder
.
getAppId
());
bizRQ
.
setMchOrderNo
(
payOrder
.
getMchOrderNo
());
...
...
@@ -362,6 +363,12 @@ public abstract class AbstractPayOrderController extends ApiController {
payOrder
.
setErrCode
(
channelRetMsg
.
getChannelErrCode
());
payOrder
.
setErrMsg
(
channelRetMsg
.
getChannelErrMsg
());
// 聚合码场景 订单对象存在会员信息, 不可全部以上游为准。
if
(
StringUtils
.
isNotEmpty
(
channelRetMsg
.
getChannelUserId
())){
payOrder
.
setChannelUser
(
channelRetMsg
.
getChannelUserId
());
}
boolean
isSuccess
=
payOrderService
.
updateInit2Ing
(
payOrder
.
getPayOrderId
(),
payOrder
);
if
(!
isSuccess
){
...
...
@@ -369,7 +376,7 @@ public abstract class AbstractPayOrderController extends ApiController {
}
isSuccess
=
payOrderService
.
updateIng2SuccessOrFail
(
payOrder
.
getPayOrderId
(),
payOrder
.
getState
(),
channelRetMsg
.
getChannelOrderId
(),
channelRetMsg
.
getChannelErrCode
(),
channelRetMsg
.
getChannelErrMsg
());
channelRetMsg
.
getChannelOrderId
(),
channelRetMsg
.
getChannelUserId
(),
channelRetMsg
.
getChannelErrCode
(),
channelRetMsg
.
getChannelErrMsg
());
if
(!
isSuccess
){
throw
new
BizException
(
"更新订单异常!"
);
}
...
...
jeepay-payment/src/main/java/com/jeequan/jeepay/pay/ctrl/payorder/ChannelNoticeController.java
View file @
19851620
...
...
@@ -225,7 +225,7 @@ public class ChannelNoticeController extends AbstractCtrl {
//明确失败
}
else
if
(
ChannelRetMsg
.
ChannelState
.
CONFIRM_FAIL
==
notifyResult
.
getChannelState
())
{
updateOrderSuccess
=
payOrderService
.
updateIng2Fail
(
payOrderId
,
notifyResult
.
getChannelOrderId
(),
notifyResult
.
getChannelErrCode
(),
notifyResult
.
getChannelErrMsg
());
updateOrderSuccess
=
payOrderService
.
updateIng2Fail
(
payOrderId
,
notifyResult
.
getChannelOrderId
(),
notifyResult
.
getChannelUserId
(),
notifyResult
.
getChannelErrCode
(),
notifyResult
.
getChannelErrMsg
());
}
}
...
...
jeepay-payment/src/main/java/com/jeequan/jeepay/pay/rqrs/payorder/UnifiedOrderRQ.java
View file @
19851620
...
...
@@ -153,5 +153,10 @@ public class UnifiedOrderRQ extends AbstractMchAppRQ {
return
this
;
}
/** 获取渠道用户ID **/
public
String
getChannelUserId
(){
return
this
.
channelUser
;
}
}
jeepay-payment/src/main/java/com/jeequan/jeepay/pay/rqrs/payorder/payway/AliJsapiOrderRQ.java
View file @
19851620
...
...
@@ -40,4 +40,9 @@ public class AliJsapiOrderRQ extends UnifiedOrderRQ {
this
.
setWayCode
(
CS
.
PAY_WAY_CODE
.
ALI_JSAPI
);
}
@Override
public
String
getChannelUserId
(){
return
this
.
buyerUserId
;
}
}
jeepay-payment/src/main/java/com/jeequan/jeepay/pay/rqrs/payorder/payway/WxJsapiOrderRQ.java
View file @
19851620
...
...
@@ -40,4 +40,8 @@ public class WxJsapiOrderRQ extends UnifiedOrderRQ {
this
.
setWayCode
(
CS
.
PAY_WAY_CODE
.
WX_JSAPI
);
}
@Override
public
String
getChannelUserId
()
{
return
this
.
openid
;
}
}
jeepay-payment/src/main/java/com/jeequan/jeepay/pay/service/ChannelOrderReissueService.java
View file @
19851620
...
...
@@ -77,7 +77,7 @@ public class ChannelOrderReissueService {
// 查询成功
if
(
channelRetMsg
.
getChannelState
()
==
ChannelRetMsg
.
ChannelState
.
CONFIRM_SUCCESS
)
{
if
(
payOrderService
.
updateIng2Success
(
payOrderId
,
channelRetMsg
.
getChannelOrderId
()))
{
if
(
payOrderService
.
updateIng2Success
(
payOrderId
,
channelRetMsg
.
getChannelOrderId
()
,
channelRetMsg
.
getChannelUserId
()
))
{
//订单支付成功,其他业务逻辑
payOrderProcessService
.
confirmSuccess
(
payOrder
);
...
...
@@ -85,7 +85,7 @@ public class ChannelOrderReissueService {
}
else
if
(
channelRetMsg
.
getChannelState
()
==
ChannelRetMsg
.
ChannelState
.
CONFIRM_FAIL
){
//确认失败
//1. 更新支付订单表为失败状态
payOrderService
.
updateIng2Fail
(
payOrderId
,
channelRetMsg
.
getChannelOrderId
(),
channelRetMsg
.
getChannelErrCode
(),
channelRetMsg
.
getChannelErrMsg
());
payOrderService
.
updateIng2Fail
(
payOrderId
,
channelRetMsg
.
getChannelOrderId
(),
channelRetMsg
.
getChannelUserId
(),
channelRetMsg
.
getChannelErrCode
(),
channelRetMsg
.
getChannelErrMsg
());
}
...
...
jeepay-service/src/main/java/com/jeequan/jeepay/service/impl/PayOrderService.java
View file @
19851620
...
...
@@ -64,16 +64,12 @@ public class PayOrderService extends ServiceImpl<PayOrderMapper, PayOrder> {
updateRecord
.
setWayCode
(
payOrder
.
getWayCode
());
updateRecord
.
setMchFeeRate
(
payOrder
.
getMchFeeRate
());
updateRecord
.
setMchFeeAmount
(
payOrder
.
getMchFeeAmount
());
updateRecord
.
setChannelUser
(
payOrder
.
getChannelUser
());
return
update
(
updateRecord
,
new
LambdaUpdateWrapper
<
PayOrder
>()
.
eq
(
PayOrder:
:
getPayOrderId
,
payOrderId
).
eq
(
PayOrder:
:
getState
,
PayOrder
.
STATE_INIT
));
}
/** 更新订单状态 【支付中】 --》 【支付成功】 **/
public
boolean
updateIng2Success
(
String
payOrderId
,
String
channelOrderNo
){
return
updateIng2Success
(
payOrderId
,
channelOrderNo
,
null
);
}
/** 更新订单状态 【支付中】 --》 【支付成功】 **/
public
boolean
updateIng2Success
(
String
payOrderId
,
String
channelOrderNo
,
String
channelUserId
){
...
...
@@ -89,13 +85,14 @@ public class PayOrderService extends ServiceImpl<PayOrderMapper, PayOrder> {
/** 更新订单状态 【支付中】 --》 【支付失败】 **/
public
boolean
updateIng2Fail
(
String
payOrderId
,
String
channelOrderNo
,
String
channelErrCode
,
String
channelErrMsg
){
public
boolean
updateIng2Fail
(
String
payOrderId
,
String
channelOrderNo
,
String
channelUserId
,
String
channelErrCode
,
String
channelErrMsg
){
PayOrder
updateRecord
=
new
PayOrder
();
updateRecord
.
setState
(
PayOrder
.
STATE_FAIL
);
updateRecord
.
setErrCode
(
channelErrCode
);
updateRecord
.
setErrMsg
(
channelErrMsg
);
updateRecord
.
setChannelOrderNo
(
channelOrderNo
);
updateRecord
.
setChannelUser
(
channelUserId
);
return
update
(
updateRecord
,
new
LambdaUpdateWrapper
<
PayOrder
>()
.
eq
(
PayOrder:
:
getPayOrderId
,
payOrderId
).
eq
(
PayOrder:
:
getState
,
PayOrder
.
STATE_ING
));
...
...
@@ -103,14 +100,14 @@ public class PayOrderService extends ServiceImpl<PayOrderMapper, PayOrder> {
/** 更新订单状态 【支付中】 --》 【支付成功/支付失败】 **/
public
boolean
updateIng2SuccessOrFail
(
String
payOrderId
,
Byte
updateState
,
String
channelOrderNo
,
String
channelErrCode
,
String
channelErrMsg
){
public
boolean
updateIng2SuccessOrFail
(
String
payOrderId
,
Byte
updateState
,
String
channelOrderNo
,
String
channelUserId
,
String
channelErrCode
,
String
channelErrMsg
){
if
(
updateState
==
PayOrder
.
STATE_ING
){
return
true
;
}
else
if
(
updateState
==
PayOrder
.
STATE_SUCCESS
){
return
updateIng2Success
(
payOrderId
,
channelOrderNo
);
return
updateIng2Success
(
payOrderId
,
channelOrderNo
,
channelUserId
);
}
else
if
(
updateState
==
PayOrder
.
STATE_FAIL
){
return
updateIng2Fail
(
payOrderId
,
channelOrderNo
,
channelErrCode
,
channelErrMsg
);
return
updateIng2Fail
(
payOrderId
,
channelOrderNo
,
channelUserId
,
channelErrCode
,
channelErrMsg
);
}
return
false
;
}
...
...
Write
Preview
Supports
Markdown
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