Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
jinli gu
Litemall
Commits
ea111921
Commit
ea111921
authored
Jul 20, 2018
by
Junling Bu
Browse files
chore[litemall-core]: 采用spring的Base64Util来简化ExpressService代码
parent
c28573c8
Changes
2
Hide whitespace changes
Inline
Side-by-side
litemall-core/src/main/java/org/linlinjava/litemall/core/express/ExpressService.java
View file @
ea111921
package
org.linlinjava.litemall.core.express
;
import
org.linlinjava.litemall.core.express.config.ExpressConfig
;
import
org.linlinjava.litemall.core.util.
TinymallRequest
Util
;
import
org.linlinjava.litemall.core.util.
Http
Util
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.Base64Utils
;
import
java.io.UnsupportedEncodingException
;
import
java.net.URLEncoder
;
...
...
@@ -47,14 +48,14 @@ public class ExpressService {
String
requestData
=
"{'OrderCode':'','ShipperCode':'"
+
expCode
+
"','LogisticCode':'"
+
expNo
+
"'}"
;
Map
<
String
,
String
>
params
=
new
HashMap
<
String
,
String
>();
params
.
put
(
"RequestData"
,
url
Encoder
(
requestData
,
"UTF-8"
));
params
.
put
(
"RequestData"
,
URL
Encoder
.
encode
(
requestData
,
"UTF-8"
));
params
.
put
(
"EBusinessID"
,
config
.
getAppId
());
params
.
put
(
"RequestType"
,
"1002"
);
String
dataSign
=
encrypt
(
requestData
,
config
.
getAppKey
(),
"UTF-8"
);
params
.
put
(
"DataSign"
,
url
Encoder
(
dataSign
,
"UTF-8"
));
params
.
put
(
"DataSign"
,
URL
Encoder
.
encode
(
dataSign
,
"UTF-8"
));
params
.
put
(
"DataType"
,
"2"
);
String
result
=
TinymallRequest
Util
.
sendPost
(
ReqURL
,
params
);
String
result
=
Http
Util
.
sendPost
(
ReqURL
,
params
);
//根据公司业务处理返回的信息......
...
...
@@ -68,7 +69,6 @@ public class ExpressService {
* @param charset 编码方式
* @throws Exception
*/
@SuppressWarnings
(
"unused"
)
private
String
MD5
(
String
str
,
String
charset
)
throws
Exception
{
MessageDigest
md
=
MessageDigest
.
getInstance
(
"MD5"
);
md
.
update
(
str
.
getBytes
(
charset
));
...
...
@@ -85,77 +85,27 @@ public class ExpressService {
}
/**
* base64编码
*
* @param str 内容
* @param charset 编码方式
* @throws UnsupportedEncodingException
*/
private
String
base64
(
String
str
,
String
charset
)
throws
UnsupportedEncodingException
{
String
encoded
=
base64Encode
(
str
.
getBytes
(
charset
));
return
encoded
;
}
@SuppressWarnings
(
"unused"
)
private
String
urlEncoder
(
String
str
,
String
charset
)
throws
UnsupportedEncodingException
{
String
result
=
URLEncoder
.
encode
(
str
,
charset
);
return
result
;
}
/**
* 电商Sign签名生成
* Sign签名生成
*
* @param content 内容
* @param keyValue Appkey
* @param charset 编码方式
* @return DataSign签名
* @throws UnsupportedEncodingException ,Exception
*/
@SuppressWarnings
(
"unused"
)
private
String
encrypt
(
String
content
,
String
keyValue
,
String
charset
)
throws
UnsupportedEncodingException
,
Exception
{
private
String
encrypt
(
String
content
,
String
keyValue
,
String
charset
)
{
if
(
keyValue
!=
null
)
{
return
base64
(
MD5
(
content
+
keyValue
,
charset
),
charset
);
content
=
content
+
keyValue
;
}
byte
[]
src
=
new
byte
[
0
];
try
{
src
=
MD5
(
content
,
charset
).
getBytes
(
charset
);
return
Base64Utils
.
encodeToString
(
src
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
base64
(
MD5
(
content
,
charset
),
charset
);
return
null
;
}
private
static
char
[]
base64EncodeChars
=
new
char
[]{
'A'
,
'B'
,
'C'
,
'D'
,
'E'
,
'F'
,
'G'
,
'H'
,
'I'
,
'J'
,
'K'
,
'L'
,
'M'
,
'N'
,
'O'
,
'P'
,
'Q'
,
'R'
,
'S'
,
'T'
,
'U'
,
'V'
,
'W'
,
'X'
,
'Y'
,
'Z'
,
'a'
,
'b'
,
'c'
,
'd'
,
'e'
,
'f'
,
'g'
,
'h'
,
'i'
,
'j'
,
'k'
,
'l'
,
'm'
,
'n'
,
'o'
,
'p'
,
'q'
,
'r'
,
's'
,
't'
,
'u'
,
'v'
,
'w'
,
'x'
,
'y'
,
'z'
,
'0'
,
'1'
,
'2'
,
'3'
,
'4'
,
'5'
,
'6'
,
'7'
,
'8'
,
'9'
,
'+'
,
'/'
};
private
static
String
base64Encode
(
byte
[]
data
)
{
StringBuffer
sb
=
new
StringBuffer
();
int
len
=
data
.
length
;
int
i
=
0
;
int
b1
,
b2
,
b3
;
while
(
i
<
len
)
{
b1
=
data
[
i
++]
&
0xff
;
if
(
i
==
len
)
{
sb
.
append
(
base64EncodeChars
[
b1
>>>
2
]);
sb
.
append
(
base64EncodeChars
[(
b1
&
0x3
)
<<
4
]);
sb
.
append
(
"=="
);
break
;
}
b2
=
data
[
i
++]
&
0xff
;
if
(
i
==
len
)
{
sb
.
append
(
base64EncodeChars
[
b1
>>>
2
]);
sb
.
append
(
base64EncodeChars
[((
b1
&
0x03
)
<<
4
)
|
((
b2
&
0xf0
)
>>>
4
)]);
sb
.
append
(
base64EncodeChars
[(
b2
&
0x0f
)
<<
2
]);
sb
.
append
(
"="
);
break
;
}
b3
=
data
[
i
++]
&
0xff
;
sb
.
append
(
base64EncodeChars
[
b1
>>>
2
]);
sb
.
append
(
base64EncodeChars
[((
b1
&
0x03
)
<<
4
)
|
((
b2
&
0xf0
)
>>>
4
)]);
sb
.
append
(
base64EncodeChars
[((
b2
&
0x0f
)
<<
2
)
|
((
b3
&
0xc0
)
>>>
6
)]);
sb
.
append
(
base64EncodeChars
[
b3
&
0x3f
]);
}
return
sb
.
toString
();
}
}
litemall-core/src/main/java/org/linlinjava/litemall/core/util/
TinymallRequest
Util.java
→
litemall-core/src/main/java/org/linlinjava/litemall/core/util/
Http
Util.java
View file @
ea111921
...
...
@@ -13,7 +13,7 @@ import java.util.Map;
*
* @return 远程资源的响应结果
*/
public
class
TinymallRequest
Util
{
public
class
Http
Util
{
/**
* 向指定 URL 发送POST方法的请求
*
...
...
Write
Preview
Supports
Markdown
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