13
13
import com .alipay .global .api .request .ams .risk .tee .enums .EncryptKeyEnum ;
14
14
import com .alipay .global .api .request .ams .risk .tee .enums .ErrorCodeEnum ;
15
15
import com .alipay .global .api .request .ams .risk .tee .exception .CryptoException ;
16
-
17
- import java .nio .charset .StandardCharsets ;
18
- import java .util .Base64 ;
16
+ import javax .xml .bind .DatatypeConverter ;
17
+ import java .nio .charset .Charset ;
19
18
import java .util .List ;
20
19
21
20
/**
22
21
* request encrypt strategy for risk decide API
23
22
* risk decide API 的请求加密策略
24
23
*/
25
24
public class RiskDecideEncryptStrategy implements EncryptStrategy {
25
+
26
+ Charset utf8Charset = Charset .forName ("UTF-8" );
27
+
26
28
@ Override
27
29
public void encrypt (byte [] data_key , AlipayRequest <?> request , List <EncryptKeyEnum > encryptKeyList ) {
28
30
if (request == null || encryptKeyList == null ) {
@@ -38,7 +40,7 @@ public void encrypt(byte[] data_key, AlipayRequest<?> request, List<EncryptKeyEn
38
40
39
41
@ Override
40
42
public void encrypt (String dataKeyBase64 , AlipayRequest <?> request , List <EncryptKeyEnum > encryptKeyList ) {
41
- encrypt (Base64 . getDecoder (). decode (dataKeyBase64 ), request , encryptKeyList );
43
+ encrypt (DatatypeConverter . parseBase64Binary (dataKeyBase64 ), request , encryptKeyList );
42
44
}
43
45
44
46
/**
@@ -64,24 +66,24 @@ private void doEncrypt(byte[] data_key, RiskDecideRequest request, List<EncryptK
64
66
if (buyerEmail == null || buyerEmail .isEmpty ()) {
65
67
continue ;
66
68
}
67
- encrypt = crypto .encrypt (data_key , buyerEmail .getBytes (StandardCharsets . UTF_8 ));
68
- request .getBuyer ().setBuyerEmail (Base64 . getEncoder (). encodeToString (encrypt ));
69
+ encrypt = crypto .encrypt (data_key , buyerEmail .getBytes (utf8Charset ));
70
+ request .getBuyer ().setBuyerEmail (DatatypeConverter . printBase64Binary (encrypt ));
69
71
break ;
70
72
case BUYER_PHONE_NO :
71
73
String buyerPhoneNo = request .getBuyer ().getBuyerPhoneNo ();
72
74
if (buyerPhoneNo == null || buyerPhoneNo .isEmpty ()) {
73
75
continue ;
74
76
}
75
- encrypt = crypto .encrypt (data_key , buyerPhoneNo .getBytes (StandardCharsets . UTF_8 ));
76
- request .getBuyer ().setBuyerPhoneNo (Base64 . getEncoder (). encodeToString (encrypt ));
77
+ encrypt = crypto .encrypt (data_key , buyerPhoneNo .getBytes (utf8Charset ));
78
+ request .getBuyer ().setBuyerPhoneNo (DatatypeConverter . printBase64Binary (encrypt ));
77
79
break ;
78
80
case BUYER_REGISTRATION_TIME :
79
81
String buyerRegistrationTime = request .getBuyer ().getBuyerRegistrationTime ();
80
82
if (buyerRegistrationTime == null || buyerRegistrationTime .isEmpty ()) {
81
83
continue ;
82
84
}
83
- encrypt = crypto .encrypt (data_key , buyerRegistrationTime .getBytes (StandardCharsets . UTF_8 ));
84
- request .getBuyer ().setBuyerRegistrationTime (Base64 . getEncoder (). encodeToString (encrypt ));
85
+ encrypt = crypto .encrypt (data_key , buyerRegistrationTime .getBytes (utf8Charset ));
86
+ request .getBuyer ().setBuyerRegistrationTime (DatatypeConverter . printBase64Binary (encrypt ));
85
87
break ;
86
88
case BILL_TO_NAME :
87
89
for (PaymentDetail paymentDetail : paymentDetails ) {
@@ -94,8 +96,8 @@ private void doEncrypt(byte[] data_key, RiskDecideRequest request, List<EncryptK
94
96
if (address1 == null || address1 .isEmpty ()) {
95
97
continue ;
96
98
}
97
- encrypt = crypto .encrypt (data_key , address1 .getBytes (StandardCharsets . UTF_8 ));
98
- order .getShipping ().getShippingAddress ().setAddress1 (Base64 . getEncoder (). encodeToString (encrypt ));
99
+ encrypt = crypto .encrypt (data_key , address1 .getBytes (utf8Charset ));
100
+ order .getShipping ().getShippingAddress ().setAddress1 (DatatypeConverter . printBase64Binary (encrypt ));
99
101
}
100
102
break ;
101
103
case SHIPPING_ADDRESS2 :
@@ -104,8 +106,8 @@ private void doEncrypt(byte[] data_key, RiskDecideRequest request, List<EncryptK
104
106
if (address2 == null || address2 .isEmpty ()) {
105
107
continue ;
106
108
}
107
- encrypt = crypto .encrypt (data_key , address2 .getBytes (StandardCharsets . UTF_8 ));
108
- order .getShipping ().getShippingAddress ().setAddress2 (Base64 . getEncoder (). encodeToString (encrypt ));
109
+ encrypt = crypto .encrypt (data_key , address2 .getBytes (utf8Charset ));
110
+ order .getShipping ().getShippingAddress ().setAddress2 (DatatypeConverter . printBase64Binary (encrypt ));
109
111
}
110
112
break ;
111
113
case SHIPPING_NAME :
@@ -119,8 +121,8 @@ private void doEncrypt(byte[] data_key, RiskDecideRequest request, List<EncryptK
119
121
if (email == null || email .isEmpty ()) {
120
122
continue ;
121
123
}
122
- encrypt = crypto .encrypt (data_key , email .getBytes (StandardCharsets . UTF_8 ));
123
- order .getShipping ().setShipToEmail (Base64 . getEncoder (). encodeToString (encrypt ));
124
+ encrypt = crypto .encrypt (data_key , email .getBytes (utf8Charset ));
125
+ order .getShipping ().setShipToEmail (DatatypeConverter . printBase64Binary (encrypt ));
124
126
}
125
127
break ;
126
128
case SHIPPING_PHONE_NO :
@@ -129,8 +131,8 @@ private void doEncrypt(byte[] data_key, RiskDecideRequest request, List<EncryptK
129
131
if (phoneNo == null || phoneNo .isEmpty ()) {
130
132
continue ;
131
133
}
132
- encrypt = crypto .encrypt (data_key , phoneNo .getBytes (StandardCharsets . UTF_8 ));
133
- order .getShipping ().setShippingPhoneNo (Base64 . getEncoder (). encodeToString (encrypt ));
134
+ encrypt = crypto .encrypt (data_key , phoneNo .getBytes (utf8Charset ));
135
+ order .getShipping ().setShippingPhoneNo (DatatypeConverter . printBase64Binary (encrypt ));
134
136
}
135
137
break ;
136
138
default :
@@ -151,20 +153,20 @@ private void encryptName(byte[] data_key, UserName userName, AESCrypto crypto) {
151
153
return ;
152
154
}
153
155
if (userName .getFirstName () != null && !userName .getFirstName ().isEmpty ()) {
154
- userName .setFirstName (Base64 . getEncoder (). encodeToString (
155
- crypto .encrypt (data_key , userName .getFirstName ().getBytes (StandardCharsets . UTF_8 ))));
156
+ userName .setFirstName (DatatypeConverter . printBase64Binary (
157
+ crypto .encrypt (data_key , userName .getFirstName ().getBytes (utf8Charset ))));
156
158
}
157
159
if (userName .getMiddleName () != null && !userName .getMiddleName ().isEmpty ()) {
158
- userName .setMiddleName (Base64 . getEncoder (). encodeToString (
159
- crypto .encrypt (data_key , userName .getMiddleName ().getBytes (StandardCharsets . UTF_8 ))));
160
+ userName .setMiddleName (DatatypeConverter . printBase64Binary (
161
+ crypto .encrypt (data_key , userName .getMiddleName ().getBytes (utf8Charset ))));
160
162
}
161
163
if (userName .getLastName () != null && !userName .getLastName ().isEmpty ()) {
162
- userName .setLastName (Base64 . getEncoder (). encodeToString (
163
- crypto .encrypt (data_key , userName .getLastName ().getBytes (StandardCharsets . UTF_8 ))));
164
+ userName .setLastName (DatatypeConverter . printBase64Binary (
165
+ crypto .encrypt (data_key , userName .getLastName ().getBytes (utf8Charset ))));
164
166
}
165
167
if (userName .getFullName () != null && !userName .getFullName ().isEmpty ()) {
166
- userName .setFullName (Base64 . getEncoder (). encodeToString (
167
- crypto .encrypt (data_key , userName .getFullName ().getBytes (StandardCharsets . UTF_8 ))));
168
+ userName .setFullName (DatatypeConverter . printBase64Binary (
169
+ crypto .encrypt (data_key , userName .getFullName ().getBytes (utf8Charset ))));
168
170
}
169
171
}
170
172
}
0 commit comments