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
32938f9f
Commit
32938f9f
authored
Jun 28, 2021
by
xiaoyu
Browse files
Merge remote-tracking branch 'origin/dev' into dev
parents
3387972a
2166f87b
Changes
3
Hide whitespace changes
Inline
Side-by-side
jeepay-payment/src/main/java/com/jeequan/jeepay/pay/channel/wxpay/WxpayChannelNoticeService.java
View file @
32938f9f
...
...
@@ -19,8 +19,13 @@ import com.alibaba.fastjson.JSONObject;
import
com.github.binarywang.wxpay.bean.notify.SignatureHeader
;
import
com.github.binarywang.wxpay.bean.notify.WxPayOrderNotifyResult
;
import
com.github.binarywang.wxpay.bean.notify.WxPayOrderNotifyV3Result
;
import
com.github.binarywang.wxpay.config.WxPayConfig
;
import
com.github.binarywang.wxpay.constant.WxPayConstants
;
import
com.github.binarywang.wxpay.service.WxPayService
;
import
com.github.binarywang.wxpay.v3.auth.AutoUpdateCertificatesVerifier
;
import
com.github.binarywang.wxpay.v3.auth.PrivateKeySigner
;
import
com.github.binarywang.wxpay.v3.auth.WxPayCredentials
;
import
com.github.binarywang.wxpay.v3.util.PemUtils
;
import
com.jeequan.jeepay.core.constants.CS
;
import
com.jeequan.jeepay.core.entity.PayOrder
;
import
com.jeequan.jeepay.core.exception.BizException
;
...
...
@@ -39,7 +44,9 @@ import org.springframework.http.ResponseEntity;
import
org.springframework.stereotype.Service
;
import
javax.servlet.http.HttpServletRequest
;
import
java.io.FileInputStream
;
import
java.math.BigDecimal
;
import
java.security.PrivateKey
;
/*
* 微信回调
...
...
@@ -193,7 +200,19 @@ public class WxpayChannelNoticeService extends AbstractChannelNoticeService {
// 获取加密信息
JSONObject
params
=
getReqParamJSON
();
WxPayOrderNotifyV3Result
result
=
mchAppConfigContext
.
getWxServiceWrapper
().
getWxPayService
().
parseOrderNotifyV3Result
(
params
.
toJSONString
(),
header
);
log
.
info
(
"\n【请求头信息】:{}\n【加密数据】:{}"
,
header
.
toString
(),
params
.
toJSONString
());
WxPayService
wxPayService
=
mchAppConfigContext
.
getWxServiceWrapper
().
getWxPayService
();
WxPayConfig
wxPayConfig
=
wxPayService
.
getConfig
();
// 自动获取微信平台证书
PrivateKey
privateKey
=
PemUtils
.
loadPrivateKey
(
new
FileInputStream
(
wxPayConfig
.
getPrivateKeyPath
()));
AutoUpdateCertificatesVerifier
verifier
=
new
AutoUpdateCertificatesVerifier
(
new
WxPayCredentials
(
wxPayConfig
.
getMchId
(),
new
PrivateKeySigner
(
wxPayConfig
.
getCertSerialNo
(),
privateKey
)),
wxPayConfig
.
getApiV3Key
().
getBytes
(
"utf-8"
));
wxPayConfig
.
setVerifier
(
verifier
);
wxPayService
.
setConfig
(
wxPayConfig
);
WxPayOrderNotifyV3Result
result
=
wxPayService
.
parseOrderNotifyV3Result
(
params
.
toJSONString
(),
header
);
return
result
.
getResult
();
}
...
...
jeepay-payment/src/main/java/com/jeequan/jeepay/pay/channel/wxpay/WxpayPayOrderQueryService.java
View file @
32938f9f
...
...
@@ -22,6 +22,7 @@ import com.github.binarywang.wxpay.exception.WxPayException;
import
com.github.binarywang.wxpay.service.WxPayService
;
import
com.jeequan.jeepay.core.constants.CS
;
import
com.jeequan.jeepay.core.entity.PayOrder
;
import
com.jeequan.jeepay.core.model.params.wxpay.WxpayIsvsubMchParams
;
import
com.jeequan.jeepay.pay.channel.IPayOrderQueryService
;
import
com.jeequan.jeepay.pay.channel.wxpay.kits.WxpayKit
;
import
com.jeequan.jeepay.pay.channel.wxpay.kits.WxpayV3Util
;
...
...
@@ -76,7 +77,17 @@ public class WxpayPayOrderQueryService implements IPayOrderQueryService {
}
else
if
(
CS
.
PAY_IF_VERSION
.
WX_V3
.
equals
(
mchAppConfigContext
.
getWxServiceWrapper
().
getApiVersion
()))
{
//V3
JSONObject
resultJSON
=
WxpayV3Util
.
queryOrderV3
(
payOrder
.
getPayOrderId
(),
mchAppConfigContext
.
getWxServiceWrapper
().
getWxPayService
().
getConfig
());
String
reqUrl
;
String
query
;
if
(
mchAppConfigContext
.
isIsvsubMch
()){
// 特约商户
WxpayIsvsubMchParams
isvsubMchParams
=
mchAppConfigContext
.
getIsvsubMchParamsByIfCode
(
CS
.
IF_CODE
.
WXPAY
,
WxpayIsvsubMchParams
.
class
);
reqUrl
=
String
.
format
(
"/v3/pay/partner/transactions/out-trade-no/%s"
,
payOrder
.
getPayOrderId
());
query
=
String
.
format
(
"?sp_mchid=%s&sub_mchid=%s"
,
mchAppConfigContext
.
getWxServiceWrapper
().
getWxPayService
().
getConfig
().
getMchId
(),
isvsubMchParams
.
getSubMchId
());
}
else
{
reqUrl
=
String
.
format
(
"/v3/pay/transactions/out-trade-no/%s"
,
payOrder
.
getPayOrderId
());
query
=
String
.
format
(
"?mchid=%s"
,
mchAppConfigContext
.
getWxServiceWrapper
().
getWxPayService
().
getConfig
().
getMchId
());
}
JSONObject
resultJSON
=
WxpayV3Util
.
queryOrderV3
(
reqUrl
+
query
,
mchAppConfigContext
.
getWxServiceWrapper
().
getWxPayService
().
getConfig
());
String
channelState
=
resultJSON
.
getString
(
"trade_state"
);
if
(
"SUCCESS"
.
equals
(
channelState
))
{
...
...
jeepay-payment/src/main/java/com/jeequan/jeepay/pay/channel/wxpay/kits/WxpayV3Util.java
View file @
32938f9f
...
...
@@ -76,8 +76,7 @@ public class WxpayV3Util {
return
JSON
.
parseObject
(
response
);
}
public
static
JSONObject
queryOrderV3
(
String
payOrderId
,
WxPayConfig
wxPayConfig
)
throws
WxPayException
{
String
url
=
String
.
format
(
"%s/v3/pay/transactions/out-trade-no/%s"
,
PAY_BASE_URL
,
payOrderId
);
public
static
JSONObject
queryOrderV3
(
String
url
,
WxPayConfig
wxPayConfig
)
throws
WxPayException
{
String
response
=
getV3
(
url
,
wxPayConfig
);
return
JSON
.
parseObject
(
response
);
}
...
...
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