Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
B
baa-pay-server
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
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
贺超
baa-pay-server
Commits
5c04db5f
Commit
5c04db5f
authored
Sep 08, 2021
by
刘李鹏
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
微信、支付宝退款查询、订单关闭完成
parent
da390b5b
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
252 additions
and
20 deletions
+252
-20
Acquirer.java
...ore/src/main/java/cn/quant/baa/pay/acquirer/Acquirer.java
+4
-5
MerchantAcquirer.java
...main/java/cn/quant/baa/pay/acquirer/MerchantAcquirer.java
+7
-8
AlipayMerchantAcquirer.java
...quant/baa/pay/acquirer/weixin/AlipayMerchantAcquirer.java
+17
-0
WeiXinMerchantAcquirer.java
...quant/baa/pay/acquirer/weixin/WeiXinMerchantAcquirer.java
+27
-4
CheckRefundRequestData.java
...va/cn/quant/baa/pay/model/web/CheckRefundRequestData.java
+62
-0
CloseRequestData.java
...ain/java/cn/quant/baa/pay/model/web/CloseRequestData.java
+46
-0
RefundRequestData.java
...in/java/cn/quant/baa/pay/model/web/RefundRequestData.java
+46
-0
TransactionService.java
...ain/java/cn/quant/baa/pay/service/TransactionService.java
+16
-3
TransactionController.java
...ain/java/cn/quant/baa/pay/rest/TransactionController.java
+27
-0
No files found.
baa-pay-core/src/main/java/cn/quant/baa/pay/acquirer/Acquirer.java
View file @
5c04db5f
package
cn
.
quant
.
baa
.
pay
.
acquirer
;
package
cn
.
quant
.
baa
.
pay
.
acquirer
;
import
cn.quant.baa.pay.jpa.entity.PayHistoryEntity
;
import
cn.quant.baa.pay.jpa.entity.PayHistoryEntity
;
import
cn.quant.baa.pay.model.web.CheckPayRequestData
;
import
cn.quant.baa.pay.model.web.*
;
import
cn.quant.baa.pay.model.web.PayRequestData
;
import
com.fasterxml.jackson.databind.JsonNode
;
import
com.fasterxml.jackson.databind.JsonNode
;
/**
/**
...
@@ -12,8 +11,8 @@ public interface Acquirer {
...
@@ -12,8 +11,8 @@ public interface Acquirer {
Object
code
();
Object
code
();
JsonNode
pay
(
PayRequestData
payRequestData
,
PayHistoryEntity
payHistoryEntity
);
JsonNode
pay
(
PayRequestData
payRequestData
,
PayHistoryEntity
payHistoryEntity
);
JsonNode
refund
();
JsonNode
refund
(
RefundRequestData
refundRequestData
);
JsonNode
checkPay
(
CheckPayRequestData
checkPayRequestData
);
JsonNode
checkPay
(
CheckPayRequestData
checkPayRequestData
);
JsonNode
checkRefund
();
JsonNode
checkRefund
(
CheckRefundRequestData
checkRefundRequestData
);
JsonNode
close
();
JsonNode
close
(
CloseRequestData
closeRequestData
);
}
}
baa-pay-core/src/main/java/cn/quant/baa/pay/acquirer/MerchantAcquirer.java
View file @
5c04db5f
package
cn
.
quant
.
baa
.
pay
.
acquirer
;
package
cn
.
quant
.
baa
.
pay
.
acquirer
;
import
cn.quant.baa.pay.jpa.entity.PayHistoryEntity
;
import
cn.quant.baa.pay.jpa.entity.PayHistoryEntity
;
import
cn.quant.baa.pay.model.web.CheckPayRequestData
;
import
cn.quant.baa.pay.model.web.*
;
import
cn.quant.baa.pay.model.web.PayRequestData
;
import
cn.quant.spring.NotSupportedException
;
import
cn.quant.spring.NotSupportedException
;
import
cn.quant.spring.security.Base64Cipher
;
import
cn.quant.spring.security.Base64Cipher
;
import
cn.quant.spring.security.CharacterCipher
;
import
cn.quant.spring.security.CharacterCipher
;
...
@@ -71,8 +70,8 @@ public class MerchantAcquirer implements Acquirer {
...
@@ -71,8 +70,8 @@ public class MerchantAcquirer implements Acquirer {
}
}
@Override
@Override
public
JsonNode
refund
()
{
public
JsonNode
refund
(
RefundRequestData
refundRequestData
)
{
throw
new
NotSupportedException
(
);
return
acquirers
.
get
(
refundRequestData
.
getChanId
()).
refund
(
refundRequestData
);
}
}
@Override
@Override
...
@@ -81,12 +80,12 @@ public class MerchantAcquirer implements Acquirer {
...
@@ -81,12 +80,12 @@ public class MerchantAcquirer implements Acquirer {
}
}
@Override
@Override
public
JsonNode
checkRefund
()
{
public
JsonNode
checkRefund
(
CheckRefundRequestData
checkRefundRequestData
)
{
return
null
;
return
acquirers
.
get
(
checkRefundRequestData
.
getChanId
()).
checkRefund
(
checkRefundRequestData
)
;
}
}
@Override
@Override
public
JsonNode
close
()
{
public
JsonNode
close
(
CloseRequestData
closeRequestData
)
{
throw
new
NotSupportedException
(
);
return
acquirers
.
get
(
closeRequestData
.
getChanId
()).
close
(
closeRequestData
);
}
}
}
}
baa-pay-core/src/main/java/cn/quant/baa/pay/acquirer/weixin/AlipayMerchantAcquirer.java
View file @
5c04db5f
...
@@ -5,6 +5,8 @@ import cn.quant.baa.pay.acquirer.MerchantAcquirer;
...
@@ -5,6 +5,8 @@ import cn.quant.baa.pay.acquirer.MerchantAcquirer;
import
cn.quant.baa.pay.dict.AccessCode
;
import
cn.quant.baa.pay.dict.AccessCode
;
import
cn.quant.baa.pay.jpa.entity.PayHistoryEntity
;
import
cn.quant.baa.pay.jpa.entity.PayHistoryEntity
;
import
cn.quant.baa.pay.model.web.CheckPayRequestData
;
import
cn.quant.baa.pay.model.web.CheckPayRequestData
;
import
cn.quant.baa.pay.model.web.CheckRefundRequestData
;
import
cn.quant.baa.pay.model.web.CloseRequestData
;
import
cn.quant.baa.pay.model.web.PayRequestData
;
import
cn.quant.baa.pay.model.web.PayRequestData
;
import
com.fasterxml.jackson.core.JsonProcessingException
;
import
com.fasterxml.jackson.core.JsonProcessingException
;
import
com.fasterxml.jackson.core.type.TypeReference
;
import
com.fasterxml.jackson.core.type.TypeReference
;
...
@@ -141,6 +143,21 @@ public class AlipayMerchantAcquirer extends MerchantAcquirer {
...
@@ -141,6 +143,21 @@ public class AlipayMerchantAcquirer extends MerchantAcquirer {
return
doExecute
(
bodyNode
);
return
doExecute
(
bodyNode
);
}
}
@Override
public
JsonNode
checkRefund
(
CheckRefundRequestData
checkRefundRequestData
)
{
ObjectNode
bodyNode
=
objectMapper
.
createObjectNode
();
bodyNode
.
put
(
"out_trade_no"
,
checkRefundRequestData
.
getOutTradeNo
());
bodyNode
.
put
(
"out_request_no"
,
checkRefundRequestData
.
getOutRefundNo
());
return
doExecute
(
bodyNode
);
}
@Override
public
JsonNode
close
(
CloseRequestData
closeRequestData
)
{
ObjectNode
bodyNode
=
objectMapper
.
createObjectNode
();
bodyNode
.
put
(
"out_trade_no"
,
closeRequestData
.
getOutTradeNo
());
return
doExecute
(
bodyNode
);
}
/**
/**
* App支付发起请求
* App支付发起请求
*
*
...
...
baa-pay-core/src/main/java/cn/quant/baa/pay/acquirer/weixin/WeiXinMerchantAcquirer.java
View file @
5c04db5f
...
@@ -4,6 +4,8 @@ import cn.quant.baa.pay.acquirer.AcquirerProperties;
...
@@ -4,6 +4,8 @@ import cn.quant.baa.pay.acquirer.AcquirerProperties;
import
cn.quant.baa.pay.acquirer.MerchantAcquirer
;
import
cn.quant.baa.pay.acquirer.MerchantAcquirer
;
import
cn.quant.baa.pay.jpa.entity.PayHistoryEntity
;
import
cn.quant.baa.pay.jpa.entity.PayHistoryEntity
;
import
cn.quant.baa.pay.model.web.CheckPayRequestData
;
import
cn.quant.baa.pay.model.web.CheckPayRequestData
;
import
cn.quant.baa.pay.model.web.CheckRefundRequestData
;
import
cn.quant.baa.pay.model.web.CloseRequestData
;
import
cn.quant.baa.pay.model.web.PayRequestData
;
import
cn.quant.baa.pay.model.web.PayRequestData
;
import
com.fasterxml.jackson.core.JsonProcessingException
;
import
com.fasterxml.jackson.core.JsonProcessingException
;
import
com.fasterxml.jackson.databind.JsonNode
;
import
com.fasterxml.jackson.databind.JsonNode
;
...
@@ -125,6 +127,20 @@ public class WeiXinMerchantAcquirer extends MerchantAcquirer {
...
@@ -125,6 +127,20 @@ public class WeiXinMerchantAcquirer extends MerchantAcquirer {
return
doExecute
(
payAccess
,
bodyNode
);
return
doExecute
(
payAccess
,
bodyNode
);
}
}
@Override
public
JsonNode
checkRefund
(
CheckRefundRequestData
checkRefundRequestData
)
{
String
payAccess
=
properties
.
getPayAccess
().
replace
(
"{out_refund_no}"
,
checkRefundRequestData
.
getOutRefundNo
());
return
doExecute
(
payAccess
,
null
);
}
@Override
public
JsonNode
close
(
CloseRequestData
closeRequestData
)
{
ObjectNode
bodyNode
=
objectMapper
.
createObjectNode
();
bodyNode
.
put
(
"mchid"
,
properties
.
getPayAcctId
());
String
payAccess
=
properties
.
getPayAccess
().
replace
(
"{out_trade_no}"
,
closeRequestData
.
getOutTradeNo
());
return
doExecute
(
payAccess
,
bodyNode
);
}
/**
/**
*
*
* @param payAccess
* @param payAccess
...
@@ -137,13 +153,17 @@ public class WeiXinMerchantAcquirer extends MerchantAcquirer {
...
@@ -137,13 +153,17 @@ public class WeiXinMerchantAcquirer extends MerchantAcquirer {
String
requestBody
=
""
;
String
requestBody
=
""
;
// 处理GET请求
// 处理GET请求
if
(
HttpMethod
.
GET
.
name
().
equals
(
method
))
{
if
(
HttpMethod
.
GET
.
name
().
equals
(
method
))
{
bodyNode
.
fields
().
forEachRemaining
((
entry
)
->
{
if
(
null
!=
bodyNode
)
{
uriComponentsBuilder
.
queryParam
(
entry
.
getKey
(),
entry
.
getValue
().
asText
());
bodyNode
.
fields
().
forEachRemaining
((
entry
)
->
{
});
uriComponentsBuilder
.
queryParam
(
entry
.
getKey
(),
entry
.
getValue
().
asText
());
});
}
}
else
{
}
else
{
// 非GET请求的时候处理requestBody
// 非GET请求的时候处理requestBody
try
{
try
{
requestBody
=
objectMapper
.
writeValueAsString
(
bodyNode
);
if
(
null
!=
bodyNode
)
{
requestBody
=
objectMapper
.
writeValueAsString
(
bodyNode
);
}
}
catch
(
JsonProcessingException
e
)
{
}
catch
(
JsonProcessingException
e
)
{
e
.
printStackTrace
();
e
.
printStackTrace
();
}
}
...
@@ -166,6 +186,9 @@ public class WeiXinMerchantAcquirer extends MerchantAcquirer {
...
@@ -166,6 +186,9 @@ public class WeiXinMerchantAcquirer extends MerchantAcquirer {
if
(
response
!=
null
)
{
if
(
response
!=
null
)
{
Mono
<
String
>
resultMono
=
response
.
bodyToMono
(
String
.
class
);
Mono
<
String
>
resultMono
=
response
.
bodyToMono
(
String
.
class
);
String
body
=
resultMono
.
block
();
String
body
=
resultMono
.
block
();
if
(
null
==
body
)
{
body
=
""
;
}
try
{
try
{
bodyJsonNode
=
objectMapper
.
readTree
(
body
);
bodyJsonNode
=
objectMapper
.
readTree
(
body
);
}
catch
(
JsonProcessingException
e
)
{
}
catch
(
JsonProcessingException
e
)
{
...
...
baa-pay-core/src/main/java/cn/quant/baa/pay/model/web/CheckRefundRequestData.java
0 → 100644
View file @
5c04db5f
package
cn
.
quant
.
baa
.
pay
.
model
.
web
;
import
javax.validation.constraints.NotNull
;
import
javax.validation.constraints.Size
;
import
java.io.Serializable
;
/**
* Created with IntelliJ IDEA.
* Author: Lipeng Liu
* Date: 2021/9/8
* Time: 上午11:05
* Description: No Description
*/
public
class
CheckRefundRequestData
implements
Serializable
{
private
static
final
long
serialVersionUID
=
4652001398076281697L
;
/**
* 支付通道ID
*/
@NotNull
(
message
=
"ILLEGAL_REQ_CHAN_ID"
)
private
String
chanId
;
/**
* 退款订单号
*/
@Size
(
min
=
6
,
max
=
64
,
message
=
"ILLEGAL_REQ_OUT_TRADE_NO"
)
@NotNull
(
message
=
"ILLEGAL_REQ_OUT_TRADE_NO"
)
private
String
outRefundNo
;
/**
* 商户订单号
*/
@Size
(
min
=
6
,
max
=
64
,
message
=
"ILLEGAL_REQ_OUT_TRADE_NO"
)
@NotNull
(
message
=
"ILLEGAL_REQ_OUT_TRADE_NO"
)
private
String
outTradeNo
;
public
String
getChanId
()
{
return
chanId
;
}
public
void
setChanId
(
String
chanId
)
{
this
.
chanId
=
chanId
;
}
public
String
getOutRefundNo
()
{
return
outRefundNo
;
}
public
void
setOutRefundNo
(
String
outRefundNo
)
{
this
.
outRefundNo
=
outRefundNo
;
}
public
String
getOutTradeNo
()
{
return
outTradeNo
;
}
public
void
setOutTradeNo
(
String
outTradeNo
)
{
this
.
outTradeNo
=
outTradeNo
;
}
}
baa-pay-core/src/main/java/cn/quant/baa/pay/model/web/CloseRequestData.java
0 → 100644
View file @
5c04db5f
package
cn
.
quant
.
baa
.
pay
.
model
.
web
;
import
javax.validation.constraints.NotNull
;
import
javax.validation.constraints.Size
;
import
java.io.Serializable
;
/**
* Created with IntelliJ IDEA.
* Author: Lipeng Liu
* Date: 2021/9/8
* Time: 上午11:28
* Description: No Description
*/
public
class
CloseRequestData
implements
Serializable
{
private
static
final
long
serialVersionUID
=
8489060627679269541L
;
/**
* 支付通道ID
*/
@NotNull
(
message
=
"ILLEGAL_REQ_CHAN_ID"
)
private
String
chanId
;
/**
* 商户订单号
*/
@Size
(
min
=
6
,
max
=
64
,
message
=
"ILLEGAL_REQ_OUT_TRADE_NO"
)
@NotNull
(
message
=
"ILLEGAL_REQ_OUT_TRADE_NO"
)
private
String
outTradeNo
;
public
String
getChanId
()
{
return
chanId
;
}
public
void
setChanId
(
String
chanId
)
{
this
.
chanId
=
chanId
;
}
public
String
getOutTradeNo
()
{
return
outTradeNo
;
}
public
void
setOutTradeNo
(
String
outTradeNo
)
{
this
.
outTradeNo
=
outTradeNo
;
}
}
baa-pay-core/src/main/java/cn/quant/baa/pay/model/web/RefundRequestData.java
0 → 100644
View file @
5c04db5f
package
cn
.
quant
.
baa
.
pay
.
model
.
web
;
import
javax.validation.constraints.NotNull
;
import
javax.validation.constraints.Size
;
import
java.io.Serializable
;
/**
* Created with IntelliJ IDEA.
* Author: Lipeng Liu
* Date: 2021/9/8
* Time: 上午11:30
* Description: No Description
*/
public
class
RefundRequestData
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
3619831737213449288L
;
/**
* 支付通道ID
*/
@NotNull
(
message
=
"ILLEGAL_REQ_CHAN_ID"
)
private
String
chanId
;
/**
* 商户订单号
*/
@Size
(
min
=
6
,
max
=
64
,
message
=
"ILLEGAL_REQ_OUT_TRADE_NO"
)
@NotNull
(
message
=
"ILLEGAL_REQ_OUT_TRADE_NO"
)
private
String
outTradeNo
;
public
String
getChanId
()
{
return
chanId
;
}
public
void
setChanId
(
String
chanId
)
{
this
.
chanId
=
chanId
;
}
public
String
getOutTradeNo
()
{
return
outTradeNo
;
}
public
void
setOutTradeNo
(
String
outTradeNo
)
{
this
.
outTradeNo
=
outTradeNo
;
}
}
baa-pay-core/src/main/java/cn/quant/baa/pay/service/TransactionService.java
View file @
5c04db5f
...
@@ -5,11 +5,9 @@ import cn.quant.baa.pay.acquirer.AcquirerConfiguration;
...
@@ -5,11 +5,9 @@ import cn.quant.baa.pay.acquirer.AcquirerConfiguration;
import
cn.quant.baa.pay.acquirer.MerchantAcquirer
;
import
cn.quant.baa.pay.acquirer.MerchantAcquirer
;
import
cn.quant.baa.pay.context.TransactionSession
;
import
cn.quant.baa.pay.context.TransactionSession
;
import
cn.quant.baa.pay.jpa.entity.*
;
import
cn.quant.baa.pay.jpa.entity.*
;
import
cn.quant.baa.pay.model.web.
CheckPayRequestData
;
import
cn.quant.baa.pay.model.web.
*
;
import
cn.quant.baa.pay.util.AssertUtils
;
import
cn.quant.baa.pay.util.AssertUtils
;
import
cn.quant.baa.pay.model.web.GoodsDetail
;
import
cn.quant.baa.pay.acquirer.AcquirerProperties
;
import
cn.quant.baa.pay.acquirer.AcquirerProperties
;
import
cn.quant.baa.pay.model.web.PayRequestData
;
import
com.fasterxml.jackson.databind.JsonNode
;
import
com.fasterxml.jackson.databind.JsonNode
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.LoggerFactory
;
...
@@ -121,4 +119,19 @@ public class TransactionService extends BusinessService {
...
@@ -121,4 +119,19 @@ public class TransactionService extends BusinessService {
return
acquirer
.
checkPay
(
data
);
return
acquirer
.
checkPay
(
data
);
}
}
@Transactional
(
propagation
=
Propagation
.
NOT_SUPPORTED
)
public
JsonNode
checkRefund
(
CheckRefundRequestData
data
)
{
return
acquirer
.
checkRefund
(
data
);
}
@Transactional
(
propagation
=
Propagation
.
NOT_SUPPORTED
)
public
JsonNode
close
(
CloseRequestData
data
)
{
return
acquirer
.
close
(
data
);
}
@Transactional
(
propagation
=
Propagation
.
NOT_SUPPORTED
)
public
JsonNode
checkRefund
(
RefundRequestData
data
)
{
return
acquirer
.
refund
(
data
);
}
}
}
baa-pay-server/src/main/java/cn/quant/baa/pay/rest/TransactionController.java
View file @
5c04db5f
...
@@ -4,6 +4,8 @@ import cn.quant.baa.pay.annotation.BusinessMapping;
...
@@ -4,6 +4,8 @@ import cn.quant.baa.pay.annotation.BusinessMapping;
import
cn.quant.baa.pay.jpa.entity.PayHistoryEntity
;
import
cn.quant.baa.pay.jpa.entity.PayHistoryEntity
;
import
cn.quant.baa.pay.model.BusinessRequest
;
import
cn.quant.baa.pay.model.BusinessRequest
;
import
cn.quant.baa.pay.model.web.CheckPayRequestData
;
import
cn.quant.baa.pay.model.web.CheckPayRequestData
;
import
cn.quant.baa.pay.model.web.CheckRefundRequestData
;
import
cn.quant.baa.pay.model.web.CloseRequestData
;
import
cn.quant.baa.pay.model.web.PayRequestData
;
import
cn.quant.baa.pay.model.web.PayRequestData
;
import
cn.quant.baa.pay.service.TransactionService
;
import
cn.quant.baa.pay.service.TransactionService
;
import
com.fasterxml.jackson.databind.JsonNode
;
import
com.fasterxml.jackson.databind.JsonNode
;
...
@@ -45,4 +47,29 @@ public class TransactionController extends BusinessController {
...
@@ -45,4 +47,29 @@ public class TransactionController extends BusinessController {
return
res
;
return
res
;
}
}
@ResponseBody
@BusinessMapping
(
session
=
1
)
@PostMapping
(
"/checkRefund"
)
public
JsonNode
checkRefund
(
@RequestBody
BusinessRequest
<
CheckRefundRequestData
>
request
)
{
CheckRefundRequestData
data
=
request
.
getData
();
JsonNode
res
=
transactionService
.
checkRefund
(
data
);
System
.
currentTimeMillis
();
return
res
;
}
@ResponseBody
@BusinessMapping
(
session
=
1
)
@PostMapping
(
"/close"
)
public
JsonNode
close
(
@RequestBody
BusinessRequest
<
CloseRequestData
>
request
)
{
CloseRequestData
data
=
request
.
getData
();
JsonNode
res
=
transactionService
.
close
(
data
);
System
.
currentTimeMillis
();
return
res
;
}
}
}
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