记得上下班打卡 | 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
6156a814
Commit
6156a814
authored
Feb 17, 2022
by
zhengfuxin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改微信 查询接口
parent
8df86bbf
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
103 additions
and
3 deletions
+103
-3
AbstractPayChannelStrategyImpl.java
...channel/strategy/impl/AbstractPayChannelStrategyImpl.java
+2
-2
WepayBiz.java
.../liquidnet/service/dragon/channel/wepay/biz/WepayBiz.java
+29
-0
WepayStrategyMicropayImpl.java
...hannel/wepay/strategy/impl/WepayStrategyMicropayImpl.java
+53
-1
XmlUtil.java
...main/java/com/liquidnet/service/dragon/utils/XmlUtil.java
+19
-0
No files found.
liquidnet-bus-service/liquidnet-service-dragon/liquidnet-service-dragon-impl/src/main/java/com/liquidnet/service/dragon/channel/strategy/impl/AbstractPayChannelStrategyImpl.java
View file @
6156a814
...
...
@@ -53,7 +53,7 @@ public abstract class AbstractPayChannelStrategyImpl implements IPayChannelStrat
* @param bankReturnMsg
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
p
rotected
boolean
completeSuccessOrder
(
DragonOrdersDto
dragonOrdersDto
,
String
bankTrxNo
,
LocalDateTime
timeEnd
,
String
bankReturnMsg
)
{
p
ublic
boolean
completeSuccessOrder
(
DragonOrdersDto
dragonOrdersDto
,
String
bankTrxNo
,
LocalDateTime
timeEnd
,
String
bankReturnMsg
)
{
log
.
info
(
"订单支付成功!"
);
dragonOrdersDto
.
setPaymentAt
(
timeEnd
);
dragonOrdersDto
.
setPaymentId
(
bankTrxNo
);
// 设置银行流水号
...
...
@@ -71,7 +71,7 @@ public abstract class AbstractPayChannelStrategyImpl implements IPayChannelStrat
* @param dragonOrdersDto
* @param bankReturnMsg
*/
p
rotected
boolean
completeFailOrder
(
DragonOrdersDto
dragonOrdersDto
,
String
bankReturnMsg
)
{
p
ublic
boolean
completeFailOrder
(
DragonOrdersDto
dragonOrdersDto
,
String
bankReturnMsg
)
{
log
.
info
(
"订单支付失败!"
);
// dragonOrdersDto.setPaymentAt(timeEnd);
// dragonOrdersDto.setPaymentId(bankTrxNo);// 设置银行流水号
...
...
liquidnet-bus-service/liquidnet-service-dragon/liquidnet-service-dragon-impl/src/main/java/com/liquidnet/service/dragon/channel/wepay/biz/WepayBiz.java
View file @
6156a814
...
...
@@ -63,6 +63,35 @@ public class WepayBiz{
log
.
error
(
e
.
getMessage
());
}
return
respMap
;
}
public
Map
<
String
,
String
>
tradeQueryString
(
String
outTradeNo
,
String
appid
)
{
log
.
info
(
"WepayBiz.tradeQuery-->> request outTradeNo:{} appid:{} "
,
outTradeNo
,
appid
);
Map
<
String
,
String
>
respMap
=
new
HashMap
<>();
SortedMap
<
String
,
Object
>
paramMap
=
new
TreeMap
<>();
paramMap
.
put
(
"appid"
,
appid
);
paramMap
.
put
(
"mch_id"
,
merchantId
);
String
nonce_str
=
PayWepayUtils
.
getInstance
().
getNonceStr
();
paramMap
.
put
(
"nonce_str"
,
nonce_str
);
paramMap
.
put
(
"out_trade_no"
,
outTradeNo
);
String
sign
=
PayWepayUtils
.
getInstance
().
createSign
(
paramMap
);
paramMap
.
put
(
"sign"
,
sign
);
String
data
=
PayWepayUtils
.
getInstance
().
getRequestXml
(
paramMap
);
try
{
HttpPost
httpost
=
new
HttpPost
(
"https://api.mch.weixin.qq.com/pay/orderquery"
);
httpost
.
setEntity
(
new
StringEntity
(
data
,
"UTF-8"
));
CloseableHttpResponse
response
=
PayWepayUtils
.
getInstance
().
getHttpClient
().
execute
(
httpost
);
HttpEntity
entity
=
response
.
getEntity
();
//接受到返回信息
String
xmlStr
=
EntityUtils
.
toString
(
response
.
getEntity
(),
"UTF-8"
);
EntityUtils
.
consume
(
entity
);
log
.
info
(
"WepayBiz.tradeQuery-->> response xmlStr: {} "
,
xmlStr
);
respMap
=
XmlUtil
.
xmlToMapString
(
xmlStr
);
}
catch
(
Exception
e
){
log
.
error
(
e
.
getMessage
());
}
return
respMap
;
}
}
liquidnet-bus-service/liquidnet-service-dragon/liquidnet-service-dragon-impl/src/main/java/com/liquidnet/service/dragon/channel/wepay/strategy/impl/WepayStrategyMicropayImpl.java
View file @
6156a814
package
com
.
liquidnet
.
service
.
dragon
.
channel
.
wepay
.
strategy
.
impl
;
import
com.liquidnet.common.exception.LiquidnetServiceException
;
import
com.liquidnet.commons.lang.util.JsonUtils
;
import
com.liquidnet.service.dragon.channel.strategy.biz.DragonPayBiz
;
import
com.liquidnet.service.dragon.channel.strategy.impl.PayChannelStrategyWepayImpl
;
import
com.liquidnet.service.dragon.channel.wepay.biz.WepayBiz
;
import
com.liquidnet.service.dragon.channel.wepay.resp.WepayPayRespDto
;
import
com.liquidnet.service.dragon.channel.wepay.strategy.annotation.StrategyWepayHandler
;
import
com.liquidnet.service.dragon.constant.DragonConstant
;
import
com.liquidnet.service.dragon.constant.DragonErrorCodeEnum
;
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
com.liquidnet.service.dragon.utils.PayWepayUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Component
;
import
java.time.LocalDateTime
;
import
java.util.Map
;
import
java.util.SortedMap
;
import
java.util.TreeMap
;
...
...
@@ -29,6 +40,14 @@ import java.util.TreeMap;
public
class
WepayStrategyMicropayImpl
extends
AbstractWepayStrategy
{
@Value
(
"${liquidnet.dragon.url}"
)
private
String
notifyUrl
;
@Autowired
private
DataUtils
dataUtils
;
@Autowired
private
WepayBiz
wepayBiz
;
@Autowired
private
DragonPayBiz
dragonPayBiz
;
@Autowired
private
PayChannelStrategyWepayImpl
payChannelStrategyWepay
;
@Override
SortedMap
<
String
,
Object
>
appendRequestParam
(
SortedMap
<
String
,
Object
>
requestMap
,
DragonPayBaseReqDto
dragonPayBaseReqDto
)
{
...
...
@@ -63,11 +82,44 @@ public class WepayStrategyMicropayImpl extends AbstractWepayStrategy {
@Override
protected
String
getNotifyUrl
()
{
return
notifyUrl
+
"
/notify/wepay/app
"
;
return
notifyUrl
+
""
;
}
@Override
protected
String
getAppid
()
{
return
PayWepayUtils
.
getInstance
().
getAPP_ID
();
}
@Override
public
DragonPayOrderQueryRespDto
checkOrderStatus
(
String
code
)
{
DragonOrdersDto
ordersDto
=
dataUtils
.
getPayOrderByCode
(
code
);
//持久化通知记录
// 根据银行订单号获取支付信息
DragonOrdersDto
dragonOrdersDto
=
dataUtils
.
getPayOrderByCode
(
code
);
if
(
dragonOrdersDto
==
null
)
{
throw
new
LiquidnetServiceException
(
DragonErrorCodeEnum
.
TRADE_ERROR_NOT_EXISTS
.
getCode
(),
DragonErrorCodeEnum
.
TRADE_ERROR_NOT_EXISTS
.
getMessage
());
}
if
(
DragonConstant
.
PayStatusEnum
.
STATUS_PAID
.
getCode
().
equals
(
dragonOrdersDto
.
getStatus
()))
{
throw
new
LiquidnetServiceException
(
DragonErrorCodeEnum
.
TRADE_ERROR_HAS_PAID
.
getCode
(),
DragonErrorCodeEnum
.
TRADE_ERROR_HAS_PAID
.
getMessage
());
}
Map
<
String
,
String
>
resultMap
=
wepayBiz
.
tradeQueryString
(
code
,
this
.
getAppid
());
DragonPayOrderQueryRespDto
respDto
=
dragonPayBiz
.
buildPayOrderQueryRespDto
(
ordersDto
);
Object
returnCode
=
resultMap
.
get
(
"return_code"
);
// 查询失败
if
(
null
==
returnCode
||
"FAIL"
.
equals
(
returnCode
))
{
throw
new
LiquidnetServiceException
(
DragonErrorCodeEnum
.
TRADE_WEPAY_QUERY_ERROR
.
getCode
(),
DragonErrorCodeEnum
.
TRADE_WEPAY_QUERY_ERROR
.
getMessage
());
}
// 当trade_state为SUCCESS时才返回result_code
if
(
"SUCCESS"
.
equals
(
resultMap
.
get
(
"trade_state"
)))
{
if
(
PayWepayUtils
.
getInstance
().
notifySign
(
resultMap
,
resultMap
.
get
(
"sign"
))){
// 修改订单状态等。
payChannelStrategyWepay
.
completeSuccessOrder
(
dragonOrdersDto
,
resultMap
.
get
(
"transaction_id"
),
LocalDateTime
.
now
(),
resultMap
.
toString
());
respDto
.
setStatus
(
Integer
.
valueOf
(
DragonConstant
.
PayStatusEnum
.
STATUS_PAID
.
getCode
()));
}
else
{
payChannelStrategyWepay
.
completeFailOrder
(
dragonOrdersDto
,
resultMap
.
toString
());
}
}
return
respDto
;
}
}
liquidnet-bus-service/liquidnet-service-dragon/liquidnet-service-dragon-impl/src/main/java/com/liquidnet/service/dragon/utils/XmlUtil.java
View file @
6156a814
...
...
@@ -131,6 +131,25 @@ public class XmlUtil{
}
return
xmlMap
;
}
public
static
Map
<
String
,
String
>
xmlToMapString
(
String
xmlDoc
)
throws
DocumentException
{
// 创建一个新的字符串
StringReader
read
=
new
StringReader
(
xmlDoc
);
// 创建新的输入源SAX 解析器将使用 InputSource 对象来确定如何读取 XML 输入
InputSource
source
=
new
InputSource
(
read
);
// 创建一个新的SAXBuilder
SAXReader
saxReader
=
new
SAXReader
();
Map
<
String
,
String
>
xmlMap
=
new
HashMap
<
String
,
String
>();
Document
doc
=
saxReader
.
read
(
source
);
// 通过输入源构造一个Document
Element
root
=
doc
.
getRootElement
();
// 取的根元素
List
<
Element
>
elements
=
root
.
elements
();
// 得到根元素所有子元素的集合(根元素的子节点,不包括孙子节点)
for
(
Element
et
:
elements
)
{
xmlMap
.
put
(
et
.
getName
(),
et
.
getText
());
}
return
xmlMap
;
}
// /**
// * 从xml文件读取报文
...
...
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