记得上下班打卡 | 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
40a55456
Commit
40a55456
authored
Mar 17, 2026
by
wangyifan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
收钱吧签名
parent
4db531cf
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
61 additions
and
63 deletions
+61
-63
ShouQianBaConstants.java
.../service/goblin/param/shouqianba/ShouQianBaConstants.java
+0
-39
GoblinShouQianBaServiceImpl.java
...vice/goblin/service/impl/GoblinShouQianBaServiceImpl.java
+61
-24
No files found.
liquidnet-bus-api/liquidnet-service-goblin-api/src/main/java/com/liquidnet/service/goblin/param/shouqianba/ShouQianBaConstants.java
deleted
100644 → 0
View file @
4db531cf
package
com
.
liquidnet
.
service
.
goblin
.
param
.
shouqianba
;
/**
* 收钱吧接口常量配置
*
* @author liquidnet
* @since 2026-03-16
*/
public
class
ShouQianBaConstants
{
/**
* 收钱吧接口基础域名(TODO: 后续由配置文件统一管理)
*/
public
static
final
String
BASE_API
=
"https://api.shouqianba.com"
;
// ==================== API 路径 ====================
/**
* 创建结算明细 接口路径
*/
public
static
final
String
API_SETTLEMENT_CREATE
=
BASE_API
+
"/settlement/create"
;
// ==================== 通用常量 ====================
/**
* 响应成功业务码
*/
public
static
final
String
RESPONSE_SUCCESS_CODE
=
"200"
;
/**
* 响应成功标识
*/
public
static
final
Boolean
RESPONSE_SUCCESS
=
Boolean
.
TRUE
;
/**
* 请求内容类型
*/
public
static
final
String
CONTENT_TYPE_JSON
=
"application/json;charset=UTF-8"
;
}
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/main/java/com/liquidnet/service/goblin/service/impl/GoblinShouQianBaServiceImpl.java
View file @
40a55456
package
com
.
liquidnet
.
service
.
goblin
.
service
.
impl
;
package
com
.
liquidnet
.
service
.
goblin
.
service
.
impl
;
import
com.fasterxml.jackson.core.type.TypeReference
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.liquidnet.service.goblin.param.shouqianba.*
;
import
com.liquidnet.commons.lang.util.HttpUtil
;
import
com.liquidnet.service.goblin.param.shouqianba.response.data.CashierQueryData
;
import
com.liquidnet.commons.lang.util.MD5Utils
;
import
com.liquidnet.service.goblin.param.shouqianba.response.data.OrderCreateData
;
import
com.liquidnet.service.goblin.param.shouqianba.response.data.SettlementCreateData
;
import
com.liquidnet.service.goblin.param.shouqianba.request.CashierQueryRequest
;
import
com.liquidnet.service.goblin.param.shouqianba.request.CashierQueryRequest
;
import
com.liquidnet.service.goblin.param.shouqianba.request.OrderCreateRequest
;
import
com.liquidnet.service.goblin.param.shouqianba.request.OrderCreateRequest
;
import
com.liquidnet.service.goblin.param.shouqianba.request.SettlementCreateRequest
;
import
com.liquidnet.service.goblin.param.shouqianba.request.SettlementCreateRequest
;
import
com.liquidnet.service.goblin.param.shouqianba.response.SettlementCreateResponse
;
import
com.liquidnet.service.goblin.param.shouqianba.response.SettlementCreateResponse
;
import
com.liquidnet.service.goblin.param.shouqianba.response.data.CashierQueryData
;
import
com.liquidnet.service.goblin.param.shouqianba.response.data.OrderCreateData
;
import
com.liquidnet.service.goblin.param.shouqianba.response.data.SettlementCreateData
;
import
com.liquidnet.service.goblin.service.IGoblinShouQianBaService
;
import
com.liquidnet.service.goblin.service.IGoblinShouQianBaService
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.http.HttpEntity
;
import
org.apache.http.HttpStatus
;
import
org.apache.http.client.methods.CloseableHttpResponse
;
import
org.apache.http.client.methods.HttpPost
;
import
org.apache.http.entity.StringEntity
;
import
org.apache.http.impl.client.CloseableHttpClient
;
import
org.apache.http.impl.client.HttpClients
;
import
org.apache.http.util.EntityUtils
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.LinkedMultiValueMap
;
import
org.springframework.util.MultiValueMap
;
import
java.
io.IOException
;
import
java.
util.TreeMap
;
/**
/**
* 收钱吧对接实现类
* 收钱吧对接实现类
...
@@ -35,6 +31,11 @@ public class GoblinShouQianBaServiceImpl implements IGoblinShouQianBaService {
...
@@ -35,6 +31,11 @@ public class GoblinShouQianBaServiceImpl implements IGoblinShouQianBaService {
private
static
final
ObjectMapper
objectMapper
=
new
ObjectMapper
();
private
static
final
ObjectMapper
objectMapper
=
new
ObjectMapper
();
// TODO: 先写固定常量,后期可配置文件化
public
static
final
String
BASE_API
=
"https://api.shouqianba.com"
;
private
static
final
String
APPID
=
"test_appid"
;
private
static
final
String
APPKEY
=
"test_appkey"
;
/**
/**
* 创建结算明细
* 创建结算明细
*
*
...
@@ -43,17 +44,39 @@ public class GoblinShouQianBaServiceImpl implements IGoblinShouQianBaService {
...
@@ -43,17 +44,39 @@ public class GoblinShouQianBaServiceImpl implements IGoblinShouQianBaService {
*/
*/
@Override
@Override
public
SettlementCreateData
createSettlement
(
SettlementCreateRequest
request
)
{
public
SettlementCreateData
createSettlement
(
SettlementCreateRequest
request
)
{
// String url = ShouQianBaConstants.API_SETTLEMENT_CREATE;
final
String
url
=
BASE_API
+
"/optimus/core/mall/createPreOrder"
;
// log.info("[收钱吧] 创建结算明细 请求URL: {}, 请求参数: {}", url, request);
log
.
info
(
"[收钱吧] 创建结算明细, 请求URL: {}, 请求参数: {}"
,
url
,
request
);
//
// try {
try
{
//
// body进行序列化成TreeMap以后 最后转成json(为了排序稳定)
//
TreeMap
<
String
,
Object
>
map
=
objectMapper
.
convertValue
(
// } catch (Exception e) {
request
,
// log.error("[收钱吧] 创建结算明细 发生异常,请求参数: {}", request, e);
new
TypeReference
<
TreeMap
<
String
,
Object
>>()
{
// return null;
}
// }
);
return
null
;
String
requestBody
=
objectMapper
.
writeValueAsString
(
map
);
// 构建请求头(添加签名参数)
MultiValueMap
<
String
,
String
>
headers
=
new
LinkedMultiValueMap
<>();
headers
.
add
(
"Authorization"
,
getSign
(
requestBody
));
String
responseStr
=
HttpUtil
.
postJson
(
url
,
requestBody
,
headers
);
log
.
info
(
"[收钱吧] 创建结算明细, 响应体: {}"
,
responseStr
);
// 转换响应报文
SettlementCreateResponse
response
=
objectMapper
.
readValue
(
responseStr
,
SettlementCreateResponse
.
class
);
if
(
response
!=
null
&&
Boolean
.
TRUE
.
equals
(
response
.
getSuccess
()))
{
return
response
.
getData
();
}
else
{
log
.
error
(
"[收钱吧] 创建结算明细业务失败, code: {}, msg: {}"
,
response
!=
null
?
response
.
getCode
()
:
"null"
,
response
!=
null
?
response
.
getMsg
()
:
"null"
);
return
null
;
}
}
catch
(
Exception
e
)
{
log
.
error
(
"[收钱吧] 创建结算明细发生异常, 请求参数: {}"
,
request
,
e
);
return
null
;
}
}
}
@Override
@Override
...
@@ -67,4 +90,18 @@ public class GoblinShouQianBaServiceImpl implements IGoblinShouQianBaService {
...
@@ -67,4 +90,18 @@ public class GoblinShouQianBaServiceImpl implements IGoblinShouQianBaService {
return
null
;
return
null
;
}
}
private
String
getSign
(
String
bodyJsonStr
)
{
try
{
// 签名算法: sign = MD5( CONCAT( body + appkey ) )
String
rawStr
=
bodyJsonStr
+
APPKEY
;
String
sign
=
MD5Utils
.
md5
(
rawStr
);
// 签名首部: Authorization: appid + " " + sign
return
APPID
+
" "
+
sign
;
}
catch
(
Exception
e
)
{
log
.
error
(
"[收钱吧] 生成签名发生异常"
,
e
);
return
""
;
}
}
}
}
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