记得上下班打卡 | 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
838256b0
Commit
838256b0
authored
Apr 11, 2022
by
jiangxiulong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
苹果支付完善
parent
bc934e47
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
59 additions
and
14 deletions
+59
-14
GoblinApplePayInnerResultVo.java
...et/service/goblin/dto/vo/GoblinApplePayInnerResultVo.java
+31
-0
OrderApplePayController.java
...net/service/order/controller/OrderApplePayController.java
+4
-2
GoblinNftOrderServiceImpl.java
...service/order/service/impl/GoblinNftOrderServiceImpl.java
+10
-4
OrderApplePayServiceImpl.java
.../service/order/service/impl/OrderApplePayServiceImpl.java
+14
-8
No files found.
liquidnet-bus-api/liquidnet-service-goblin-api/src/main/java/com/liquidnet/service/goblin/dto/vo/GoblinApplePayInnerResultVo.java
0 → 100644
View file @
838256b0
package
com
.
liquidnet
.
service
.
goblin
.
dto
.
vo
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
@Data
public
class
GoblinApplePayInnerResultVo
implements
Serializable
,
Cloneable
{
private
String
code
;
private
Integer
status
;
private
String
orderCode
;
private
String
orderId
;
private
String
payType
;
private
String
showUrl
;
private
String
returnUrl
;
private
BigDecimal
price
;
private
String
productId
;
private
Object
payData
;
private
static
final
GoblinApplePayInnerResultVo
obj
=
new
GoblinApplePayInnerResultVo
();
public
static
GoblinApplePayInnerResultVo
getNew
()
{
try
{
return
(
GoblinApplePayInnerResultVo
)
obj
.
clone
();
}
catch
(
CloneNotSupportedException
e
)
{
return
new
GoblinApplePayInnerResultVo
();
}
}
}
liquidnet-bus-service/liquidnet-service-order/liquidnet-service-order-impl/src/main/java/com/liquidnet/service/order/controller/OrderApplePayController.java
View file @
838256b0
...
...
@@ -38,13 +38,15 @@ public class OrderApplePayController {
@ApiImplicitParam
(
type
=
"form"
,
required
=
true
,
dataType
=
"String"
,
name
=
"orderId"
,
value
=
"订单ID"
,
example
=
"1"
),
@ApiImplicitParam
(
type
=
"form"
,
required
=
true
,
dataType
=
"String"
,
name
=
"type"
,
value
=
"订单类型 NFT"
,
example
=
"NFT"
),
@ApiImplicitParam
(
type
=
"form"
,
required
=
true
,
dataType
=
"String"
,
name
=
"receiptData"
,
value
=
"receipt-data"
,
example
=
"M0WWAoL3nK5I1xF3OX2n9aHlQptG4NbuHbkYmD7cBsLT"
),
@ApiImplicitParam
(
type
=
"form"
,
required
=
true
,
dataType
=
"String"
,
name
=
"transactionId"
,
value
=
"transactionId"
,
example
=
"2000000027803904"
),
})
public
ResponseDto
pay
(
@RequestParam
(
"orderId"
)
@NotBlank
(
message
=
"订单ID不能为空"
)
String
orderId
,
@RequestParam
(
"type"
)
@NotBlank
(
message
=
"订单类型不能为空"
)
@Pattern
(
regexp
=
"\\b(NFT)\\b"
,
message
=
"订单类型无效"
)
String
type
,
@RequestParam
(
"receiptData"
)
@NotBlank
(
message
=
"receiptData不能为空"
)
String
receiptData
@RequestParam
(
"receiptData"
)
@NotBlank
(
message
=
"receiptData不能为空"
)
String
receiptData
,
@RequestParam
(
"transactionId"
)
@NotBlank
(
message
=
"transactionId不能为空"
)
String
transactionId
)
{
boolean
isPay
=
applePayService
.
pay
(
orderId
,
type
,
receiptData
);
boolean
isPay
=
applePayService
.
pay
(
orderId
,
type
,
receiptData
,
transactionId
);
if
(
isPay
)
{
return
ResponseDto
.
success
(
"支付成功"
);
}
else
{
...
...
liquidnet-bus-service/liquidnet-service-order/liquidnet-service-order-impl/src/main/java/com/liquidnet/service/order/service/impl/GoblinNftOrderServiceImpl.java
View file @
838256b0
...
...
@@ -162,6 +162,9 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
String
orderId
=
IDGenerator
.
nextSnowId
();
String
orderCode
=
IDGenerator
.
storeCode
(
orderId
);
BigDecimal
totalPrice
=
skuVo
.
getPrice
();
if
(
payParam
.
getPayType
().
equals
(
"applepay"
))
{
totalPrice
=
skuVo
.
getPriceV
();
}
/*if (!StringUtils.isEmpty(platVoucherCode)) {// 平台券
GoblinUseResultVo useResultVo = nftOrderUtils.useCoupon(platVoucherCode, "购买NFT商品[" + orderCode + "]", totalPrice, spuId, uid);
String typeVoucher = useResultVo.getCouType();
...
...
@@ -191,7 +194,7 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
}
// 下单唤起支付
GoblinNftPayResultVo
nftPayResultVo
=
payOrder
(
nftOrder
,
uid
,
payParam
);
GoblinNftPayResultVo
nftPayResultVo
=
payOrder
(
nftOrder
,
uid
,
payParam
,
skuVo
.
getProductId
()
);
if
(
null
==
nftPayResultVo
)
{
nftOrderUtils
.
backSkuCountAndStock
(
uid
,
stockSkuId
,
skuId
,
number
);
return
ResponseDto
.
failure
(
"下单失败啦~"
);
...
...
@@ -360,7 +363,7 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
}
}
private
GoblinNftPayResultVo
payOrder
(
GoblinNftOrder
nftOrder
,
String
uid
,
GoblinNftOrderPayParam
payParam
)
{
private
GoblinNftPayResultVo
payOrder
(
GoblinNftOrder
nftOrder
,
String
uid
,
GoblinNftOrderPayParam
payParam
,
String
productId
)
{
try
{
// 是否免费
boolean
isFree
=
false
;
...
...
@@ -374,7 +377,10 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
payCode
=
""
;
NftPayResultVo
.
setCode
(
payCode
);
NftPayResultVo
.
setOrderCode
(
nftOrder
.
getOrderCode
());
NftPayResultVo
.
setPayData
(
""
);
HashMap
<
String
,
Object
>
payDataMap
=
CollectionUtil
.
mapStringObject
();
payDataMap
.
put
(
"productId"
,
productId
);
payDataMap
.
put
(
"quantity"
,
nftOrder
.
getNum
());
NftPayResultVo
.
setPayData
(
payDataMap
);
NftPayResultVo
.
setPayType
(
nftOrder
.
getPayType
());
NftPayResultVo
.
setPrice
(
nftOrder
.
getPriceActual
());
NftPayResultVo
.
setShowUrl
(
showUrl
);
...
...
@@ -630,7 +636,7 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
queueUtils
.
sendMsgByRedis
(
MQConst
.
GoblinQueue
.
GOBLIN_NFT_ORDER
.
getKey
(),
SqlMapping
.
gets
(
sqls
,
sqlDataOrder
));
if
(
syncOrderParam
.
getPaymentType
().
equals
(
"APPLE_PAY
"
))
{
// 苹果支付不做处理
if
(
orderVo
.
getPayType
().
equals
(
"applepay
"
))
{
// 苹果支付不做处理
return
"success"
;
}
else
{
// 退款
nftOrderUtils
.
refundOrderSku
(
orderId
,
syncOrderParam
.
getPaymentId
(),
syncOrderParam
.
getPaymentType
());
...
...
liquidnet-bus-service/liquidnet-service-order/liquidnet-service-order-impl/src/main/java/com/liquidnet/service/order/service/impl/OrderApplePayServiceImpl.java
View file @
838256b0
...
...
@@ -3,9 +3,9 @@ package com.liquidnet.service.order.service.impl;
import
com.fasterxml.jackson.core.type.TypeReference
;
import
com.liquidnet.commons.lang.util.*
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.goblin.dto.vo.GoblinApplePayInnerResultVo
;
import
com.liquidnet.service.goblin.dto.vo.GoblinGoodsSkuInfoVo
;
import
com.liquidnet.service.goblin.dto.vo.GoblinNftOrderVo
;
import
com.liquidnet.service.goblin.dto.vo.GoblinPayInnerResultVo
;
import
com.liquidnet.service.goblin.param.GoblinNftOrderPayCallbackParam
;
import
com.liquidnet.service.order.utils.GoblinNftOrderUtils
;
import
com.liquidnet.service.order.utils.GoblinRedisUtils
;
...
...
@@ -30,10 +30,11 @@ public class OrderApplePayServiceImpl {
@Autowired
private
GoblinNftOrderServiceImpl
goblinNftOrderService
;
@Value
(
"${liquidnet.service.order.url-pay.
p
ay}"
)
@Value
(
"${liquidnet.service.order.url-pay.
appleP
ay}"
)
private
String
payUrl
;
public
boolean
pay
(
String
orderId
,
String
type
,
String
receiptData
)
{
public
boolean
pay
(
String
orderId
,
String
type
,
String
receiptData
,
String
transactionId
)
{
try
{
log
.
info
(
"苹果支付成功通知参数 [orderId:{},type:{},receiptData:{}]"
,
orderId
,
type
,
receiptData
);
GoblinNftOrderVo
nftOrder
=
nftOrderUtils
.
getNftOrder
(
orderId
);
if
(
null
==
nftOrder
)
{
...
...
@@ -58,25 +59,26 @@ public class OrderApplePayServiceImpl {
httpData
.
add
(
"showUrl"
,
""
);
httpData
.
add
(
"returnUrl"
,
""
);
httpData
.
add
(
"receiptData"
,
receiptData
);
httpData
.
add
(
"transactionId"
,
transactionId
);
LinkedMultiValueMap
<
String
,
String
>
header
=
CollectionUtil
.
linkedMultiValueMapStringString
();
header
.
add
(
"Accept"
,
"application/json;charset=UTF-8"
);
String
returnData
=
HttpUtil
.
post
(
payUrl
,
httpData
,
header
);
log
.
info
(
"苹果支付调用DRAGON结果 = "
+
returnData
);
ResponseDto
<
Goblin
PayInnerResultVo
>
dto
=
JsonUtils
.
fromJson
(
returnData
,
new
TypeReference
<
ResponseDto
<
Goblin
PayInnerResultVo
>>()
{
ResponseDto
<
Goblin
ApplePayInnerResultVo
>
dto
=
JsonUtils
.
fromJson
(
returnData
,
new
TypeReference
<
ResponseDto
<
GoblinApple
PayInnerResultVo
>>()
{
});
GoblinPayInnerResultVo
dtoData
=
dto
.
getData
();
if
(
null
==
dtoData
||
dtoData
.
getStatus
()
==
0
)
{
Goblin
Apple
PayInnerResultVo
dtoData
=
dto
.
getData
();
if
(
null
==
dtoData
||
StringUtil
.
isEmpty
(
dtoData
.
getProductId
())
)
{
return
false
;
}
else
{
// 支付成功
GoblinNftOrderPayCallbackParam
NftOrderPayCallbackParam
=
GoblinNftOrderPayCallbackParam
.
getNew
();
NftOrderPayCallbackParam
.
setCode
(
nftOrder
.
getPay
Code
());
NftOrderPayCallbackParam
.
setCode
(
dtoData
.
get
Code
());
NftOrderPayCallbackParam
.
setOrderCode
(
nftOrder
.
getOrderCode
());
NftOrderPayCallbackParam
.
setPaymentAt
(
DateUtil
.
format
(
LocalDateTime
.
now
(),
DateUtil
.
Formatter
.
yyyyMMddHHmmss
));
NftOrderPayCallbackParam
.
setPrice
(
nftOrder
.
getPriceActual
());
NftOrderPayCallbackParam
.
setPaymentId
(
"APPLE_PAYMENT_ID"
);
// 这里应该是接口返回
NftOrderPayCallbackParam
.
setPaymentType
(
"APPLE_PAY"
);
// 这里应该是接口返回
NftOrderPayCallbackParam
.
setPaymentType
(
nftOrder
.
getDeviceFrom
().
concat
(
nftOrder
.
getPayType
()).
toUpperCase
()
);
// 这里应该是接口返回
NftOrderPayCallbackParam
.
setStatus
(
1
);
if
(
type
.
equals
(
"NFT"
))
{
String
isSync
=
goblinNftOrderService
.
syncOrder
(
NftOrderPayCallbackParam
);
...
...
@@ -86,5 +88,9 @@ public class OrderApplePayServiceImpl {
}
return
true
;
}
}
catch
(
Exception
e
)
{
log
.
error
(
"OrderApplePayServiceImplE e:{}"
,
e
);
return
false
;
}
}
}
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