22
33import com .github .service .CoreService ;
44import com .github .util .ReturnModel ;
5- import me .chanjar .weixin .common .api .WxConsts ;
65import me .chanjar .weixin .common .exception .WxErrorException ;
7- import me .chanjar .weixin .common .session .WxSessionManager ;
86import me .chanjar .weixin .common .util .StringUtils ;
97import me .chanjar .weixin .mp .api .WxMpConfigStorage ;
10- import me .chanjar .weixin .mp .api .WxMpMessageHandler ;
11- import me .chanjar .weixin .mp .api .WxMpMessageRouter ;
128import me .chanjar .weixin .mp .api .WxMpService ;
139import me .chanjar .weixin .mp .bean .WxMpXmlMessage ;
1410import me .chanjar .weixin .mp .bean .WxMpXmlOutMessage ;
15- import me .chanjar .weixin .mp .bean .WxMpXmlOutTextMessage ;
1611import me .chanjar .weixin .mp .bean .result .WxMpOAuth2AccessToken ;
1712import me .chanjar .weixin .mp .bean .result .WxMpUser ;
18- import org .slf4j .Logger ;
19- import org .slf4j .LoggerFactory ;
2013import org .springframework .beans .factory .annotation .Autowired ;
2114import org .springframework .stereotype .Controller ;
2215import org .springframework .web .bind .annotation .RequestMapping ;
2316import org .springframework .web .bind .annotation .RequestParam ;
2417
2518import javax .servlet .http .HttpServletRequest ;
2619import javax .servlet .http .HttpServletResponse ;
27- import java .util .Map ;
2820
2921/**
3022 * Created by FirenzesEagle on 2016/5/30 0030.
@@ -40,12 +32,6 @@ public class CoreController extends GenericController {
4032 @ Autowired
4133 protected CoreService coreService ;
4234
43- protected WxMpMessageRouter wxMpMessageRouter ;
44- private static final String CREATE_USER_URL = "http://111.207.243.66:8886/SZBProject/wxinfo/insert" ;
45- private static final String CREATE_SHOP_URL = "http://111.207.243.66:8886/SZBProject/shop/create?openId=" ;
46-
47- private static final Logger log = LoggerFactory .getLogger (CoreController .class );
48-
4935 @ RequestMapping (value = "index" )
5036 public String index () {
5137 return "index" ;
@@ -67,30 +53,6 @@ public void wechatCore(HttpServletRequest request, HttpServletResponse response)
6753 String nonce = request .getParameter ("nonce" );
6854 String timestamp = request .getParameter ("timestamp" );
6955
70- //订阅事件消息处理
71- WxMpMessageHandler subscribeHandler = new WxMpMessageHandler () {
72- @ Override
73- public WxMpXmlOutMessage handle (WxMpXmlMessage wxMessage , Map <String , Object > context , WxMpService wxMpService , WxSessionManager sessionManager ) throws WxErrorException {
74- WxMpUser wxMpUser = getUserInfo (wxMessage .getFromUserName (), "zh_CN" );
75- WxMpXmlOutTextMessage m
76- = WxMpXmlOutMessage .TEXT ()
77- .content ("尊敬的" + wxMpUser .getNickname () + ",您好 !" )
78- .fromUser (wxMessage .getToUserName ())
79- .toUser (wxMessage .getFromUserName ())
80- .build ();
81- log .info ("subscribeMessageHandler: " + m .getContent ());
82- return m ;
83- }
84- };
85-
86- wxMpMessageRouter = new WxMpMessageRouter (wxMpService );
87- wxMpMessageRouter
88- .rule ()
89- .async (false )
90- .event (WxConsts .EVT_SUBSCRIBE )
91- .handler (subscribeHandler )
92- .end ();
93-
9456 if (!wxMpService .checkSignature (timestamp , nonce , signature )) {
9557 // 消息签名不正确,说明不是公众平台发过来的消息
9658 response .getWriter ().println ("非法请求" );
@@ -111,7 +73,7 @@ public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage, Map<String, Object> co
11173 if ("raw" .equals (encryptType )) {
11274 // 明文传输的消息
11375 WxMpXmlMessage inMessage = WxMpXmlMessage .fromXml (request .getInputStream ());
114- WxMpXmlOutMessage outMessage = wxMpMessageRouter .route (inMessage );
76+ WxMpXmlOutMessage outMessage = coreService .route (inMessage );
11577 response .getWriter ().write (outMessage .toXml ());
11678 return ;
11779 }
@@ -120,8 +82,9 @@ public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage, Map<String, Object> co
12082 // 是aes加密的消息
12183 String msgSignature = request .getParameter ("msg_signature" );
12284 WxMpXmlMessage inMessage = WxMpXmlMessage .fromEncryptedXml (request .getInputStream (), configStorage , timestamp , nonce , msgSignature );
123- WxMpXmlOutMessage outMessage = wxMpMessageRouter .route (inMessage );
124- log .info (response .toString ());
85+ logger .debug ("\n 消息解密后内容为:\n {} " , inMessage .toString ());
86+ WxMpXmlOutMessage outMessage = coreService .route (inMessage );
87+ logger .info (response .toString ());
12588 response .getWriter ().write (outMessage .toEncryptedXml (configStorage ));
12689 return ;
12790 }
@@ -151,24 +114,7 @@ public WxMpUser getUserInfo(HttpServletResponse response, @RequestParam(value =
151114 returnModel .setResult (false );
152115 returnModel .setReason (e .getError ().toString ());
153116 renderString (response , returnModel );
154- log .error (e .getError ().toString ());
155- }
156- return wxMpUser ;
157- }
158-
159- /**
160- * 通过openid获得基本用户信息的重载方法,去除HttpServletResponse对象,否则会空指针
161- *
162- * @param openid
163- * @param lang
164- * @return
165- */
166- public WxMpUser getUserInfo (String openid , String lang ) {
167- WxMpUser wxMpUser = null ;
168- try {
169- wxMpUser = wxMpService .userInfo (openid , lang );
170- } catch (WxErrorException e ) {
171- log .error (e .getError ().toString ());
117+ logger .error (e .getError ().toString ());
172118 }
173119 return wxMpUser ;
174120 }
@@ -196,7 +142,7 @@ public void getOAuth2UserInfo(HttpServletResponse response, @RequestParam(value
196142 returnModel .setResult (false );
197143 returnModel .setReason (e .getError ().toString ());
198144 renderString (response , returnModel );
199- log .error (e .getError ().toString ());
145+ logger .error (e .getError ().toString ());
200146 }
201147 }
202148
@@ -220,7 +166,7 @@ public void getOpenid(HttpServletResponse response, @RequestParam(value = "code"
220166 returnModel .setResult (false );
221167 returnModel .setReason (e .getError ().toString ());
222168 renderString (response , returnModel );
223- log .error (e .getError ().toString ());
169+ logger .error (e .getError ().toString ());
224170 }
225171 }
226172
0 commit comments