mirror of
https://gitee.com/binary/weixin-java-tools.git
synced 2025-06-28 13:16:19 +08:00
🎨 #3212【企业微信】增加微信客服回调事件支持
This commit is contained in:
parent
d0324c6771
commit
d957896ac1
@ -301,6 +301,11 @@ public class WxConsts {
|
|||||||
public static final String CLICK = "CLICK";
|
public static final String CLICK = "CLICK";
|
||||||
public static final String VIEW = "VIEW";
|
public static final String VIEW = "VIEW";
|
||||||
public static final String MASS_SEND_JOB_FINISH = "MASSSENDJOBFINISH";
|
public static final String MASS_SEND_JOB_FINISH = "MASSSENDJOBFINISH";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 微信客服消息事件推送
|
||||||
|
*/
|
||||||
|
public static final String KF_MSG_OR_EVENT = "kf_msg_or_event";
|
||||||
/**
|
/**
|
||||||
* 扫码推事件的事件推送
|
* 扫码推事件的事件推送
|
||||||
*/
|
*/
|
||||||
|
@ -187,6 +187,21 @@ public class WxCpXmlMessage implements Serializable {
|
|||||||
@XStreamConverter(value = XStreamCDataConverter.class)
|
@XStreamConverter(value = XStreamCDataConverter.class)
|
||||||
private String taskId;
|
private String taskId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 微信客服
|
||||||
|
* 调用拉取消息接口时,需要传此token,用于校验请求的合法性
|
||||||
|
*/
|
||||||
|
@XStreamAlias("Token")
|
||||||
|
@XStreamConverter(value = XStreamCDataConverter.class)
|
||||||
|
private String token;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 有新消息的客服账号。可通过sync_msg接口指定open_kfid获取此客服账号的消息
|
||||||
|
*/
|
||||||
|
@XStreamAlias("OpenKfId")
|
||||||
|
@XStreamConverter(value = XStreamCDataConverter.class)
|
||||||
|
private String openKfId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 通讯录变更事件.
|
* 通讯录变更事件.
|
||||||
* 请参考常量 me.chanjar.weixin.cp.constant.WxCpConsts.ContactChangeType
|
* 请参考常量 me.chanjar.weixin.cp.constant.WxCpConsts.ContactChangeType
|
||||||
@ -222,6 +237,7 @@ public class WxCpXmlMessage implements Serializable {
|
|||||||
@XStreamAlias("WelcomeCode")
|
@XStreamAlias("WelcomeCode")
|
||||||
@XStreamConverter(value = XStreamCDataConverter.class)
|
@XStreamConverter(value = XStreamCDataConverter.class)
|
||||||
private String welcomeCode;
|
private String welcomeCode;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新的UserID,变更时推送(userid由系统生成时可更改一次).
|
* 新的UserID,变更时推送(userid由系统生成时可更改一次).
|
||||||
*/
|
*/
|
||||||
|
@ -3,10 +3,14 @@ package me.chanjar.weixin.cp.api.impl;
|
|||||||
import com.google.inject.Inject;
|
import com.google.inject.Inject;
|
||||||
import me.chanjar.weixin.common.api.WxConsts;
|
import me.chanjar.weixin.common.api.WxConsts;
|
||||||
import me.chanjar.weixin.common.bean.result.WxMediaUploadResult;
|
import me.chanjar.weixin.common.bean.result.WxMediaUploadResult;
|
||||||
|
import me.chanjar.weixin.common.util.XmlUtils;
|
||||||
import me.chanjar.weixin.cp.api.ApiTestModule;
|
import me.chanjar.weixin.cp.api.ApiTestModule;
|
||||||
import me.chanjar.weixin.cp.api.WxCpService;
|
import me.chanjar.weixin.cp.api.WxCpService;
|
||||||
import me.chanjar.weixin.cp.bean.WxCpBaseResp;
|
import me.chanjar.weixin.cp.bean.WxCpBaseResp;
|
||||||
import me.chanjar.weixin.cp.bean.kf.*;
|
import me.chanjar.weixin.cp.bean.kf.*;
|
||||||
|
import me.chanjar.weixin.cp.bean.message.WxCpXmlMessage;
|
||||||
|
import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder;
|
||||||
|
import me.chanjar.weixin.cp.util.xml.XStreamTransformer;
|
||||||
import org.testng.annotations.Guice;
|
import org.testng.annotations.Guice;
|
||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
@ -14,7 +18,9 @@ import java.io.InputStream;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* WxCpKfServiceImpl-测试类
|
* WxCpKfServiceImpl-测试类
|
||||||
* 需要用到专门的 secret https://kf.weixin.qq.com/api/doc/path/93304#secret
|
* 需要用到专门的secret
|
||||||
|
* <a href="https://developer.work.weixin.qq.com/document/path/94638">官方文档1</a>
|
||||||
|
* <a href="https://kf.weixin.qq.com/api/doc/path/93304#secret">官方文档2</a>
|
||||||
*
|
*
|
||||||
* @author Fu created on 2022/1/19 20:12
|
* @author Fu created on 2022/1/19 20:12
|
||||||
*/
|
*/
|
||||||
@ -97,4 +103,34 @@ public class WxCpKfServiceImplTest {
|
|||||||
System.out.println(resp);
|
System.out.println(resp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 测试回调事件
|
||||||
|
* https://developer.work.weixin.qq.com/document/path/94670
|
||||||
|
*
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
@Test(priority = 6)
|
||||||
|
public void testEvent() throws Exception {
|
||||||
|
|
||||||
|
String xml = "<xml>\n" +
|
||||||
|
" <ToUserName><![CDATA[ww12345678910]]></ToUserName>\n" +
|
||||||
|
" <CreateTime>1348831860</CreateTime>\n" +
|
||||||
|
" <MsgType><![CDATA[event]]></MsgType>\n" +
|
||||||
|
" <Event><![CDATA[kf_msg_or_event]]></Event>\n" +
|
||||||
|
" <Token><![CDATA[ENCApHxnGDNAVNY4AaSJKj4Tb5mwsEMzxhFmHVGcra996NR]]></Token>\n" +
|
||||||
|
" <OpenKfId><![CDATA[wkxxxxxxx]]></OpenKfId>\n" +
|
||||||
|
"</xml>";
|
||||||
|
|
||||||
|
WxCpXmlMessage xmlMsg = XStreamTransformer.fromXml(WxCpXmlMessage.class, xml);
|
||||||
|
xmlMsg.setAllFieldsMap(XmlUtils.xml2Map(xml));
|
||||||
|
System.out.println(WxCpGsonBuilder.create().toJson(xmlMsg));
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 微信客服事件推送
|
||||||
|
* @see WxConsts.EventType.KF_MSG_OR_EVENT
|
||||||
|
*/
|
||||||
|
System.out.println("token:" + xmlMsg.getToken());
|
||||||
|
System.out.println("openKfId:" + xmlMsg.getOpenKfId());
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user