java发送微信消息接口_java调用个人微信接口收发消息

java调用个人微信接口收发消息

/**

* 接受微信好友发来聊天消息

* @author wechatno:tangjinjinwx

* @param ctx

* @param vo

*/

@Async

public void handleMsg(ChannelHandlerContext ctx, TransportMessage vo) {

try {

FriendTalkNoticeMessage req = vo.getContent().unpack(FriendTalkNoticeMessage.class);

log.debug(JsonFormat.printer().print(req));

log.debug(LocalDateTime.now()+” 微信好友发来聊天消息 对应的线程名: “+Thread.currentThread().getName());

//拦截消息

asyncTaskService.msgAopTask(ctx,req,vo.getAccessToken(), vo.getId());

//消息转发到pc端

asyncTaskService.msgSend2pc(req.getWeChatId(), EnumMsgType.FriendTalkNotice, req);

// 告诉客户端消息已收到

MessageUtil.sendMsg(ctx, EnumMsgType.MsgReceivedAck, vo.getAccessToken(), vo.getId(), null);

WxAccountInfo account = weChatAccountService.findWeChatAccountInfoByWeChatId(req.getWeChatId());

//消息记录数据库

if (null != account){

asyncTaskService.saveMessage(account, req);

}

} catch (Exception e) {

e.printStackTrace();

MessageUtil.sendErrMsg(ctx, EnumErrorCode.InvalidParam,vo.getId(), e.getMessage());

}

}

//调用参考http://www.wlkankan.cn/cate40/229.html

/**

* 服务端、客服客户端发给设备的指令类消息

* 给好友,群聊发送消息接口

* @author wechatno:tangjinjinwx

* @param ctx

* @param vo

*/

@Async

public void handleMsg(ChannelHandlerContext ctx, TransportMessage vo, String contentJsonStr) {

try {

log.debug(contentJsonStr);

TalkToFriendTaskMessage.Builder bd = TalkToFriendTaskMessage.newBuilder();

JsonFormat.parser().merge(contentJsonStr, bd);

TalkToFriendTaskMessage req = bd.build();

// 消息记录数据库

asyncTaskService.savePcMessage(req);

// 将消息转发送给手机客户端

asyncTaskService.msgSend2Phone(ctx, req.getWeChatId(), EnumMsgType.TalkToFriendTask, vo, req);

} catch (Exception e) {

e.printStackTrace();

MessageUtil.sendJsonErrMsg(ctx, EnumErrorCode.InvalidParam, Constant.ERROR_MSG_DECODFAIL);

}

}

java调用个人微信接口收发消息


版权声明:本文为weixin_39996234原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。