天天看點

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系統中:

SAP系統和微信內建的系列教程之十:如何在SAP C4C系統裡直接回複消息給微信使用者
SAP系統和微信內建的系列教程之十:如何在SAP C4C系統裡直接回複消息給微信使用者
SAP系統和微信內建的系列教程之十:如何在SAP C4C系統裡直接回複消息給微信使用者

同時,每一條C4C Social Media Message都會自動生成一條Service Ticket,下圖ID為1034309的Ticket是一個例子:

SAP系統和微信內建的系列教程之十:如何在SAP C4C系統裡直接回複消息給微信使用者

本文實作的場景則更進一步。C4C座席人員在系統裡回複該Service Ticket,比如下圖是座席人員的回複,大意是:“親愛的客戶,我們已經收到了您的服務請求,正在進行中”。

SAP系統和微信內建的系列教程之十:如何在SAP C4C系統裡直接回複消息給微信使用者
SAP系統和微信內建的系列教程之十:如何在SAP C4C系統裡直接回複消息給微信使用者

通過本文介紹的增強步驟,C4C座席人員的回複,将會自動推送到微信使用者的手機上:

SAP系統和微信內建的系列教程之十:如何在SAP C4C系統裡直接回複消息給微信使用者
SAP系統和微信內建的系列教程之十:如何在SAP C4C系統裡直接回複消息給微信使用者

下面是具體的實作步驟。

在C4C系統裡建立一個類型為Rest Service的Mashup:

SAP系統和微信內建的系列教程之十:如何在SAP C4C系統裡直接回複消息給微信使用者

Mashup詳細資訊維護如下,最關鍵的字段是URL,需要指向部署到雲平台的nodejs應用暴露出的一個endpoint,本文的例子是/fromc4

SAP系統和微信內建的系列教程之十:如何在SAP C4C系統裡直接回複消息給微信使用者

當C4C Service Ticket被座席人員回複時,對應的資料會被C4C轉換成XML格式,通過HTTP POST,發送到上圖Mashup URL字段維護的endpoint去:

http://wechatjerry.herokuapp.com/fromc4c

将建立好的Mashup Service配置設定到本系列前一篇文章建立的自定義Channel ZJERRYWC中去:

SAP系統和微信內建的系列教程之十:如何在SAP C4C系統裡直接回複消息給微信使用者

在微信消息伺服器實作的index.js裡,當endpoint /fromc4c收到HTTP POST請求時,調用handleReplyFromC4C函數,将C4C座席人員的回複内容,調用微信API轉發給微信使用者。

SAP系統和微信內建的系列教程之十:如何在SAP C4C系統裡直接回複消息給微信使用者
https://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标簽頁裡:

SAP系統和微信內建的系列教程之十:如何在SAP C4C系統裡直接回複消息給微信使用者

如果忘記了這個邏輯,可以重新閱讀本系列前一篇文章:

如何将微信使用者發送到微信公衆号的消息儲存到SAP C4C系統

是以,handleReplyFromC4C需要三個實作步驟:

SAP系統和微信內建的系列教程之十:如何在SAP C4C系統裡直接回複消息給微信使用者

1) 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系統內建的系列介紹到此結束,感謝大家的關注。

更多閱讀

繼續閱讀