Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
O
on-site-service
Project
Project
Details
Activity
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
external
on-site-service
Commits
8fc9051e
Commit
8fc9051e
authored
Jul 29, 2022
by
shangtx
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 去掉支付回调try/catch
parent
a2a46aaa
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
37 additions
and
44 deletions
+37
-44
WechatNotifyController.java
...vice/miniapp/controller/weixn/WechatNotifyController.java
+37
-44
No files found.
mini-app/src/main/java/com/onsiteservice/miniapp/controller/weixn/WechatNotifyController.java
View file @
8fc9051e
...
...
@@ -46,60 +46,53 @@ public class WechatNotifyController {
public
void
notify
(
HttpServletRequest
request
,
HttpServletResponse
response
)
throws
Exception
{
//WechatPayMyConfigMini config = new WechatPayMyConfigMini();
PrintWriter
out
=
null
;
try
{
log
.
info
(
"微信支付成功回调通知开始!"
);
StringBuffer
sb
=
new
StringBuffer
();
InputStream
is
=
request
.
getInputStream
();
InputStreamReader
isr
=
new
InputStreamReader
(
is
);
BufferedReader
br
=
new
BufferedReader
(
isr
);
String
s
=
""
;
while
((
s
=
br
.
readLine
())
!=
null
)
{
sb
.
append
(
s
);
}
log
.
info
(
"微信支付成功回调通知内容:"
+
sb
.
toString
());
if
(
StringUtils
.
isNotEmpty
(
sb
.
toString
()))
{
// 解析xml
Map
<
String
,
String
>
paramMap
=
ParseXmlUtil
.
parseXml2Map
(
sb
.
toString
());
String
returnCode
=
paramMap
.
get
(
"return_code"
).
toString
();
log
.
info
(
"微信支付成功返回result_code:"
+
returnCode
);
String
outTradeNo
=
paramMap
.
get
(
"out_trade_no"
).
toString
();
log
.
info
(
"微信支付成功回调通知开始!"
);
StringBuffer
sb
=
new
StringBuffer
();
InputStream
is
=
request
.
getInputStream
();
InputStreamReader
isr
=
new
InputStreamReader
(
is
);
BufferedReader
br
=
new
BufferedReader
(
isr
);
String
s
=
""
;
while
((
s
=
br
.
readLine
())
!=
null
)
{
sb
.
append
(
s
);
}
log
.
info
(
"微信支付成功回调通知内容:"
+
sb
.
toString
());
if
(
StringUtils
.
isNotEmpty
(
sb
.
toString
()))
{
// 解析xml
Map
<
String
,
String
>
paramMap
=
ParseXmlUtil
.
parseXml2Map
(
sb
.
toString
());
String
returnCode
=
paramMap
.
get
(
"return_code"
).
toString
();
log
.
info
(
"微信支付成功返回result_code:"
+
returnCode
);
String
outTradeNo
=
paramMap
.
get
(
"out_trade_no"
).
toString
();
var
payChannels
=
payChannelWechatMapper
.
selectAll
();
if
(
payChannels
.
isEmpty
())
{
throw
new
ServiceException
(
"未配置商户信息"
);
}
var
payChannel
=
payChannels
.
get
(
0
);
String
transactionId
=
paramMap
.
get
(
"transaction_id"
).
toString
();
//支付响应记录日志
var
payChannels
=
payChannelWechatMapper
.
selectAll
();
if
(
payChannels
.
isEmpty
())
{
throw
new
ServiceException
(
"未配置商户信息"
);
}
var
payChannel
=
payChannels
.
get
(
0
);
String
transactionId
=
paramMap
.
get
(
"transaction_id"
).
toString
();
//支付响应记录日志
// savePayResponseLog(outTradeNo, transactionId, returnCode, sb.toString());
if
(
RETURN_CODE_SUCCESS
.
equals
(
returnCode
))
{
if
(
validateSign
(
paramMap
,
payChannel
.
getWechatKey
()))
{
//更新支付凭证支付状态
orderBizService
.
paySuccess
(
outTradeNo
,
sb
.
toString
());
out
=
response
.
getWriter
();
// 通知微信,防止微信再通知
response
.
setContentType
(
"application/xml"
);
out
.
write
(
"<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>"
);
out
.
flush
();
out
.
close
();
}
else
{
log
.
warn
(
"微信支付成功回调通知签名校验失败,请检查!"
);
}
if
(
RETURN_CODE_SUCCESS
.
equals
(
returnCode
))
{
if
(
validateSign
(
paramMap
,
payChannel
.
getWechatKey
()))
{
//更新支付凭证支付状态
orderBizService
.
paySuccess
(
outTradeNo
,
sb
.
toString
());
out
=
response
.
getWriter
();
// 通知微信,防止微信再通知
response
.
setContentType
(
"application/xml"
);
out
.
write
(
"<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>"
);
out
.
flush
();
out
.
close
();
}
else
{
log
.
warn
(
"微信支付成功回调通知
返回码不成功(RETURN_CODE)
,请检查!"
);
log
.
warn
(
"微信支付成功回调通知
签名校验失败
,请检查!"
);
}
}
else
{
log
.
warn
(
"微信支付成功回调通知
内容为空
,请检查!"
);
log
.
warn
(
"微信支付成功回调通知
返回码不成功(RETURN_CODE)
,请检查!"
);
}
}
catch
(
Exception
e
)
{
log
.
error
(
"notify() Exception exception:"
,
e
);
e
.
printStackTrace
();
}
else
{
log
.
warn
(
"微信支付成功回调通知内容为空,请检查!"
);
}
}
/**
* 微信通知签名校验
*
...
...
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