这一章我们将介绍在 Salesforce 中如何处理微信客服接口。当用户主动发消息到微信公众账号的时候,包括发送信息、点击自定义菜单click事件、订阅事件、扫描二维码事件、支付成功事件、用户维权,微信将会把消息数据推送给开发者,开发者在一段时间内(目前为48小时)可以调用客服消息接口,通过 POST
方法把 JSON
数据包发送消息给普通用户,在48小时内不限制发送次数。此接口主要用于客服等有人工消息处理环节的功能,方便企业提供更加优质的服务。
客服接口调用请求说明
客服接口调用的接口说明如下( http 请求方式为 POST )
https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=[ACCESS_TOKEN]
获取
Access Token
的方式,可以查看 Salesforce Force.com Site 集成微信公众平台 (五) 菜单处理。
客服接口提供了巨大的想象空间,我们可以据此开发企业客服解决方案,当用户发送支持请求到微信公众账号后,客服人员在 Salesforce 里收到这些信息并做进一步的处理。
向用户发送文本消息
向用户发送文本消息时,发送的数据格式如下:
{
"touser":"OPENID",
"msgtype":"text",
"text":
{
"content":"Hello World"
}
}
参数的说明如下(OpenID 就是用户的微信ID):
接下来我们演示一个例子,当单击技术社区菜单的时候发送一个测试客服消息文本给用户。代码如下:
private static void sendMsgWithCustomerServices()
{
Http h = new Http();
HttpRequest req = new HttpRequest();
req.setMethod('POST');
req.setHeader('Content-Type','text/xml;charset=UTF-8');
String sendMsg = '{' +
'"touser":"oDZ3uw6ZxjacNBe26LK7KLldBDxo",' +
'"msgtype":"text",' +
'"text": { "content":"测试客服消息" }' +
}';
req.setBody(sendMsg);
req.setEndpoint('https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=' + accesstoken);
String bodyRes = '';
try
{
HttpResponse res = h.send(req);
bodyRes = res.getBody();
}
catch(System.CalloutException ex)
{
System.debug('Callout error: '+ e);
ApexPages.addMessages(ex);
}
}
近接着添加上面的方法到 handleEvent 方法。
private static String handleEvent(ReceiveMsg msg)
{
String event = msg.event;
String strTmp = '';
if(event.equals('subscribe'))
{
strTmp = '欢迎关注本账号!';
}
else if(event.equals('unsubscribe'))
{
strTmp = '';
}
else if(event.equals('CLICK'))
{
if('技术社区' == msg.eventKey)
{
sendMsgWithCustomerServices();
}
else
{
strTmp = '您点击了' + msg.eventKey;
}
}
String result = composeTextReply(msg, strTmp);
return result;
}
显示结果如下:
发送其他消息类型
向用户发送图片消息
发送的数据格式如下:
{
"touser":"OPENID",
"msgtype":"image",
"image":
{
"media_id":"MEDIA_ID"
}
}
参数说明如下(其中图片的媒体ID需要通过腾讯的上传多媒体文件接口上传图片后获得):
向用户发送语音消息
数据格式如下:
{
"touser":"OPENID",
"msgtype":"voice",
"voice":
{
"media_id":"MEDIA_ID"
}
}
参数说明如下:
向用户发送视频消息
发送视频的消息格式如下:
{
"touser":"OPENID",
"msgtype":"video",
"video":
{
"media_id":"MEDIA_ID",
"thumb_media_id":"MEDIA_ID",
"title":"TITLE",
"description":"DESCRIPTION"
}
}
参数说明如下:
向用户发送音乐消息
发送音乐的消息格式如下:
{
"touser":"OPENID",
"msgtype":"music",
"music":
{
"title":"MUSIC_TITLE",
"description":"MUSIC_DESCRIPTION",
"musicurl":"MUSIC_URL",
"hqmusicurl":"HQ_MUSIC_URL",
"thumb_media_id":"THUMB_MEDIA_ID"
}
}
参数说明如下:
总结
这一章我们介绍了微信客服接口的使用。后的章节我们将讲解微信的 OAuth 认证。