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
3f0adb69
Commit
3f0adb69
authored
Sep 02, 2021
by
Administrator
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
创建项目
parent
b0c3cc3a
Changes
8
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
92 additions
and
29 deletions
+92
-29
Acquirer.java
...ore/src/main/java/cn/quant/baa/pay/acquirer/Acquirer.java
+5
-1
AcquirerConfiguration.java
...java/cn/quant/baa/pay/acquirer/AcquirerConfiguration.java
+4
-0
MerchantAcquirer.java
...main/java/cn/quant/baa/pay/acquirer/MerchantAcquirer.java
+41
-10
WeiXinMerchantAcquirer.java
...quant/baa/pay/acquirer/weixin/WeiXinMerchantAcquirer.java
+5
-9
ServerConfiguration.java
...ain/java/cn/quant/baa/pay/config/ServerConfiguration.java
+18
-3
ModelBuilder.java
...re/src/main/java/cn/quant/baa/pay/model/ModelBuilder.java
+3
-3
TestApplication.java
...erver/src/test/java/cn/quant/baa/pay/TestApplication.java
+13
-0
application.properties
baa-pay-server/src/test/resource/application.properties
+3
-3
No files found.
baa-pay-core/src/main/java/cn/quant/baa/pay/acquirer/Acquirer.java
View file @
3f0adb69
...
@@ -4,5 +4,9 @@ package cn.quant.baa.pay.acquirer;
...
@@ -4,5 +4,9 @@ package cn.quant.baa.pay.acquirer;
* Created by Administrator on 2021/9/1 0001.
* Created by Administrator on 2021/9/1 0001.
*/
*/
public
interface
Acquirer
{
public
interface
Acquirer
{
String
code
();
Object
code
();
void
pay
();
void
refund
();
void
check
();
}
}
baa-pay-core/src/main/java/cn/quant/baa/pay/acquirer/AcquirerConfiguration.java
View file @
3f0adb69
...
@@ -67,4 +67,8 @@ public class AcquirerConfiguration {
...
@@ -67,4 +67,8 @@ public class AcquirerConfiguration {
public
AcquirerProperties
get
(
Long
channelId
)
{
public
AcquirerProperties
get
(
Long
channelId
)
{
return
map
.
get
(
channelId
);
return
map
.
get
(
channelId
);
}
}
public
Collection
<
AcquirerProperties
>
getAll
()
{
return
map
.
values
();
}
};
};
\ No newline at end of file
baa-pay-core/src/main/java/cn/quant/baa/pay/acquirer/MerchantAcquirer.java
View file @
3f0adb69
package
cn
.
quant
.
baa
.
pay
.
acquirer
;
package
cn
.
quant
.
baa
.
pay
.
acquirer
;
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
;
import
cn.quant.spring.util.RandomSequencer
;
import
javax.crypto.Cipher
;
import
javax.crypto.Cipher
;
import
javax.crypto.
NoSuchPaddingException
;
import
javax.crypto.
spec.GCMParameterSpec
;
import
javax.crypto.spec.SecretKeySpec
;
import
javax.crypto.spec.SecretKeySpec
;
import
java.
security.InvalidKeyException
;
import
java.
nio.charset.Charset
;
import
java.security.
NoSuchAlgorithmException
;
import
java.security.
SecureRandom
;
import
java.util.HashMap
;
import
java.util.HashMap
;
import
java.util.Map
;
import
java.util.Map
;
/**
/**
* Created by Administrator on 2021/8/31 0031.
* Created by Administrator on 2021/8/31 0031.
*/
*/
public
abstract
class
MerchantAcquirer
implements
Acquirer
{
public
class
MerchantAcquirer
implements
Acquirer
{
private
static
Map
<
Object
,
Acquirer
>
acquirers
=
new
HashMap
<>();
private
final
static
MerchantAcquirer
instance
=
new
MerchantAcquirer
();
private
final
static
Map
<
Object
,
Acquirer
>
acquirers
=
new
HashMap
<>();
protected
Cipher
cipher
;
protected
Cipher
cipher
;
...
@@ -24,25 +28,52 @@ public abstract class MerchantAcquirer implements Acquirer {
...
@@ -24,25 +28,52 @@ public abstract class MerchantAcquirer implements Acquirer {
protected
CharacterCipher
secretCipher
;
protected
CharacterCipher
secretCipher
;
private
AcquirerProperties
properties
;
protected
AcquirerProperties
properties
;
protected
MerchantAcquirer
()
{
}
public
static
MerchantAcquirer
getInstance
()
{
return
instance
;
}
public
MerchantAcquirer
init
(
AcquirerProperties
properties
)
throws
NoSuchPaddingException
,
NoSuchAlgorithmException
,
InvalidKey
Exception
{
public
MerchantAcquirer
init
(
AcquirerProperties
properties
)
throws
Exception
{
this
.
secretCipher
=
new
Base64Cipher
();
this
.
secretCipher
=
new
Base64Cipher
();
String
secretType
=
properties
.
getSecretType
();
String
secretType
=
properties
.
getSecretType
();
if
(
secretType
.
startsWith
(
"AES"
))
{
if
(
secretType
.
startsWith
(
"AES"
))
{
this
.
secretKey
=
new
SecretKeySpec
(
properties
.
getSecretKey
().
getBytes
(),
"AES"
);
this
.
secretKey
=
new
SecretKeySpec
(
properties
.
getSecretKey
().
getBytes
(
Charset
.
forName
(
"utf-8"
)
),
"AES"
);
}
}
this
.
cipher
=
Cipher
.
getInstance
(
secretType
);
this
.
cipher
=
Cipher
.
getInstance
(
secretType
);
this
.
cipher
.
init
(
Cipher
.
ENCRYPT_MODE
,
this
.
secretKey
);
GCMParameterSpec
spec
=
new
GCMParameterSpec
(
128
,
RandomSequencer
.
randomNumber
().
getBytes
(
Charset
.
forName
(
"utf-8"
)));
this
.
cipher
.
init
(
Cipher
.
DECRYPT_MODE
,
this
.
secretKey
,
spec
);
this
.
properties
=
properties
;
this
.
properties
=
properties
;
return
this
;
return
this
;
}
}
public
static
void
register
(
Acquirer
acquirer
)
{
public
void
register
(
Acquirer
acquirer
)
{
acquirers
.
put
(
acquirer
.
code
(),
acquirer
);
acquirers
.
put
(
acquirer
.
code
(),
acquirer
);
}
}
@Override
public
Object
code
()
{
throw
new
NotSupportedException
();
}
@Override
public
void
pay
()
{
throw
new
NotSupportedException
();
}
@Override
public
void
refund
()
{
throw
new
NotSupportedException
();
}
@Override
public
void
check
()
{
throw
new
NotSupportedException
();
}
}
}
baa-pay-core/src/main/java/cn/quant/baa/pay/acquirer/weixin/WeiXinMerchantAcquirer.java
View file @
3f0adb69
...
@@ -3,23 +3,19 @@ package cn.quant.baa.pay.acquirer.weixin;
...
@@ -3,23 +3,19 @@ package cn.quant.baa.pay.acquirer.weixin;
import
cn.quant.baa.pay.acquirer.AcquirerProperties
;
import
cn.quant.baa.pay.acquirer.AcquirerProperties
;
import
cn.quant.baa.pay.acquirer.MerchantAcquirer
;
import
cn.quant.baa.pay.acquirer.MerchantAcquirer
;
import
javax.crypto.NoSuchPaddingException
;
import
java.security.InvalidKeyException
;
import
java.security.NoSuchAlgorithmException
;
/**
/**
* Created by Administrator on 2021/8/31 0031.
* Created by Administrator on 2021/8/31 0031.
*/
*/
public
class
WeiXinMerchantAcquirer
extends
MerchantAcquirer
{
public
class
WeiXinMerchantAcquirer
extends
MerchantAcquirer
{
@Override
@Override
public
MerchantAcquirer
init
(
AcquirerProperties
properties
)
throws
NoSuchPaddingException
,
NoSuchAlgorithmException
,
InvalidKeyException
{
public
MerchantAcquirer
init
(
AcquirerProperties
properties
)
throws
Exception
{
return
super
.
init
(
properties
);
super
.
init
(
properties
);
return
this
;
}
}
@Override
@Override
public
String
code
()
{
public
Object
code
()
{
return
null
;
return
this
.
properties
.
getMchChanId
().
toString
()
;
}
}
}
}
baa-pay-core/src/main/java/cn/quant/baa/pay/config/ServerConfiguration.java
View file @
3f0adb69
...
@@ -2,7 +2,9 @@ package cn.quant.baa.pay.config;
...
@@ -2,7 +2,9 @@ package cn.quant.baa.pay.config;
import
cn.quant.baa.pay.acquirer.AcquirerConfiguration
;
import
cn.quant.baa.pay.acquirer.AcquirerConfiguration
;
import
cn.quant.baa.pay.acquirer.AcquirerConfigurer
;
import
cn.quant.baa.pay.acquirer.AcquirerConfigurer
;
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.acquirer.weixin.WeiXinMerchantAcquirer
;
import
cn.quant.baa.pay.jpa.entity.*
;
import
cn.quant.baa.pay.jpa.entity.*
;
import
cn.quant.baa.pay.jpa.repository.*
;
import
cn.quant.baa.pay.jpa.repository.*
;
import
cn.quant.baa.pay.model.DictionaryItem
;
import
cn.quant.baa.pay.model.DictionaryItem
;
...
@@ -10,6 +12,11 @@ import org.springframework.beans.factory.annotation.Autowired;
...
@@ -10,6 +12,11 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.Configuration
;
import
javax.crypto.NoSuchPaddingException
;
import
java.security.InvalidAlgorithmParameterException
;
import
java.security.InvalidKeyException
;
import
java.security.NoSuchAlgorithmException
;
import
java.util.Collection
;
import
java.util.List
;
import
java.util.List
;
/**
/**
...
@@ -75,8 +82,16 @@ public class ServerConfiguration {
...
@@ -75,8 +82,16 @@ public class ServerConfiguration {
}
}
@Bean
@Bean
public
MerchantAcquirer
acquirer
(){
public
MerchantAcquirer
acquirer
(
AcquirerConfiguration
acquirerConfiguration
)
throws
Exception
{
MerchantAcquirer
merchantAcquirer
=
MerchantAcquirer
.
getInstance
();
return
null
;
Collection
<
AcquirerProperties
>
properties
=
acquirerConfiguration
.
getAll
();
for
(
AcquirerProperties
property
:
properties
)
{
if
(
"WXP"
.
equals
(
property
.
getPayChanCode
())){
WeiXinMerchantAcquirer
acquirer
=
new
WeiXinMerchantAcquirer
();
acquirer
.
init
(
property
);
merchantAcquirer
.
register
(
acquirer
);
}
}
return
merchantAcquirer
;
}
}
}
}
baa-pay-core/src/main/java/cn/quant/baa/pay/model/ModelBuilder.java
View file @
3f0adb69
package
cn
.
quant
.
baa
.
pay
.
model
;
package
cn
.
quant
.
baa
.
pay
.
model
;
import
cn.quant.baa.pay.acquirer.AcquirerProperties
;
import
cn.quant.baa.pay.acquirer.AcquirerProperties
;
import
cn.quant.baa.pay.model.web.MerchantAcquirerProperties
;
import
cn.quant.baa.pay.config.DictionaryViewer
;
import
cn.quant.baa.pay.config.DictionaryViewer
;
import
cn.quant.baa.pay.dict.DictType
;
import
cn.quant.baa.pay.dict.DictType
;
import
cn.quant.baa.pay.model.web.MerchantAcquirerProperties
;
import
cn.quant.baa.pay.model.web.MerchantChannelResponseData
;
import
cn.quant.baa.pay.model.web.MerchantChannelResponseData
;
import
cn.quant.spring.
Uns
upportedException
;
import
cn.quant.spring.
NotS
upportedException
;
import
cn.quant.spring.util.StringUtils
;
import
cn.quant.spring.util.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
...
@@ -50,7 +50,7 @@ public class ModelBuilder {
...
@@ -50,7 +50,7 @@ public class ModelBuilder {
for
(
String
code
:
profiles
.
keySet
())
{
for
(
String
code
:
profiles
.
keySet
())
{
DictionaryItem
item
=
dictionaryViewer
.
get
(
DictType
.
PAY
,
code
);
DictionaryItem
item
=
dictionaryViewer
.
get
(
DictType
.
PAY
,
code
);
if
(
item
==
null
)
{
if
(
item
==
null
)
{
throw
new
Uns
upportedException
(
StringUtils
.
format
(
"Dictionary item is null({}, {})."
,
DictType
.
PAY
,
code
));
throw
new
NotS
upportedException
(
StringUtils
.
format
(
"Dictionary item is null({}, {})."
,
DictType
.
PAY
,
code
));
}
}
Collection
<
AcquirerProperties
>
collection
=
profiles
.
get
(
code
);
Collection
<
AcquirerProperties
>
collection
=
profiles
.
get
(
code
);
MerchantChannelResponseData
book
=
new
MerchantChannelResponseData
();
MerchantChannelResponseData
book
=
new
MerchantChannelResponseData
();
...
...
baa-pay-server/src/test/java/cn/quant/baa/pay/TestApplication.java
View file @
3f0adb69
...
@@ -8,6 +8,11 @@ import org.springframework.boot.test.context.SpringBootTest;
...
@@ -8,6 +8,11 @@ import org.springframework.boot.test.context.SpringBootTest;
import
org.springframework.test.context.TestPropertySource
;
import
org.springframework.test.context.TestPropertySource
;
import
org.springframework.test.context.junit4.SpringRunner
;
import
org.springframework.test.context.junit4.SpringRunner
;
import
javax.crypto.Cipher
;
import
javax.crypto.spec.GCMParameterSpec
;
import
javax.crypto.spec.SecretKeySpec
;
import
java.nio.charset.Charset
;
/**
/**
* <p><b>JUnit VM Option:</b><br/>
* <p><b>JUnit VM Option:</b><br/>
...
@@ -24,6 +29,14 @@ public class TestApplication {
...
@@ -24,6 +29,14 @@ public class TestApplication {
@Test
@Test
public
void
idWorker
()
{
public
void
idWorker
()
{
try
{
System
.
currentTimeMillis
();
}
catch
(
Exception
e
)
{
}
System
.
out
.
println
(
identitySequencer
.
nextId
());
System
.
out
.
println
(
identitySequencer
.
nextId
());
System
.
out
.
println
(
identitySequencer
.
nextId
());
System
.
out
.
println
(
identitySequencer
.
nextId
());
System
.
out
.
println
(
identitySequencer
.
nextId
());
System
.
out
.
println
(
identitySequencer
.
nextId
());
...
...
baa-pay-server/src/test/resource/application.properties
View file @
3f0adb69
...
@@ -15,9 +15,9 @@ quant.server.sequencer.sequence-bits=8
...
@@ -15,9 +15,9 @@ quant.server.sequencer.sequence-bits=8
#Database
#Database
spring.datasource.type
=
com.zaxxer.hikari.HikariDataSource
spring.datasource.type
=
com.zaxxer.hikari.HikariDataSource
spring.datasource.driver-class-name
=
org.mariadb.jdbc.Driver
spring.datasource.driver-class-name
=
org.mariadb.jdbc.Driver
spring.datasource.url
=
jdbc:mysql://1
27.0.0.1:3306/baa_pay_v
1.0?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai
spring.datasource.url
=
jdbc:mysql://1
72.17.5.17:31548/baa_pay_
1.0?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai
spring.datasource.username
=
root
spring.datasource.username
=
qa
spring.datasource.password
=
111111
spring.datasource.password
=
qatest
spring.datasource.hikari.minimum-idle
=
1
spring.datasource.hikari.minimum-idle
=
1
spring.datasource.hikari.maximum-pool-size
=
3
spring.datasource.hikari.maximum-pool-size
=
3
spring.datasource.hikari.data-source-properties.cachePrepStmts
=
true
spring.datasource.hikari.data-source-properties.cachePrepStmts
=
true
...
...
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