第三方平台轉發小程序微信客服消息
@Service
@EnableConfigurationProperties({WechatOpenProperties.class})
public class WxOpenService extends WxOpenServiceImpl {
private Logger logger = LoggerFactory.getLogger(getClass());
@Autowired
private WechatOpenProperties wechatOpenProperties;
@Autowired
private RedissonClient redissonClient;
private WxOpenMessageRouter wxOpenMessageRouter;
@PostConstruct
public void init() {
WxOpenInRedissonConfigStorage inRedissonConfigStorage = new WxOpenInRedissonConfigStorage(redissonClient);
inRedissonConfigStorage.setComponentAppId(wechatOpenProperties.getComponentAppId());
inRedissonConfigStorage.setComponentAppSecret(wechatOpenProperties.getComponentSecret());
inRedissonConfigStorage.setComponentToken(wechatOpenProperties.getComponentToken());
inRedissonConfigStorage.setComponentAesKey(wechatOpenProperties.getComponentAesKey());
inRedissonConfigStorage.autoRefreshToken();
setWxOpenConfigStorage(inRedissonConfigStorage);
wxOpenMessageRouter = new WxOpenMessageRouter(this);
wxOpenMessageRouter.rule().handler((wxMpXmlMessage, map, wxMpService, wxSessionManager) -> {
logger.info("\n接收到 {} 公眾號請求消息,內容:{}", wxMpService.getWxMpConfigStorage().getAppId(), wxMpXmlMessage);
return null;
}).next()
//添加下面這段代碼,在微信推送消息到第三方平台時,以下函數的返回將作為結果發送給微信。
.rule().async(false).handler((wxMpXmlMessage, map, wxMpService, wxSessionManager) -> {
logger.info("\n接收到 {} 公眾號請求消息,內容:{}", wxMpService.getWxMpConfigStorage().getAppId(), wxMpXmlMessage);
return WxMpXmlOutMessage.TRANSFER_CUSTOMER_SERVICE()
.fromUser(wxMpXmlMessage.getToUser())
.toUser(wxMpXmlMessage.getFromUser())
.build();
}).end();
}
public WxOpenMessageRouter getWxOpenMessageRouter(){
return wxOpenMessageRouter;
}
}
微信轉發規則
https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/customer-message/trans.html