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
0764c266
Commit
0764c266
authored
Apr 11, 2018
by
cbwleft
Browse files
解决通知中渠道订单号错误的问题
parent
8a195cab
Changes
3
Hide whitespace changes
Inline
Side-by-side
xxpay4spring-boot/src/main/java/org/xxpay/boot/service/BaseService.java
View file @
0764c266
...
...
@@ -81,10 +81,11 @@ public class BaseService {
return
payOrderMapper
.
updateByExampleSelective
(
payOrder
,
example
);
}
public
int
baseUpdateStatus4Success
(
String
payOrderId
)
{
public
int
baseUpdateStatus4Success
(
String
payOrderId
,
String
channelOrderNo
)
{
PayOrder
payOrder
=
new
PayOrder
();
payOrder
.
setPayOrderId
(
payOrderId
);
payOrder
.
setStatus
(
PayConstant
.
PAY_STATUS_SUCCESS
);
if
(
channelOrderNo
!=
null
)
payOrder
.
setChannelOrderNo
(
channelOrderNo
);
payOrder
.
setPaySuccTime
(
System
.
currentTimeMillis
());
PayOrderExample
example
=
new
PayOrderExample
();
PayOrderExample
.
Criteria
criteria
=
example
.
createCriteria
();
...
...
xxpay4spring-boot/src/main/java/org/xxpay/boot/service/impl/NotifyPayServiceImpl.java
View file @
0764c266
...
...
@@ -57,14 +57,15 @@ public class NotifyPayServiceImpl extends Notify4BasePay implements INotifyPaySe
_log
.
warn
(
"处理支付宝支付回调失败, {}. jsonParam={}"
,
RetEnum
.
RET_PARAM_INVALID
.
getMessage
(),
jsonParam
);
return
RpcUtil
.
createFailResult
(
baseParam
,
RetEnum
.
RET_PARAM_INVALID
);
}
Map
<
String
,
Object
>
payContext
=
new
HashMap
();
Map
<
String
,
Object
>
payContext
=
new
HashMap
<>
();
PayOrder
payOrder
;
payContext
.
put
(
"parameters"
,
params
);
if
(!
verifyAliPayParams
(
payContext
))
{
return
RpcUtil
.
createFailResult
(
baseParam
,
RetEnum
.
RET_BIZ_PAY_NOTIFY_VERIFY_FAIL
);
}
_log
.
info
(
"{}验证支付通知数据及签名通过"
,
logPrefix
);
String
trade_status
=
params
.
get
(
"trade_status"
).
toString
();
// 交易状态
String
trade_status
=
String
.
valueOf
(
params
.
get
(
"trade_status"
));
// 交易状态
String
trade_no
=
String
.
valueOf
(
params
.
get
(
"trade_no"
));
// 渠道订单号
// 支付状态成功或者完成
if
(
trade_status
.
equals
(
PayConstant
.
AlipayConstant
.
TRADE_STATUS_SUCCESS
)
||
trade_status
.
equals
(
PayConstant
.
AlipayConstant
.
TRADE_STATUS_FINISHED
))
{
...
...
@@ -72,7 +73,7 @@ public class NotifyPayServiceImpl extends Notify4BasePay implements INotifyPaySe
payOrder
=
(
PayOrder
)
payContext
.
get
(
"payOrder"
);
byte
payStatus
=
payOrder
.
getStatus
();
// 0:订单生成,1:支付中,-1:支付失败,2:支付成功,3:业务处理完成,-2:订单过期
if
(
payStatus
!=
PayConstant
.
PAY_STATUS_SUCCESS
&&
payStatus
!=
PayConstant
.
PAY_STATUS_COMPLETE
)
{
updatePayOrderRows
=
super
.
baseUpdateStatus4Success
(
payOrder
.
getPayOrderId
());
updatePayOrderRows
=
super
.
baseUpdateStatus4Success
(
payOrder
.
getPayOrderId
()
,
trade_no
);
if
(
updatePayOrderRows
!=
1
)
{
_log
.
error
(
"{}更新支付状态失败,将payOrderId={},更新payStatus={}失败"
,
logPrefix
,
payOrder
.
getPayOrderId
(),
PayConstant
.
PAY_STATUS_SUCCESS
);
_log
.
info
(
"{}响应给支付宝结果:{}"
,
logPrefix
,
PayConstant
.
RETURN_ALIPAY_VALUE_FAIL
);
...
...
@@ -112,7 +113,7 @@ public class NotifyPayServiceImpl extends Notify4BasePay implements INotifyPaySe
}
WxPayService
wxPayService
=
new
WxPayServiceImpl
();
WxPayOrderNotifyResult
result
=
WxPayOrderNotifyResult
.
fromXML
(
xmlResult
);
Map
<
String
,
Object
>
payContext
=
new
HashMap
();
Map
<
String
,
Object
>
payContext
=
new
HashMap
<>
();
payContext
.
put
(
"parameters"
,
result
);
// 验证业务数据是否正确,验证通过后返回PayOrder和WxPayConfig对象
if
(!
verifyWxPayParams
(
payContext
))
{
...
...
@@ -126,7 +127,7 @@ public class NotifyPayServiceImpl extends Notify4BasePay implements INotifyPaySe
// 处理订单
byte
payStatus
=
payOrder
.
getStatus
();
// 0:订单生成,1:支付中,-1:支付失败,2:支付成功,3:业务处理完成,-2:订单过期
if
(
payStatus
!=
PayConstant
.
PAY_STATUS_SUCCESS
&&
payStatus
!=
PayConstant
.
PAY_STATUS_COMPLETE
)
{
int
updatePayOrderRows
=
super
.
baseUpdateStatus4Success
(
payOrder
.
getPayOrderId
());
int
updatePayOrderRows
=
super
.
baseUpdateStatus4Success
(
payOrder
.
getPayOrderId
()
,
result
.
getTransactionId
()
);
if
(
updatePayOrderRows
!=
1
)
{
_log
.
error
(
"{}更新支付状态失败,将payOrderId={},更新payStatus={}失败"
,
logPrefix
,
payOrder
.
getPayOrderId
(),
PayConstant
.
PAY_STATUS_SUCCESS
);
return
RpcUtil
.
createBizResult
(
baseParam
,
WxPayNotifyResponse
.
fail
(
"处理订单失败"
));
...
...
xxpay4spring-boot/src/main/java/org/xxpay/boot/service/impl/PayOrderServiceImpl.java
View file @
0764c266
...
...
@@ -230,7 +230,7 @@ public class PayOrderServiceImpl extends BaseService implements IPayOrderService
_log
.
warn
(
"修改支付订单状态为支付成功失败, {}. jsonParam={}"
,
RetEnum
.
RET_PARAM_INVALID
.
getMessage
(),
jsonParam
);
return
RpcUtil
.
createFailResult
(
baseParam
,
RetEnum
.
RET_PARAM_INVALID
);
}
int
result
=
super
.
baseUpdateStatus4Success
(
payOrderId
);
int
result
=
super
.
baseUpdateStatus4Success
(
payOrderId
,
null
);
return
RpcUtil
.
createBizResult
(
baseParam
,
result
);
}
...
...
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