记得上下班打卡 | 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
a81d1cdc
Commit
a81d1cdc
authored
Jul 31, 2021
by
jiangxiulong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
route
parent
6fb98044
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
140 additions
and
6 deletions
+140
-6
SubscribeHandler.java
...com/liquidnet/service/sweet/handler/SubscribeHandler.java
+40
-0
UnsubscribeHandler.java
...m/liquidnet/service/sweet/handler/UnsubscribeHandler.java
+32
-0
SweetWechatCallbackServiceImpl.java
...ce/sweet/service/impl/SweetWechatCallbackServiceImpl.java
+68
-6
No files found.
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/handler/SubscribeHandler.java
0 → 100644
View file @
a81d1cdc
package
com
.
liquidnet
.
service
.
sweet
.
handler
;
import
lombok.extern.slf4j.Slf4j
;
import
me.chanjar.weixin.common.error.WxErrorException
;
import
me.chanjar.weixin.common.session.WxSessionManager
;
import
me.chanjar.weixin.mp.api.WxMpMessageHandler
;
import
me.chanjar.weixin.mp.api.WxMpService
;
import
me.chanjar.weixin.mp.bean.message.WxMpXmlMessage
;
import
me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage
;
import
me.chanjar.weixin.mp.bean.result.WxMpUser
;
import
org.springframework.stereotype.Component
;
import
java.util.Map
;
/**
* <p>
* 关注
* </p>
*
* @author jiangxiulong
* @since 2021-07-31 5:06 下午
*/
@Component
@Slf4j
public
class
SubscribeHandler
implements
WxMpMessageHandler
{
@Override
public
WxMpXmlOutMessage
handle
(
WxMpXmlMessage
wxMessage
,
Map
<
String
,
Object
>
context
,
WxMpService
wxMpService
,
WxSessionManager
sessionManager
)
throws
WxErrorException
{
log
.
info
(
"接收到一个扫码订阅事件:[{}]"
,
wxMessage
.
toString
());
// 1、获取微信用户信息
WxMpUser
wxMpUser
=
wxMpService
.
getUserService
().
userInfo
(
wxMessage
.
getFromUser
());
if
(
null
==
wxMpUser
)
{
log
.
warn
(
"从微信公众号获取用户(FromUser)信息:[{}]失败."
,
wxMessage
.
getFromUser
());
return
null
;
}
log
.
info
(
"根据 openId:[{}]获取到的微信用户信息:[{}]"
,
wxMessage
.
getFromUser
(),
wxMpUser
.
toString
());
return
null
;
}
}
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/handler/UnsubscribeHandler.java
0 → 100644
View file @
a81d1cdc
package
com
.
liquidnet
.
service
.
sweet
.
handler
;
import
lombok.extern.slf4j.Slf4j
;
import
me.chanjar.weixin.common.error.WxErrorException
;
import
me.chanjar.weixin.common.session.WxSessionManager
;
import
me.chanjar.weixin.mp.api.WxMpMessageHandler
;
import
me.chanjar.weixin.mp.api.WxMpService
;
import
me.chanjar.weixin.mp.bean.message.WxMpXmlMessage
;
import
me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage
;
import
org.springframework.stereotype.Component
;
import
java.util.Map
;
/**
* <p>
* 取消关注
* </p>
*
* @author jiangxiulong
* @since 2021-07-31 5:08 下午
*/
@Component
@Slf4j
public
class
UnsubscribeHandler
implements
WxMpMessageHandler
{
@Override
public
WxMpXmlOutMessage
handle
(
WxMpXmlMessage
wxMessage
,
Map
<
String
,
Object
>
context
,
WxMpService
wxMpService
,
WxSessionManager
sessionManager
)
throws
WxErrorException
{
log
.
info
(
"接收到一个扫码取消订阅事件:[{}]"
,
wxMessage
.
toString
());
return
null
;
}
}
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/service/impl/SweetWechatCallbackServiceImpl.java
View file @
a81d1cdc
package
com
.
liquidnet
.
service
.
sweet
.
service
.
impl
;
import
com.liquidnet.service.sweet.handler.SubscribeHandler
;
import
com.liquidnet.service.sweet.handler.UnsubscribeHandler
;
import
lombok.extern.slf4j.Slf4j
;
import
me.chanjar.weixin.common.api.WxConsts
;
import
me.chanjar.weixin.common.api.WxMessageInMemoryDuplicateChecker
;
import
me.chanjar.weixin.mp.api.WxMpMessageRouter
;
import
me.chanjar.weixin.mp.api.WxMpService
;
import
me.chanjar.weixin.mp.api.impl.WxMpServiceImpl
;
...
...
@@ -24,22 +28,80 @@ import org.springframework.stereotype.Service;
@Slf4j
public
class
SweetWechatCallbackServiceImpl
{
/*@Autowired
private WxMpMessageRouter wxMpMessageRouter;*/
@Value
(
"${liquidnet.wechat.zhengzai.service.appid}"
)
private
String
appid
;
@Value
(
"${liquidnet.wechat.zhengzai.service.secret}"
)
private
String
secret
;
@Value
(
"${liquidnet.wechat.zhengzai.service.token}"
)
private
String
token
;
@Value
(
"${liquidnet.wechat.zhengzai.service.aeskey}"
)
private
String
aeskey
;
@Autowired
private
SubscribeHandler
subscribeHandler
;
@Autowired
private
UnsubscribeHandler
unsubscribeHandler
;
private
WxMpConfigStorage
wxMpConfig
(
String
appId
,
String
appSecret
,
String
token
,
String
aeskey
)
{
WxMpDefaultConfigImpl
config
=
new
WxMpDefaultConfigImpl
();
config
.
setAppId
(
appId
);
config
.
setSecret
(
appSecret
);
config
.
setAesKey
(
aeskey
);
config
.
setToken
(
token
);
return
config
;
}
private
WxMpService
wxMpService
(
WxMpConfigStorage
mpConfig
)
{
WxMpService
service
=
new
WxMpServiceImpl
();
service
.
setWxMpConfigStorage
(
mpConfig
);
return
service
;
}
public
WxMpMessageRouter
messageRouter
(
WxMpService
wxMpService
)
{
WxMpMessageRouter
router
=
new
WxMpMessageRouter
(
wxMpService
);
// 消息去重
router
.
setMessageDuplicateChecker
(
new
WxMessageInMemoryDuplicateChecker
());
// 关注事件
router
.
rule
().
async
(
false
).
msgType
(
WxConsts
.
XmlMsgType
.
EVENT
)
.
event
(
WxConsts
.
EventType
.
SUBSCRIBE
)
.
handler
(
subscribeHandler
)
.
end
();
// 取消关注事件
router
.
rule
().
async
(
false
).
msgType
(
WxConsts
.
XmlMsgType
.
EVENT
)
.
event
(
WxConsts
.
EventType
.
UNSUBSCRIBE
)
.
handler
(
unsubscribeHandler
)
.
end
();
return
router
;
}
public
String
record
(
String
requestBody
,
String
timestamp
,
String
nonce
,
String
encType
,
String
msgSignature
)
{
/*String out = null;
WxMpConfigStorage
wxMpConfig
=
wxMpConfig
(
appid
,
secret
,
token
,
aeskey
);
WxMpService
wxMpService
=
wxMpService
(
wxMpConfig
);
String
out
=
null
;
if
(
encType
==
null
)
{
// 明文传输的消息
WxMpXmlMessage
inMessage
=
WxMpXmlMessage
.
fromXml
(
requestBody
);
WxMpXmlOutMessage outMessage =
wxMpMessageRouter
.route(inMessage);
WxMpXmlOutMessage
outMessage
=
messageRouter
(
wxMpService
)
.
route
(
inMessage
);
if
(
outMessage
==
null
)
{
return
""
;
}
out
=
outMessage
.
toXml
();
}
else
if
(
"aes"
.
equalsIgnoreCase
(
encType
))
{
// aes加密的消息
WxMpXmlMessage
inMessage
=
WxMpXmlMessage
.
fromEncryptedXml
(
requestBody
,
wxMpService
.
getWxMpConfigStorage
(),
timestamp
,
nonce
,
msgSignature
);
log
.
info
(
"\n消息解密后内容为:\n[{}] "
,
inMessage
.
toString
());
WxMpXmlOutMessage
outMessage
=
messageRouter
(
wxMpService
).
route
(
inMessage
);
if
(
outMessage
==
null
)
{
return
""
;
}
out
=
outMessage
.
toEncryptedXml
(
wxMpService
.
getWxMpConfigStorage
());
}
log
.
info
(
"\n组装回复信息:[{}]"
,
out
);
return out;*/
return
""
;
return
out
;
}
}
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