(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系統自動生成了下列數據:
(1) 一個代表該微信用戶的individual customer主數據
(2) 一個綁定到customer主數據的C4C Social Media User Profile
這兩條數據的ID,會通過微信消息推送回微信用戶的微信app上:
這些成功創建的C4C數據的ID,在微信消息伺服器,即nodejs應用的控制臺上也能觀察到:
根據返回給微信用戶的客戶主數據ID,到C4C系統找到該主數據,在其Social Profiles面板裡,能看到該Social Profile的渠道類型(Channel Type)為自定義的Jerry's Wechat Channel:
一旦微信用戶給微信公眾號發送文本信息,該文本信息通過微信公眾號的消息伺服器作為中轉,調用C4C API,在C4C系統創建一條內容為該文本信息的Social Media Message數據。
下圖是一個例子:我發送一條"Hello C4C Agent ......"的文本信息,在SAP C4C系統創建的Social Media Message ID為59610:
根據ID在C4C系統找到這條Social Media Message:
同時,C4C系統還會基於新建的Social Media Message,自動生成一條新的Service Ticket,這是C4C系統的標準功能,無需額外編程實現。這個標準功能也是本系列最後一篇文章,即如何在SAP C4C系統直接回復消息給微信公眾號的訂閱者 工作的前提條件。
下面是這個場景具體的實現步驟。
打開C4C配置的Activity List:
創建一個自定義Channel:
記下這個新建Channel的Type Code:905
基於上圖的Channel 905創建一個新的Social Media Channel,ID為ZJERRYWC:
在我這個Github倉庫下有個service文件夾,包含了三個JavaScript文件:
https://github.com/wangzixi-diablo/wechat-sap-integration/tree/main/jerryapp/service
(1) createAccountInC4C.js:負責微信用戶關注微信公眾號之後, 調用C4C OData API創建individual customer.
(2) createSocialMediaProfile.js:調用API創建C4C Social Media Profile.
(3) bindSocialProfileWithIndividualCustomer.js:負責將前兩步創建的C4C數據綁定起來。
在第二步創建Social Media Profile時,調用C4C API傳入的輸入負載裡,將ChannelCode硬編碼成之前在C4C系統裡新建的自定義Channel的Type Code:905
在createAccountInC4C.js的實現裡,這三步按順序實現在函數createAccount裡:
在微信消息伺服器的事件處理函數裡,一旦接收到「關注」事件( 事件類型值:subscribe)時,調用createAccount函數,完成上述三個步驟:
微信用戶關注了公眾號之後,發送文本消息給該公眾號,微信消息伺服器調用createSocialMediaActivity.js裡的函數createSocialMessage, 在C4C系統裡創建一條新的Social Media Message.
在unittest文件夾下有一個單元測試用例,展示了該函數的用法。
五個輸入參數:
(1) o0KlM1i2_4-zHRm-IWGRlA1Cjc:發送消息給微信公眾號的微信用戶ID
(2) 1003: 待創建的Social Media Message ID,傳一個非空值即可,因為C4C系統會根據自己的Number Range生成該ID,並返回給API調用者。
(3) 6066: 當前微信用戶在C4C系統裡對應的Social Media User Profile ID,該ID是在微信用戶關注公眾號時,在C4C系統生成並返回的。
(4) ZJERRYWC: 之前已經介紹過,在C4C系統手動創建的自定義Channel ID.
(5) 「Hello C4C Agent….」: 微信用戶發送給微信公眾號的文本信息。
使用函數createSocialMessage,在C4C系統創建以微信用戶發送給微信公眾號的文本信息作為內容的Social Media Message,創建成功後返回其ID給微信用戶:59160.
根據ID 59160到C4C系統查詢到該Social Media Message,檢查其Message欄位的值,同微信用戶發送給微信公眾號的文本信息完全一致。
本系列的最後一篇文章,我們將學習如何直接在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系統直接回復消息給微信公眾號的訂閱者