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
36d14384
Commit
36d14384
authored
Apr 09, 2018
by
cbwleft
Browse files
兼容 application/json 类型请求。json中null不参与验签
parent
14a0094a
Changes
3
Hide whitespace changes
Inline
Side-by-side
xxpay-common/src/main/java/org/xxpay/common/util/PayDigestUtil.java
View file @
36d14384
...
...
@@ -142,7 +142,7 @@ public class PayDigestUtil {
Field
[]
fields
=
cls
.
getDeclaredFields
();
for
(
Field
f
:
fields
)
{
f
.
setAccessible
(
true
);
if
(
f
.
get
(
o
)
!=
null
&&
f
.
get
(
o
)
!=
""
)
{
if
(
f
.
get
(
o
)
!=
null
&&
!
""
.
equals
(
f
.
get
(
o
)
)
)
{
list
.
add
(
f
.
getName
()
+
"="
+
f
.
get
(
o
)
+
"&"
);
}
}
...
...
@@ -164,7 +164,7 @@ public class PayDigestUtil {
public
static
String
getSign
(
Map
<
String
,
Object
>
map
,
String
key
){
ArrayList
<
String
>
list
=
new
ArrayList
<
String
>();
for
(
Map
.
Entry
<
String
,
Object
>
entry:
map
.
entrySet
()){
if
(!
""
.
equals
(
entry
.
getValue
())){
if
(!
""
.
equals
(
entry
.
getValue
())
&&
null
!=
entry
.
getValue
()
){
list
.
add
(
entry
.
getKey
()
+
"="
+
entry
.
getValue
()
+
"&"
);
}
}
...
...
xxpay4spring-boot/src/main/java/org/xxpay/boot/ctrl/PayOrderController.java
View file @
36d14384
...
...
@@ -5,6 +5,8 @@ import com.alibaba.fastjson.JSONObject;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.math.NumberUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.MediaType
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
...
...
@@ -48,14 +50,19 @@ public class PayOrderController {
*/
@RequestMapping
(
value
=
"/api/pay/create_order"
)
public
String
payOrder
(
@RequestParam
String
params
)
{
_log
.
info
(
"###### 开始接收商户统一下单请求 ######"
);
JSONObject
po
=
JSONObject
.
parseObject
(
params
);
return
payOrder
(
po
);
}
@RequestMapping
(
value
=
"/api/pay/create_order"
,
consumes
=
MediaType
.
APPLICATION_JSON_VALUE
,
produces
=
MediaType
.
APPLICATION_JSON_VALUE
)
public
String
payOrder
(
@RequestBody
JSONObject
params
)
{
_log
.
info
(
"###### 开始接收商户统一下单请求 ######"
);
String
logPrefix
=
"【商户统一下单】"
;
try
{
JSONObject
po
=
JSONObject
.
parseObject
(
params
);
JSONObject
payContext
=
new
JSONObject
();
JSONObject
payOrder
=
null
;
// 验证参数有效性
Object
object
=
validateParams
(
p
o
,
payContext
);
Object
object
=
validateParams
(
p
arams
,
payContext
);
if
(
object
instanceof
String
)
{
_log
.
info
(
"{}参数校验不通过:{}"
,
logPrefix
,
object
);
return
XXPayUtil
.
makeRetFail
(
XXPayUtil
.
makeRetMap
(
PayConstant
.
RETURN_VALUE_FAIL
,
object
.
toString
(),
null
,
null
));
...
...
xxpay4spring-boot/src/main/java/org/xxpay/boot/ctrl/QueryPayOrderController.java
View file @
36d14384
...
...
@@ -3,6 +3,8 @@ package org.xxpay.boot.ctrl;
import
com.alibaba.fastjson.JSONObject
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.MediaType
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
...
...
@@ -42,22 +44,27 @@ public class QueryPayOrderController {
*/
@RequestMapping
(
value
=
"/api/pay/query_order"
)
public
String
queryPayOrder
(
@RequestParam
String
params
)
{
JSONObject
po
=
JSONObject
.
parseObject
(
params
);
return
queryPayOrder
(
po
);
}
@RequestMapping
(
value
=
"/api/pay/query_order"
,
consumes
=
MediaType
.
APPLICATION_JSON_VALUE
,
produces
=
MediaType
.
APPLICATION_JSON_VALUE
)
public
String
queryPayOrder
(
@RequestBody
JSONObject
params
)
{
_log
.
info
(
"###### 开始接收商户查询支付订单请求 ######"
);
String
logPrefix
=
"【商户支付订单查询】"
;
try
{
JSONObject
po
=
JSONObject
.
parseObject
(
params
);
JSONObject
payContext
=
new
JSONObject
();
// 验证参数有效性
String
errorMessage
=
validateParams
(
p
o
,
payContext
);
String
errorMessage
=
validateParams
(
p
arams
,
payContext
);
if
(!
"success"
.
equalsIgnoreCase
(
errorMessage
))
{
_log
.
warn
(
errorMessage
);
return
XXPayUtil
.
makeRetFail
(
XXPayUtil
.
makeRetMap
(
PayConstant
.
RETURN_VALUE_FAIL
,
errorMessage
,
null
,
null
));
}
_log
.
debug
(
"请求参数及签名校验通过"
);
String
mchId
=
p
o
.
getString
(
"mchId"
);
// 商户ID
String
mchOrderNo
=
p
o
.
getString
(
"mchOrderNo"
);
// 商户订单号
String
payOrderId
=
p
o
.
getString
(
"payOrderId"
);
// 支付订单号
String
executeNotify
=
p
o
.
getString
(
"executeNotify"
);
// 是否执行回调
String
mchId
=
p
arams
.
getString
(
"mchId"
);
// 商户ID
String
mchOrderNo
=
p
arams
.
getString
(
"mchOrderNo"
);
// 商户订单号
String
payOrderId
=
p
arams
.
getString
(
"payOrderId"
);
// 支付订单号
String
executeNotify
=
p
arams
.
getString
(
"executeNotify"
);
// 是否执行回调
JSONObject
payOrder
=
payOrderService
.
queryPayOrder
(
mchId
,
payOrderId
,
mchOrderNo
,
executeNotify
);
_log
.
info
(
"{}查询支付订单,结果:{}"
,
logPrefix
,
payOrder
);
if
(
payOrder
==
null
)
{
...
...
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