记得上下班打卡 | 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
cb347737
Commit
cb347737
authored
Nov 09, 2021
by
anjiabin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
提交unionpay代码
parent
97b35e40
Changes
9
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
369 additions
and
826 deletions
+369
-826
ServiceDragonApplication.java
.../java/com/liquidnet/service/ServiceDragonApplication.java
+3
-0
Acp6Service.java
...dnet/service/dragon/channel/unionpay/sdk/Acp6Service.java
+56
-46
AcpService.java
...idnet/service/dragon/channel/unionpay/sdk/AcpService.java
+89
-82
CertUtil.java
...quidnet/service/dragon/channel/unionpay/sdk/CertUtil.java
+109
-106
QrcService.java
...idnet/service/dragon/channel/unionpay/sdk/QrcService.java
+32
-25
SDKConfig.java
...uidnet/service/dragon/channel/unionpay/sdk/SDKConfig.java
+9
-536
SDKUtil.java
...iquidnet/service/dragon/channel/unionpay/sdk/SDKUtil.java
+21
-17
SecureUtil.java
...idnet/service/dragon/channel/unionpay/sdk/SecureUtil.java
+14
-14
TestSdkConfig.java
...pl/src/test/java/com/liquidnet/service/TestSdkConfig.java
+36
-0
No files found.
liquidnet-bus-service/liquidnet-service-dragon/liquidnet-service-dragon-impl/src/main/java/com/liquidnet/service/ServiceDragonApplication.java
View file @
cb347737
...
...
@@ -4,7 +4,9 @@ import lombok.extern.slf4j.Slf4j;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.CommandLineRunner
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.EnableAutoConfiguration
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.boot.context.properties.EnableConfigurationProperties
;
import
org.springframework.core.env.Environment
;
import
java.net.InetAddress
;
...
...
@@ -12,6 +14,7 @@ import java.util.Arrays;
@Slf4j
@SpringBootApplication
(
scanBasePackages
=
{
"com.liquidnet"
})
@EnableConfigurationProperties
public
class
ServiceDragonApplication
implements
CommandLineRunner
{
@Autowired
private
Environment
environment
;
...
...
liquidnet-bus-service/liquidnet-service-dragon/liquidnet-service-dragon-impl/src/main/java/com/liquidnet/service/dragon/channel/unionpay/sdk/Acp6Service.java
View file @
cb347737
...
...
@@ -2,6 +2,7 @@ package com.liquidnet.service.dragon.channel.unionpay.sdk;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.codec.binary.Base64
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
java.io.IOException
;
import
java.security.PublicKey
;
...
...
@@ -15,6 +16,15 @@ import java.util.Map;
*/
@Slf4j
public
class
Acp6Service
{
@Autowired
private
SDKConfig
sdkConfig
;
@Autowired
private
CertUtil
certUtil
;
@Autowired
private
SDKUtil
sdkUtil
;
/**
* 请求报文签名(使用配置文件中配置的私钥证书或者对称密钥签名)<br>
* 功能:对请求报文进行签名,并计算赋值certid,signature字段并返回<br>
...
...
@@ -22,8 +32,8 @@ public class Acp6Service {
* @param encoding 上送请求报文域encoding字段的值<br>
* @return 签名后的map对象<br>
*/
public
static
Map
<
String
,
String
>
sign
(
Map
<
String
,
String
>
reqData
,
String
encoding
)
{
return
signByCertInfo
(
reqData
,
SDKConfig
.
getConfig
().
getSignCertPath
(),
SDKConfig
.
getConfig
()
.
getSignCertPwd
(),
encoding
);
public
Map
<
String
,
String
>
sign
(
Map
<
String
,
String
>
reqData
,
String
encoding
)
{
return
signByCertInfo
(
reqData
,
sdkConfig
.
getSignCertPath
(),
sdkConfig
.
getSignCertPwd
(),
encoding
);
}
/**
...
...
@@ -35,7 +45,7 @@ public class Acp6Service {
* @param encoding 上送请求报文域encoding字段的值<br>
* @return 签名后的map对象<br>
*/
public
static
Map
<
String
,
String
>
signByCertInfo
(
Map
<
String
,
String
>
reqData
,
String
certPath
,
public
Map
<
String
,
String
>
signByCertInfo
(
Map
<
String
,
String
>
reqData
,
String
certPath
,
String
certPwd
,
String
encoding
)
{
Map
<
String
,
String
>
data
=
SDKUtil
.
filterBlank
(
reqData
);
...
...
@@ -50,8 +60,8 @@ public class Acp6Service {
}
try
{
data
.
put
(
SDKConstants
.
param_certId
,
C
ertUtil
.
getCertIdByKeyStoreMap
(
certPath
,
certPwd
));
data
.
put
(
SDKConstants
.
param_signature
,
SDK
Util
.
signRsa2
(
data
,
certPath
,
certPwd
,
encoding
));
data
.
put
(
SDKConstants
.
param_certId
,
c
ertUtil
.
getCertIdByKeyStoreMap
(
certPath
,
certPwd
));
data
.
put
(
SDKConstants
.
param_signature
,
sdk
Util
.
signRsa2
(
data
,
certPath
,
certPwd
,
encoding
));
return
data
;
}
catch
(
Exception
e
)
{
log
.
error
(
"Sign Error"
,
e
);
...
...
@@ -65,7 +75,7 @@ public class Acp6Service {
* @param encoding 上送请求报文域encoding字段的值<br>
* @return true 通过 false 未通过<br>
*/
public
static
boolean
validate
(
Map
<
String
,
String
>
data
,
String
encoding
)
{
public
boolean
validate
(
Map
<
String
,
String
>
data
,
String
encoding
)
{
log
.
info
(
"验签处理开始"
);
if
(
SDKUtil
.
isEmpty
(
encoding
))
{
encoding
=
"UTF-8"
;
...
...
@@ -73,7 +83,7 @@ public class Acp6Service {
String
certId
=
data
.
get
(
SDKConstants
.
param_certId
);
log
.
info
(
"对返回报文串验签使用的验签公钥序列号:["
+
certId
+
"]"
);
PublicKey
verifyKey
=
C
ertUtil
.
getValidatePublicKey
(
certId
);
PublicKey
verifyKey
=
c
ertUtil
.
getValidatePublicKey
(
certId
);
if
(
verifyKey
==
null
)
{
log
.
error
(
"未找到此序列号证书。"
);
return
false
;
...
...
@@ -94,8 +104,8 @@ public class Acp6Service {
* 更新成功则返回1,无更新返回0,失败异常返回-1<br>
* @return
*/
public
static
int
updateEncryptCert
(
String
strCert
,
String
certType
)
{
return
SDK
Util
.
updateEncryptCert
(
strCert
,
certType
);
public
int
updateEncryptCert
(
String
strCert
,
String
certType
)
{
return
sdk
Util
.
updateEncryptCert
(
strCert
,
certType
);
}
/**
...
...
@@ -105,9 +115,9 @@ public class Acp6Service {
* @param encoding<br>
* @return 加密的内容<br>
*/
public
static
String
encryptPin
(
String
accNo
,
String
pin
,
String
encoding
)
{
public
String
encryptPin
(
String
accNo
,
String
pin
,
String
encoding
)
{
byte
[]
pinblock
=
SecureUtil
.
pinblock
(
accNo
,
pin
);
return
Base64
.
encodeBase64String
(
SecureUtil
.
encrypt
(
C
ertUtil
.
getPinEncryptCert
().
pubKey
,
pinblock
));
return
Base64
.
encodeBase64String
(
SecureUtil
.
encrypt
(
c
ertUtil
.
getPinEncryptCert
().
pubKey
,
pinblock
));
}
// /**
...
...
@@ -117,7 +127,7 @@ public class Acp6Service {
// * @param encoding<br>
// * @return 加密的内容<br>
// */
// public
static
String encryptPin(String pin, String encoding) {
// public String encryptPin(String pin, String encoding) {
// byte[] pinblock = SecureUtil.pinblock(pin);
// return Base64.encodeBase64String(SecureUtil.encrypt(CertUtil.getPinEncryptCert().pubKey, pinblock));
// }
...
...
@@ -128,8 +138,8 @@ public class Acp6Service {
* @param encoding<br>
* @return 加密的密文<br>
*/
public
static
String
encryptData
(
String
data
,
String
encoding
)
{
return
AcpService
.
encryptData
(
data
,
encoding
);
public
String
encryptData
(
String
data
,
String
encoding
)
{
return
this
.
encryptData
(
data
,
encoding
);
}
...
...
@@ -137,9 +147,9 @@ public class Acp6Service {
* @param data 明文<br>
* @return 加密的密文<br>
*/
public
static
String
encryptData
(
byte
[]
data
)
{
public
String
encryptData
(
byte
[]
data
)
{
try
{
return
Base64
.
encodeBase64String
(
SecureUtil
.
encrypt
(
C
ertUtil
.
getEncryptCert
().
pubKey
,
data
));
return
Base64
.
encodeBase64String
(
SecureUtil
.
encrypt
(
c
ertUtil
.
getEncryptCert
().
pubKey
,
data
));
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
return
null
;
...
...
@@ -151,7 +161,7 @@ public class Acp6Service {
* @param data 明文<br>
* @return 加密的密文<br>
*/
public
static
String
tripleDesEncryptECBPKCS5Padding
(
byte
[]
key
,
byte
[]
data
)
{
public
String
tripleDesEncryptECBPKCS5Padding
(
byte
[]
key
,
byte
[]
data
)
{
try
{
return
Base64
.
encodeBase64String
(
SecureUtil
.
tripleDesEncryptECBPKCS5Padding
(
key
,
SecureUtil
.
rightPadZero
(
data
,
8
)));
}
catch
(
Exception
e
)
{
...
...
@@ -166,8 +176,8 @@ public class Acp6Service {
* @param encoding<br>
* @return 解密后的明文<br>
*/
public
static
String
decryptData
(
String
base64EncryptedInfo
,
String
encoding
)
{
return
AcpService
.
decryptData
(
base64EncryptedInfo
,
encoding
);
public
String
decryptData
(
String
base64EncryptedInfo
,
String
encoding
)
{
return
this
.
decryptData
(
base64EncryptedInfo
,
encoding
);
}
/**
...
...
@@ -178,25 +188,25 @@ public class Acp6Service {
* @param encoding<br>
* @return
*/
public
static
String
decryptData
(
String
base64EncryptedInfo
,
String
certPath
,
public
String
decryptData
(
String
base64EncryptedInfo
,
String
certPath
,
String
certPwd
,
String
encoding
)
{
return
AcpService
.
decryptData
(
base64EncryptedInfo
,
certPath
,
certPwd
,
encoding
);
return
this
.
decryptData
(
base64EncryptedInfo
,
certPath
,
certPwd
,
encoding
);
}
/**
* 获取敏感信息加密证书的物理序列号<br>
* @return
*/
public
static
String
getEncryptCertId
(){
return
C
ertUtil
.
getEncryptCert
().
certId
;
public
String
getEncryptCertId
(){
return
c
ertUtil
.
getEncryptCert
().
certId
;
}
/**
* 获取敏感信息加密证书的物理序列号<br>
* @return
*/
public
static
String
getPinEncryptCertId
(){
return
C
ertUtil
.
getPinEncryptCert
().
certId
;
public
String
getPinEncryptCertId
(){
return
c
ertUtil
.
getPinEncryptCert
().
certId
;
}
...
...
@@ -207,13 +217,13 @@ public class Acp6Service {
* @param encoding<br>
* @return 应答http 200返回true ,其他false<br>
*/
public
static
Map
<
String
,
String
>
post
(
Map
<
String
,
String
>
reqData
,
String
reqUrl
,
String
encoding
)
{
public
Map
<
String
,
String
>
post
(
Map
<
String
,
String
>
reqData
,
String
reqUrl
,
String
encoding
)
{
if
(
reqData
==
null
||
reqUrl
==
null
)
{
log
.
error
(
"null input"
);
return
null
;
}
log
.
info
(
"请求银联地址:"
+
reqUrl
+
",请求参数:"
+
reqData
.
toString
());
if
(
reqUrl
.
startsWith
(
"https://"
)
&&
!
SDKConfig
.
getConfig
()
.
isIfValidateRemoteCert
())
{
if
(
reqUrl
.
startsWith
(
"https://"
)
&&
!
sdkConfig
.
isIfValidateRemoteCert
())
{
reqUrl
=
"u"
+
reqUrl
;
}
try
{
...
...
@@ -238,13 +248,13 @@ public class Acp6Service {
* @param encoding<br>
* @return 应答http 200返回true ,其他false<br>
*/
public
static
String
postNotice
(
Map
<
String
,
String
>
reqData
,
String
reqUrl
,
String
encoding
)
{
public
String
postNotice
(
Map
<
String
,
String
>
reqData
,
String
reqUrl
,
String
encoding
)
{
if
(
reqData
==
null
||
reqUrl
==
null
)
{
log
.
error
(
"null input"
);
return
null
;
}
log
.
info
(
"请求银联地址:"
+
reqUrl
+
",请求参数:"
+
reqData
.
toString
());
if
(
reqUrl
.
startsWith
(
"https://"
)
&&
!
SDKConfig
.
getConfig
()
.
isIfValidateRemoteCert
())
{
if
(
reqUrl
.
startsWith
(
"https://"
)
&&
!
sdkConfig
.
isIfValidateRemoteCert
())
{
reqUrl
=
"u"
+
reqUrl
;
}
try
{
...
...
@@ -269,7 +279,7 @@ public class Acp6Service {
* @return<br>
* @throws IOException
*/
public
static
String
base64Encode
(
String
rawStr
,
String
encoding
){
public
String
base64Encode
(
String
rawStr
,
String
encoding
){
return
AcpService
.
base64Encode
(
rawStr
,
encoding
);
}
...
...
@@ -280,7 +290,7 @@ public class Acp6Service {
* @return<br>
* @throws IOException
*/
public
static
String
base64Decode
(
String
base64Str
,
String
encoding
){
public
String
base64Decode
(
String
base64Str
,
String
encoding
){
return
AcpService
.
base64Decode
(
base64Str
,
encoding
);
}
}
liquidnet-bus-service/liquidnet-service-dragon/liquidnet-service-dragon-impl/src/main/java/com/liquidnet/service/dragon/channel/unionpay/sdk/AcpService.java
View file @
cb347737
This diff is collapsed.
Click to expand it.
liquidnet-bus-service/liquidnet-service-dragon/liquidnet-service-dragon-impl/src/main/java/com/liquidnet/service/dragon/channel/unionpay/sdk/CertUtil.java
View file @
cb347737
This diff is collapsed.
Click to expand it.
liquidnet-bus-service/liquidnet-service-dragon/liquidnet-service-dragon-impl/src/main/java/com/liquidnet/service/dragon/channel/unionpay/sdk/QrcService.java
View file @
cb347737
...
...
@@ -2,6 +2,8 @@ package com.liquidnet.service.dragon.channel.unionpay.sdk;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.codec.binary.Base64
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
java.io.IOException
;
import
java.nio.charset.Charset
;
...
...
@@ -16,8 +18,13 @@ import static com.liquidnet.service.dragon.channel.unionpay.sdk.SDKConstants.*;
* @date 2018-12-10 下午2:44:37
*/
@Slf4j
@Component
public
class
QrcService
{
@Autowired
private
SDKConfig
sdkConfig
;
@Autowired
private
CertUtil
certUtil
;
/**
* 请求报文签名(使用配置文件中配置的私钥证书或者对称密钥签名)<br>
* 功能:对请求报文进行签名,并计算赋值certid,signature字段并返回<br>
...
...
@@ -25,8 +32,8 @@ public class QrcService {
* @param encoding 上送请求报文域encoding字段的值<br>
* @return 签名后的map对象<br>
*/
public
static
Map
<
String
,
String
>
sign
(
Map
<
String
,
String
>
reqData
,
String
encoding
)
{
return
signByCertInfo
(
reqData
,
SDKConfig
.
getConfig
().
getSignCertPath
(),
SDKConfig
.
getConfig
()
.
getSignCertPwd
(),
encoding
);
public
Map
<
String
,
String
>
sign
(
Map
<
String
,
String
>
reqData
,
String
encoding
)
{
return
signByCertInfo
(
reqData
,
sdkConfig
.
getSignCertPath
(),
sdkConfig
.
getSignCertPwd
(),
encoding
);
}
/**
...
...
@@ -38,7 +45,7 @@ public class QrcService {
* @param encoding 上送请求报文域encoding字段的值<br>
* @return 签名后的map对象<br>
*/
public
static
Map
<
String
,
String
>
signByCertInfo
(
Map
<
String
,
String
>
reqData
,
String
certPath
,
public
Map
<
String
,
String
>
signByCertInfo
(
Map
<
String
,
String
>
reqData
,
String
certPath
,
String
certPwd
,
String
encoding
)
{
Map
<
String
,
String
>
data
=
SDKUtil
.
filterBlank
(
reqData
);
...
...
@@ -65,11 +72,11 @@ public class QrcService {
if
(
QRC_SIGNTYPE_SHA256WITHRSA
.
equals
(
signType
)
||
"0420000903"
.
equals
(
reqType
)
||
"0410000903"
.
equals
(
reqType
))
{
data
.
put
(
SDKConstants
.
param_certId
,
C
ertUtil
.
getCertIdByKeyStoreMap
(
certPath
,
certPwd
));
data
.
put
(
SDKConstants
.
param_certId
,
c
ertUtil
.
getCertIdByKeyStoreMap
(
certPath
,
certPwd
));
data
.
put
(
SDKConstants
.
param_signature
,
SDKUtil
.
signRsa2
(
data
,
certPath
,
certPwd
,
encoding
));
return
data
;
}
else
if
(
QRC_SIGNTYPE_SHA1WITHRSA
.
equals
(
signType
))
{
data
.
put
(
SDKConstants
.
param_certId
,
C
ertUtil
.
getCertIdByKeyStoreMap
(
certPath
,
certPwd
));
data
.
put
(
SDKConstants
.
param_certId
,
c
ertUtil
.
getCertIdByKeyStoreMap
(
certPath
,
certPwd
));
data
.
put
(
SDKConstants
.
param_signature
,
SDKUtil
.
signRsa
(
data
,
certPath
,
certPwd
,
encoding
));
return
data
;
}
else
if
(
QRC_SIGNTYPE_SM3WITHSM2
.
equals
(
signType
))
{
...
...
@@ -91,14 +98,14 @@ public class QrcService {
* @param encoding 上送请求报文域encoding字段的值<br>
* @return true 通过 false 未通过<br>
*/
public
static
boolean
validate
(
Map
<
String
,
String
>
resData
,
String
encoding
)
{
public
boolean
validate
(
Map
<
String
,
String
>
resData
,
String
encoding
)
{
log
.
info
(
"验签处理开始"
);
if
(
SDKUtil
.
isEmpty
(
encoding
))
{
encoding
=
"UTF-8"
;
}
String
certId
=
resData
.
get
(
SDKConstants
.
param_certId
);
log
.
info
(
"对返回报文串验签使用的验签公钥序列号:["
+
certId
+
"]"
);
PublicKey
verifyKey
=
C
ertUtil
.
getValidatePublicKey
(
certId
);
PublicKey
verifyKey
=
c
ertUtil
.
getValidatePublicKey
(
certId
);
if
(
verifyKey
==
null
)
{
log
.
error
(
"未找到此序列号证书。"
);
return
false
;
...
...
@@ -185,8 +192,8 @@ public class QrcService {
* 获取敏感信息加密证书的物理序列号<br>
* @return
*/
public
static
String
getEncryptCertId
(){
return
C
ertUtil
.
getEncryptCert
().
certId
;
public
String
getEncryptCertId
(){
return
c
ertUtil
.
getEncryptCert
().
certId
;
}
/**
...
...
liquidnet-bus-service/liquidnet-service-dragon/liquidnet-service-dragon-impl/src/main/java/com/liquidnet/service/dragon/channel/unionpay/sdk/SDKConfig.java
View file @
cb347737
This diff is collapsed.
Click to expand it.
liquidnet-bus-service/liquidnet-service-dragon/liquidnet-service-dragon-impl/src/main/java/com/liquidnet/service/dragon/channel/unionpay/sdk/SDKUtil.java
View file @
cb347737
...
...
@@ -19,6 +19,8 @@ import lombok.extern.slf4j.Slf4j;
import
org.apache.commons.codec.DecoderException
;
import
org.apache.commons.codec.binary.Base64
;
import
org.apache.commons.codec.binary.Hex
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
java.io.ByteArrayOutputStream
;
import
java.io.IOException
;
...
...
@@ -39,8 +41,10 @@ import static com.liquidnet.service.dragon.channel.unionpay.sdk.SDKConstants.*;
* @date 2016-7-22 下午4:06:18
*/
@Slf4j
@Component
public
class
SDKUtil
{
@Autowired
private
CertUtil
certUtil
;
/**
* 全渠道5.0、二维码signType=01用。
* 1. 按ascii排序。【注意不是字母顺序】
...
...
@@ -55,14 +59,14 @@ public class SDKUtil {
* @param encoding
* @return
*/
public
static
String
signRsa
(
Map
<
String
,
String
>
data
,
String
certPath
,
String
certPwd
,
String
encoding
)
{
public
String
signRsa
(
Map
<
String
,
String
>
data
,
String
certPath
,
String
certPwd
,
String
encoding
)
{
try
{
String
stringData
=
createLinkString
(
data
,
true
,
false
,
encoding
);
log
.
info
(
"打印排序后待签名请求报文串(交易返回11验证签名失败时可以用来同正确的进行比对):["
+
stringData
+
"]"
);
byte
[]
sha1
=
SecureUtil
.
sha1
(
stringData
.
getBytes
(
encoding
));
String
sha1Hex
=
byteArrayToHexString
(
sha1
).
toLowerCase
();
log
.
info
(
"sha1结果(交易返回11验证签名失败可以用来同正确的进行比对):["
+
sha1Hex
+
"]"
);
return
Base64
.
encodeBase64String
(
SecureUtil
.
getSignature
(
C
ertUtil
.
getSignCertPrivateKeyByStoreMap
(
certPath
,
certPwd
),
sha1Hex
.
getBytes
()));
return
Base64
.
encodeBase64String
(
SecureUtil
.
getSignature
(
c
ertUtil
.
getSignCertPrivateKeyByStoreMap
(
certPath
,
certPwd
),
sha1Hex
.
getBytes
()));
}
catch
(
Exception
e
)
{
log
.
error
(
"calcSignRsa Error"
,
e
);
return
null
;
...
...
@@ -83,14 +87,14 @@ public class SDKUtil {
* @param encoding
* @return
*/
public
static
String
signRsa2
(
Map
<
String
,
String
>
data
,
String
certPath
,
String
certPwd
,
String
encoding
)
{
public
String
signRsa2
(
Map
<
String
,
String
>
data
,
String
certPath
,
String
certPwd
,
String
encoding
)
{
try
{
String
stringData
=
createLinkString
(
data
,
true
,
false
,
encoding
);
log
.
info
(
"打印排序后待签名请求报文串(交易返回11验证签名失败时可以用来同正确的进行比对):["
+
stringData
+
"]"
);
byte
[]
sha256
=
SecureUtil
.
sha256
(
stringData
.
getBytes
(
encoding
));
String
sha256Hex
=
byteArrayToHexString
(
sha256
).
toLowerCase
();
log
.
info
(
"sha256(交易返回11验证签名失败可以用来同正确的进行比对):["
+
sha256Hex
+
"]"
);
return
Base64
.
encodeBase64String
(
SecureUtil
.
getSignatureSHA256
(
C
ertUtil
.
getSignCertPrivateKeyByStoreMap
(
certPath
,
certPwd
),
sha256Hex
.
getBytes
()));
return
Base64
.
encodeBase64String
(
SecureUtil
.
getSignatureSHA256
(
c
ertUtil
.
getSignCertPrivateKeyByStoreMap
(
certPath
,
certPwd
),
sha256Hex
.
getBytes
()));
}
catch
(
Exception
e
)
{
log
.
error
(
"calcSignRsa2 Error"
,
e
);
return
null
;
...
...
@@ -426,15 +430,15 @@ public class SDKUtil {
* @param certType
* @return
*/
public
static
int
updateEncryptCert
(
String
strCert
,
String
certType
)
{
public
int
updateEncryptCert
(
String
strCert
,
String
certType
)
{
if
(
isEmpty
(
strCert
)
||
isEmpty
(
certType
))
return
-
1
;
if
(
CERTTYPE_01
.
equals
(
certType
))
{
// 更新敏感信息加密公钥
return
C
ertUtil
.
resetEncryptCertPublicKey
(
strCert
);
return
c
ertUtil
.
resetEncryptCertPublicKey
(
strCert
);
}
else
if
(
CERTTYPE_02
.
equals
(
certType
))
{
// 更新pin敏感信息加密公钥
return
C
ertUtil
.
resetPinEncryptCertPublicKey
(
strCert
);
return
c
ertUtil
.
resetPinEncryptCertPublicKey
(
strCert
);
}
else
{
log
.
info
(
"unknown cerType:"
+
certType
);
return
-
1
;
...
...
liquidnet-bus-service/liquidnet-service-dragon/liquidnet-service-dragon-impl/src/main/java/com/liquidnet/service/dragon/channel/unionpay/sdk/SecureUtil.java
View file @
cb347737
liquidnet-bus-service/liquidnet-service-dragon/liquidnet-service-dragon-impl/src/test/java/com/liquidnet/service/TestSdkConfig.java
0 → 100644
View file @
cb347737
package
com
.
liquidnet
.
service
;
import
com.liquidnet.service.dragon.channel.unionpay.sdk.SDKConfig
;
import
lombok.extern.slf4j.Slf4j
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.test.context.junit4.SpringJUnit4ClassRunner
;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: TestSdkConfig
* @Package com.liquidnet.service
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/11/9 10:57
*/
@Slf4j
@RunWith
(
SpringJUnit4ClassRunner
.
class
)
@SpringBootTest
public
class
TestSdkConfig
{
@Autowired
private
SDKConfig
sdkConfig
;
@Test
public
void
pringSdkConfigInfo
(){
System
.
out
.
println
(
sdkConfig
.
getFileTransUrl
());
System
.
out
.
println
(
sdkConfig
.
getSignCertPath
());
System
.
out
.
println
(
sdkConfig
.
getSignCertPwd
());
System
.
out
.
println
(
sdkConfig
.
getSignCertType
());
System
.
out
.
println
(
sdkConfig
.
getEncryptCertPath
());
System
.
out
.
println
(
sdkConfig
.
getMiddleCertPath
());
System
.
out
.
println
(
sdkConfig
.
getRootCertPath
());
}
}
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