记得上下班打卡 | 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
bd40360e
Commit
bd40360e
authored
Aug 03, 2021
by
anjiabin
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/dev' into test
parents
a6d97095
c318f074
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
58 additions
and
12 deletions
+58
-12
application-test.yml
liquidnet-bus-config/liquidnet-config/application-test.yml
+2
-2
PayController.java
...om/liquidnet/service/dragon/controller/PayController.java
+12
-0
db_sweetsugar_structure.sql
.../liquidnet-service-sweet/docu/db_sweetsugar_structure.sql
+27
-0
SweetWechatActionCallbackController.java
...sweet/controller/SweetWechatActionCallbackController.java
+7
-3
SubscribeHandler.java
...com/liquidnet/service/sweet/handler/SubscribeHandler.java
+1
-0
SweetWechatCallbackServiceImpl.java
...ce/sweet/service/impl/SweetWechatCallbackServiceImpl.java
+3
-3
WechatSignUtils.java
...va/com/liquidnet/service/sweet/utils/WechatSignUtils.java
+6
-4
No files found.
liquidnet-bus-config/liquidnet-config/application-test.yml
View file @
bd40360e
...
@@ -71,8 +71,8 @@ liquidnet:
...
@@ -71,8 +71,8 @@ liquidnet:
client
:
client
:
admin
:
admin
:
phpPayUrl
:
http://testdragon.zhengzai.tv
phpPayUrl
:
http://testdragon.zhengzai.tv
phpMallUrl
:
https://testmall.zhengzai.tv
phpMallUrl
:
https://testmall.zhengzai.tv
platformUrl
:
https://testplatform.zhengzai.tv
platformUrl
:
https://testplatform.zhengzai.tv
shunfeng
:
shunfeng
:
url
:
"
https://butler-dev-ms.sf-express.com"
url
:
"
https://butler-dev-ms.sf-express.com"
sk
:
21e9a70f677a2bf29dfa2b3bead4f018
sk
:
21e9a70f677a2bf29dfa2b3bead4f018
...
...
liquidnet-bus-service/liquidnet-service-dragon/liquidnet-service-dragon-impl/src/main/java/com/liquidnet/service/dragon/controller/PayController.java
View file @
bd40360e
...
@@ -123,6 +123,18 @@ public class PayController {
...
@@ -123,6 +123,18 @@ public class PayController {
return
ResponseDto
.
success
(
respDto
);
return
ResponseDto
.
success
(
respDto
);
}
}
@GetMapping
(
"/thirdCheckOrder"
)
@ApiOperation
(
"三方订单查询"
)
@ApiResponse
(
code
=
200
,
message
=
"接口返回对象参数"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
type
=
"form"
,
required
=
true
,
dataType
=
"String"
,
name
=
"code"
,
value
=
""
,
example
=
"PAY202107131522368438531155"
)
})
@ResponseBody
public
ResponseDto
<
DragonPayOrderQueryRespDto
>
thirdCheckOrder
(
@RequestParam
(
value
=
"code"
)
@NotNull
(
message
=
"支付编号不能为空!"
)
String
code
){
DragonPayOrderQueryRespDto
respDto
=
dragonOrdersService
.
checkOrderStatusByCode
(
code
);
return
ResponseDto
.
success
(
respDto
);
}
@GetMapping
(
"/manulNotify"
)
@GetMapping
(
"/manulNotify"
)
@ApiOperation
(
"手动通知商户"
)
@ApiOperation
(
"手动通知商户"
)
@ApiResponse
(
code
=
200
,
message
=
"接口返回对象参数"
)
@ApiResponse
(
code
=
200
,
message
=
"接口返回对象参数"
)
...
...
liquidnet-bus-service/liquidnet-service-sweet/docu/db_sweetsugar_structure.sql
View file @
bd40360e
...
@@ -182,3 +182,30 @@ CREATE TABLE `sweet_manual_shop`
...
@@ -182,3 +182,30 @@ CREATE TABLE `sweet_manual_shop`
DEFAULT
CHARSET
=
utf8
DEFAULT
CHARSET
=
utf8
COLLATE
=
utf8_unicode_ci
COLLATE
=
utf8_unicode_ci
ROW_FORMAT
=
DYNAMIC
COMMENT
'电子宣传手册商铺表'
;
ROW_FORMAT
=
DYNAMIC
COMMENT
'电子宣传手册商铺表'
;
-- 正在现场服务号关注事件储存用户信息表
drop
TABLE
if
exists
`sweet_wechat_user`
;
CREATE
TABLE
`sweet_wechat_user`
(
`mid`
bigint
unsigned
NOT
NULL
AUTO_INCREMENT
,
`user_id`
varchar
(
200
)
NOT
NULL
DEFAULT
''
COMMENT
'user_id'
,
`openId`
varchar
(
200
)
NOT
NULL
DEFAULT
''
COMMENT
'openId'
,
`unionId`
varchar
(
200
)
NOT
NULL
DEFAULT
''
COMMENT
'unionId'
,
`nickname`
varchar
(
200
)
NOT
NULL
DEFAULT
''
COMMENT
'昵称'
,
`sexDesc`
varchar
(
200
)
NOT
NULL
DEFAULT
''
COMMENT
'性别'
,
`sex`
tinyint
NOT
NULL
DEFAULT
0
COMMENT
'性别 男1'
,
`headImgUrl`
varchar
(
200
)
NOT
NULL
DEFAULT
''
COMMENT
'头像'
,
`language`
varchar
(
200
)
NOT
NULL
DEFAULT
''
COMMENT
'zh_CN'
,
`country`
varchar
(
200
)
NOT
NULL
DEFAULT
''
COMMENT
'国家'
,
`province`
varchar
(
200
)
NOT
NULL
DEFAULT
''
COMMENT
'省'
,
`city`
varchar
(
200
)
NOT
NULL
DEFAULT
''
COMMENT
'市'
,
`subscribeTime`
datetime
NULL
DEFAULT
null
COMMENT
'关注时间'
,
`subscribeScene`
varchar
(
200
)
NOT
NULL
DEFAULT
''
COMMENT
'ADD_SCENE_SEARCH 关注方式'
,
`created_at`
datetime
NULL
DEFAULT
CURRENT_TIMESTAMP
COMMENT
'创建时间'
,
`updated_at`
datetime
NULL
DEFAULT
CURRENT_TIMESTAMP
COMMENT
'更新时间'
,
PRIMARY
KEY
(
`mid`
),
KEY
`sweet_wechat_user_user_id`
(
`user_id`
)
)
ENGINE
=
InnoDB
DEFAULT
CHARSET
utf8mb4
COLLATE
utf8mb4_unicode_ci
ROW_FORMAT
=
DYNAMIC
COMMENT
'正在现场服务号关注事件储存用户信息表'
;
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/controller/SweetWechatActionCallbackController.java
View file @
bd40360e
...
@@ -20,6 +20,9 @@ public class SweetWechatActionCallbackController {
...
@@ -20,6 +20,9 @@ public class SweetWechatActionCallbackController {
@Autowired
@Autowired
private
SweetWechatCallbackServiceImpl
sweetWechatCallbackService
;
private
SweetWechatCallbackServiceImpl
sweetWechatCallbackService
;
@Autowired
private
WechatSignUtils
wechatSignUtils
;
@GetMapping
(
"record"
)
@GetMapping
(
"record"
)
@ApiOperation
(
"get"
)
@ApiOperation
(
"get"
)
public
void
record
(
public
void
record
(
...
@@ -30,7 +33,7 @@ public class SweetWechatActionCallbackController {
...
@@ -30,7 +33,7 @@ public class SweetWechatActionCallbackController {
@RequestParam
()
String
echostr
@RequestParam
()
String
echostr
)
{
)
{
try
{
try
{
if
(
W
echatSignUtils
.
checkSignature
(
signature
,
timestamp
,
nonce
))
{
if
(
w
echatSignUtils
.
checkSignature
(
signature
,
timestamp
,
nonce
))
{
log
.
info
(
"验签通过"
);
log
.
info
(
"验签通过"
);
PrintWriter
out
=
response
.
getWriter
();
PrintWriter
out
=
response
.
getWriter
();
out
.
print
(
echostr
);
out
.
print
(
echostr
);
...
@@ -46,7 +49,8 @@ public class SweetWechatActionCallbackController {
...
@@ -46,7 +49,8 @@ public class SweetWechatActionCallbackController {
@PostMapping
(
"record"
)
@PostMapping
(
"record"
)
@ApiOperation
(
"post"
)
@ApiOperation
(
"post"
)
public
String
record
(
public
String
record
(
@RequestBody
String
requestBody
,
// @RequestBody String requestBody,
@RequestParam
String
requestBody
,
@RequestParam
(
"signature"
)
String
signature
,
@RequestParam
(
"signature"
)
String
signature
,
@RequestParam
(
"timestamp"
)
String
timestamp
,
@RequestParam
(
"timestamp"
)
String
timestamp
,
@RequestParam
(
"nonce"
)
String
nonce
,
@RequestParam
(
"nonce"
)
String
nonce
,
...
@@ -57,7 +61,7 @@ public class SweetWechatActionCallbackController {
...
@@ -57,7 +61,7 @@ public class SweetWechatActionCallbackController {
log
.
info
(
"\n接收微信请求:[openid=[{}], [signature=[{}], encType=[{}], msgSignature=[{}],"
log
.
info
(
"\n接收微信请求:[openid=[{}], [signature=[{}], encType=[{}], msgSignature=[{}],"
+
" timestamp=[{}], nonce=[{}], requestBody=[\n{}\n] "
,
+
" timestamp=[{}], nonce=[{}], requestBody=[\n{}\n] "
,
openid
,
signature
,
encType
,
msgSignature
,
timestamp
,
nonce
,
requestBody
);
openid
,
signature
,
encType
,
msgSignature
,
timestamp
,
nonce
,
requestBody
);
if
(!
W
echatSignUtils
.
checkSignature
(
signature
,
timestamp
,
nonce
))
{
if
(!
w
echatSignUtils
.
checkSignature
(
signature
,
timestamp
,
nonce
))
{
log
.
info
(
"验签未通过,非法请求,可能属于伪造的请求!"
);
log
.
info
(
"验签未通过,非法请求,可能属于伪造的请求!"
);
return
""
;
return
""
;
}
}
...
...
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/handler/SubscribeHandler.java
View file @
bd40360e
...
@@ -35,6 +35,7 @@ public class SubscribeHandler implements WxMpMessageHandler {
...
@@ -35,6 +35,7 @@ public class SubscribeHandler implements WxMpMessageHandler {
}
}
log
.
info
(
"根据 openId:[{}]获取到的微信用户信息:[{}]"
,
wxMessage
.
getFromUser
(),
wxMpUser
.
toString
());
log
.
info
(
"根据 openId:[{}]获取到的微信用户信息:[{}]"
,
wxMessage
.
getFromUser
(),
wxMpUser
.
toString
());
return
null
;
return
null
;
}
}
}
}
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/service/impl/SweetWechatCallbackServiceImpl.java
View file @
bd40360e
...
@@ -70,10 +70,10 @@ public class SweetWechatCallbackServiceImpl {
...
@@ -70,10 +70,10 @@ public class SweetWechatCallbackServiceImpl {
.
end
();
.
end
();
// 取消关注事件
// 取消关注事件
router
.
rule
().
async
(
false
).
msgType
(
WxConsts
.
XmlMsgType
.
EVENT
)
/*
router.rule().async(false).msgType(WxConsts.XmlMsgType.EVENT)
.event(WxConsts.EventType.UNSUBSCRIBE)
.event(WxConsts.EventType.UNSUBSCRIBE)
.handler(unsubscribeHandler)
.handler(unsubscribeHandler)
.
end
();
.end();
*/
return
router
;
return
router
;
}
}
...
@@ -82,7 +82,7 @@ public class SweetWechatCallbackServiceImpl {
...
@@ -82,7 +82,7 @@ public class SweetWechatCallbackServiceImpl {
WxMpConfigStorage
wxMpConfig
=
wxMpConfig
(
appid
,
secret
,
token
,
aeskey
);
WxMpConfigStorage
wxMpConfig
=
wxMpConfig
(
appid
,
secret
,
token
,
aeskey
);
WxMpService
wxMpService
=
wxMpService
(
wxMpConfig
);
WxMpService
wxMpService
=
wxMpService
(
wxMpConfig
);
String
out
=
null
;
String
out
=
null
;
if
(
encType
==
null
)
{
if
(
encType
==
null
||
encType
.
isEmpty
()
)
{
// 明文传输的消息
// 明文传输的消息
WxMpXmlMessage
inMessage
=
WxMpXmlMessage
.
fromXml
(
requestBody
);
WxMpXmlMessage
inMessage
=
WxMpXmlMessage
.
fromXml
(
requestBody
);
log
.
info
(
"\n消息内容为:\n[{}] "
,
inMessage
.
toString
());
log
.
info
(
"\n消息内容为:\n[{}] "
,
inMessage
.
toString
());
...
...
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/utils/WechatSignUtils.java
View file @
bd40360e
package
com
.
liquidnet
.
service
.
sweet
.
utils
;
package
com
.
liquidnet
.
service
.
sweet
.
utils
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Component
;
import
java.security.MessageDigest
;
import
java.security.MessageDigest
;
import
java.security.NoSuchAlgorithmException
;
import
java.security.NoSuchAlgorithmException
;
...
@@ -14,11 +15,12 @@ import java.util.Arrays;
...
@@ -14,11 +15,12 @@ import java.util.Arrays;
* @author jiangxiulong
* @author jiangxiulong
* @since 2021-07-29 3:19 下午
* @since 2021-07-29 3:19 下午
*/
*/
@Component
public
class
WechatSignUtils
{
public
class
WechatSignUtils
{
// 与接口配置信息中的 Token 要一致
// 与接口配置信息中的 Token 要一致
@Value
(
"${liquidnet.wechat.zhengzai.service.token}"
)
@Value
(
"${liquidnet.wechat.zhengzai.service.token}"
)
private
static
String
token
;
private
String
token
;
/**
/**
* 验证签名
* 验证签名
...
@@ -28,7 +30,7 @@ public class WechatSignUtils {
...
@@ -28,7 +30,7 @@ public class WechatSignUtils {
* @param nonce
* @param nonce
* @return
* @return
*/
*/
public
static
boolean
checkSignature
(
String
signature
,
String
timestamp
,
String
nonce
)
{
public
boolean
checkSignature
(
String
signature
,
String
timestamp
,
String
nonce
)
{
String
[]
arr
=
new
String
[]{
token
,
timestamp
,
nonce
};
String
[]
arr
=
new
String
[]{
token
,
timestamp
,
nonce
};
// 将 token、timestamp、nonce 三个参数进行字典序排序
// 将 token、timestamp、nonce 三个参数进行字典序排序
Arrays
.
sort
(
arr
);
Arrays
.
sort
(
arr
);
...
@@ -59,7 +61,7 @@ public class WechatSignUtils {
...
@@ -59,7 +61,7 @@ public class WechatSignUtils {
* @param byteArray
* @param byteArray
* @return
* @return
*/
*/
private
static
String
byteToStr
(
byte
[]
byteArray
)
{
private
String
byteToStr
(
byte
[]
byteArray
)
{
String
strDigest
=
""
;
String
strDigest
=
""
;
for
(
int
i
=
0
;
i
<
byteArray
.
length
;
i
++)
{
for
(
int
i
=
0
;
i
<
byteArray
.
length
;
i
++)
{
strDigest
+=
byteToHexStr
(
byteArray
[
i
]);
strDigest
+=
byteToHexStr
(
byteArray
[
i
]);
...
@@ -73,7 +75,7 @@ public class WechatSignUtils {
...
@@ -73,7 +75,7 @@ public class WechatSignUtils {
* @param mByte
* @param mByte
* @return
* @return
*/
*/
private
static
String
byteToHexStr
(
byte
mByte
)
{
private
String
byteToHexStr
(
byte
mByte
)
{
char
[]
Digit
=
{
'0'
,
'1'
,
'2'
,
'3'
,
'4'
,
'5'
,
'6'
,
'7'
,
'8'
,
'9'
,
'A'
,
'B'
,
'C'
,
'D'
,
'E'
,
'F'
};
char
[]
Digit
=
{
'0'
,
'1'
,
'2'
,
'3'
,
'4'
,
'5'
,
'6'
,
'7'
,
'8'
,
'9'
,
'A'
,
'B'
,
'C'
,
'D'
,
'E'
,
'F'
};
char
[]
tempArr
=
new
char
[
2
];
char
[]
tempArr
=
new
char
[
2
];
tempArr
[
0
]
=
Digit
[(
mByte
>>>
4
)
&
0X0F
];
tempArr
[
0
]
=
Digit
[(
mByte
>>>
4
)
&
0X0F
];
...
...
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