微信服务号应用每一个页面均可以点击右上角分享本页面给朋友,如须要统一处理限定分享结果,能够经过分享拦截器实现。 java
public class ShareInterceptor implements Interceptor { private static Logger log = Logger .getLogger(ShareInterceptor.class); @Override public void intercept(Invocation ai) { ApiConfig ac = new ApiConfig(); ac.setToken(PropKit.get("token")); ac.setAppId(PropKit.get("appId")); ac.setAppSecret(PropKit.get("appSecret")); ApiConfigKit.setThreadLocalApiConfig(ac); Controller contro = (Controller) ai.getController(); HttpServletRequest request = contro.getRequest(); String url = PropKit.get("weixin_uri")+ai.getActionKey()+"?"+request.getQueryString(); JsTicket jsapi_ticket = JsTicketApi.getTicket(JsApiType.jsapi); String ticket = jsapi_ticket.getTicket(); Map<String, String> signMap = WxUtil.sign(ticket,url); signMap.put("appId", PropKit.get("appId")); request.setAttribute("signMap", signMap); ai.invoke(); } }
若是须要全局拦截,就在configInterceptor时设置,若是只对单个action拦截,就在action前@Before便可;同理能够处理其余微信api支持的操做。 api