cn.wizzer.app.web.commons.ext.wx.WxService Maven / Gradle / Ivy
package cn.wizzer.app.web.commons.ext.wx;
import cn.wizzer.app.web.commons.base.Globals;
import cn.wizzer.app.wx.modules.models.Wx_config;
import cn.wizzer.app.wx.modules.services.WxConfigService;
import com.alibaba.dubbo.config.annotation.Reference;
import org.nutz.dao.Cnd;
import org.nutz.ioc.loader.annotation.Inject;
import org.nutz.ioc.loader.annotation.IocBean;
import org.nutz.log.Log;
import org.nutz.log.Logs;
import org.nutz.weixin.at.impl.RedisAccessTokenStore;
import org.nutz.weixin.impl.WxApi2Impl;
import org.nutz.weixin.spi.WxApi2;
import redis.clients.jedis.JedisPool;
/**
* Created by wizzer on 2018/3/17.
*/
@IocBean
public class WxService {
private static final Log log = Logs.get();
@Inject
@Reference
private WxConfigService wxConfigService;
@Inject
private JedisPool jedisPool;
public synchronized WxApi2 getWxApi2(String wxid) {
WxApi2Impl wxApi2 = Globals.WxMap.get(wxid);//如果是集群部署请改成redis实现
if (wxApi2 == null) {
Wx_config appInfo = wxConfigService.fetch(Cnd.where("id", "=", wxid));
RedisAccessTokenStore redisAccessTokenStore = new RedisAccessTokenStore();//如果是集群部署请启用RedisAccessTokenStore
redisAccessTokenStore.setTokenKey("nutzwk:wx:token:" + wxid);
redisAccessTokenStore.setJedisPool(jedisPool);
wxApi2 = new WxApi2Impl();
wxApi2.setAppid(appInfo.getAppid());
wxApi2.setAppsecret(appInfo.getAppsecret());
wxApi2.setEncodingAesKey(appInfo.getEncodingAESKey());
wxApi2.setToken(appInfo.getToken());
wxApi2.setAccessTokenStore(redisAccessTokenStore);
Globals.WxMap.put(wxid, wxApi2);
}
return wxApi2;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy