SAP系统和微信集成的系列教程之十:如何在SAP C4C系统里直接回复消息给微信用户

简介: SAP系统和微信集成的系列教程之十:如何在SAP C4C系统里直接回复消息给微信用户

本系列的英文版Jerry写作于2017年,这个教程总共包含十篇文章,发表在SAP社区上。


系列目录


(1) 微信开发环境的搭建


(2) 如何通过微信公众号消费API


(3) 微信用户关注公众号之后,自动在SAP C4C系统创建客户主数据


(4) 如何将SAP C4C主数据变化推送给微信公众号


(5) 如何将SAP UI5应用嵌入到微信公众号菜单中


(6) 如何通过OAuth2获取微信用户信息并显示在SAP UI5应用中


(7) 使用Redis存储微信用户和公众号的对话记录


(8) 100行代码在微信公众号里集成地图搜索功能


(9) 如何将微信用户发送到微信公众号的消息保存到SAP C4C系统


(10) 如何在SAP C4C系统直接回复消息给微信公众号的订阅者(本文)


最近有不少朋友在微信上向我咨询SAP系统和微信公众号集成的问题,因此我把当时写的英文版翻译成中文,重新发布在我的公众号上。


需要注意的是,时隔三年,微信公众号的开发流程可能有所变化,请大家自行鉴别。和微信公众号集成的系统,我三年前选择的是SAP Cloud for Customer.


在本系列前一篇文章 如何将微信用户发送到微信公众号的消息保存到SAP C4C系统 ,我们已经实现了这样的场景:某微信用户关注微信公众号之后,接下来发送给该公众号的每一条文本信息,都会以Social Media Message的模型,自动转存到C4C系统中:


image.pngimage.pngimage.png同时,每一条C4C Social Media Message都会自动生成一条Service Ticket,下图ID为1034309的Ticket是一个例子:

image.png本文实现的场景则更进一步。C4C座席人员在系统里回复该Service Ticket,比如下图是座席人员的回复,大意是:“亲爱的客户,我们已经收到了您的服务请求,正在处理中”。

image.pngimage.png通过本文介绍的增强步骤,C4C座席人员的回复,将会自动推送到微信用户的手机上:image.pngimage.png下面是具体的实现步骤。

在C4C系统里创建一个类型为Rest Service的Mashup:image.pngMashup详细信息维护如下,最关键的字段是URL,需要指向部署到云平台的nodejs应用暴露出的一个endpoint,本文的例子是/fromc4image.png当C4C Service Ticket被座席人员回复时,对应的数据会被C4C转换成XML格式,通过HTTP POST,发送到上图Mashup URL字段维护的endpoint去:


http://wechatjerry.herokuapp.com/fromc4c


将新建好的Mashup Service分配到本系列前一篇文章创建的自定义Channel ZJERRYWC中去:



image.png在微信消息服务器实现的index.js里,当endpoint /fromc4c收到HTTP POST请求时,调用handleReplyFromC4C函数,将C4C座席人员的回复内容,调用微信API转发给微信用户。image.pnghttps://github.com/wangzixi-diablo/wechat-sap-integration/blob/main/jerryapp/routes/index.js


所以C4C座席人员回复Service Ticket之后,数据流向为:


C4C Mashup->微信公众号消息服务器->微信app

handleReplyFromC4C.js的完整实现代码如下。


微信消息服务器接收到通过C4C Mashup推送过来的HTTP POST数据,如何知道该转发给哪一个微信用户呢?答案是通过微信用户的Wechat ID,该ID早在该微信用户第一次关注微信公众号的时候,就自动维护在C4C系统里,自动创建的客户主数据对应的Social Profiles标签页里:

image.png如果忘记了这个逻辑,可以重新阅读本系列前一篇文章:如何将微信用户发送到微信公众号的消息保存到SAP C4C系统

因此,handleReplyFromC4C需要三个实现步骤:

image.png1) C4C Mashup推送给微信消息服务器的数据中包含了Social Media Message ID,需要根据该ID,调用API得到message明细,从中取出Social Media User Profile ID.


(2) 根据Social Media User Profile ID,调用API拿到Profile明细,从明细中取出微信用户Wechat ID.


(3) 调用微信API,将Service Ticket回复的内容,发送给Wechat ID对应的微信用户。这样,微信用户就能在其手机上,看到C4C座席人员在系统里回复Service Ticket的文本内容了。


微信公众号同SAP C4C系统集成的系列介绍到此结束,感谢大家的关注。


更多阅读


(1) 微信开发环境的搭建


(2) 如何通过微信公众号消费API


(3) 微信用户关注公众号之后,自动在SAP C4C系统创建客户主数据


(4) 如何将SAP C4C主数据变化推送给微信公众号


(5) 如何将SAP UI5应用嵌入到微信公众号菜单中


(6) 如何通过OAuth2获取微信用户信息并显示在SAP UI5应用中


(7) 使用Redis存储微信用户和公众号的对话记录


(8) 100行代码在微信公众号里集成地图搜索功能


(9) 如何将微信用户发送到微信公众号的消息保存到SAP C4C系统


(10) 如何在SAP C4C系统直接回复消息给微信公众号的订阅者(本文)



相关实践学习
RocketMQ一站式入门使用
从源码编译、部署broker、部署namesrv,使用java客户端首发消息等一站式入门RocketMQ。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
1月前
|
安全 测试技术 C#
C#.手术麻醉系统源码 手麻系统如何与医院信息系统进行集成?
C#手术麻醉系统源码集成到医院信息系统涉及标准数据接口、患者信息同步、医嘱报告共享、实时监测数据传输及安全权限管理。通过这些步骤,确保信息的准确、及时和安全流动,提升医疗效率和服务质量。系统集成后需测试优化,以保证稳定性。图片展示了集成的不同方面。
|
6天前
|
运维 Kubernetes 持续交付
构建高效自动化运维系统:基于容器技术的持续集成与持续部署实践
【4月更文挑战第30天】 在快速发展的云计算时代,传统的运维模式已无法满足敏捷开发和快速迭代的需求。本文将介绍如何利用容器技术搭建一套高效自动化运维系统,实现软件的持续集成(CI)与持续部署(CD)。文章首先探讨了现代运维面临的挑战,接着详细阐述了容器技术的核心组件和工作原理,最后通过实际案例展示了如何整合这些组件来构建一个可靠、可扩展的自动化运维平台。
|
13天前
|
敏捷开发 缓存 Devops
构建高效持续集成系统的策略与实践
【4月更文挑战第23天】 在快速迭代的软件开发过程中,持续集成(CI)是确保代码质量和加速交付的关键。本文深入探讨了构建和维护一个高效CI系统的方法和最佳实践。从自动化测试到部署策略,文中细致分析了各环节的优化技巧,并提供了解决常见问题的实用建议。通过案例研究和工具选型,读者将获得构建强大CI流程的具体指导,以支持敏捷和DevOps环境下的高质量软件发布。
|
16天前
|
小程序 JavaScript Java
基于SpringBoot+Vue+uniapp微信小程序的医院核酸检测服务系统的详细设计和实现
基于SpringBoot+Vue+uniapp微信小程序的医院核酸检测服务系统的详细设计和实现
36 0
|
26天前
|
小程序 数据库
【微信小程序7】云开发中实时聊天系统的实现方法
【微信小程序7】云开发中实时聊天系统的实现方法
23 0
|
29天前
|
人工智能 小程序 Java
Java智慧校园系统源码 微信小程序+电子班牌
通过设备管理对百纳智慧校园的智慧班牌以及百纳智慧屏(校牌)进行统一集中式管理,支持浏览所有设备的基本信息以及在离线状态,支持添加设备、设备一键开关机、一键重启、设置节假日开关机时间、设置日常开关机时间、远程班牌截屏、远程班牌升级等操作。
|
1月前
|
运维 Kubernetes 监控
构建高效自动化运维系统:基于容器技术的持续集成与部署策略
【4月更文挑战第4天】在数字化转型的浪潮中,企业对于软件交付的速度和质量要求越来越高。传统的运维模式已无法满足敏捷开发和快速迭代的需求。本文旨在探讨如何利用容器技术构建一个高效的自动化运维系统,实现软件开发生命周期中的持续集成(CI)与持续部署(CD)。通过分析容器技术的核心优势,结合DevOps文化和微服务架构,我们提出了一套系统的构建策略和实践步骤。文章将详细阐述从环境搭建到流程优化的全过程,以及在此过程中可能遇到的挑战和解决方案,为运维专业人员提供参考和指导。
|
9天前
|
前端开发 Java 应用服务中间件
从零手写实现 tomcat-08-tomcat 如何与 springboot 集成?
该文是一系列关于从零开始手写实现 Apache Tomcat 的教程概述。作者希望通过亲自动手实践理解 Tomcat 的核心机制。文章讨论了 Spring Boot 如何实现直接通过 `main` 方法启动,Spring 与 Tomcat 容器的集成方式,以及两者生命周期的同步原理。文中还提出了实现 Tomcat 的启发,强调在设计启动流程时确保资源的正确加载和初始化。最后提到了一个名为 mini-cat(嗅虎)的简易 Tomcat 实现项目,开源于 [GitHub](https://github.com/houbb/minicat)。
|
27天前
|
消息中间件 Java Kafka
Springboot集成高低版本kafka
Springboot集成高低版本kafka
|
1月前
|
NoSQL Java Redis
SpringBoot集成Redis解决表单重复提交接口幂等(亲测可用)
SpringBoot集成Redis解决表单重复提交接口幂等(亲测可用)
361 0