Skip to Content
Author's profile photo Wendy Wang

B2C场景:微信与C4C 服务请求的集成实现

 

1. 背景 

以一个简单的场景为例,用户通过关注相关的公众号,在C4C系统里,创建与该用户相关联的个人客户账号。然后用户可以根据需求通过公众号创建服务请求。管理员可以在C4C系统里回复服务请求,然后回复信息将会推送给用户。

2. 前提条件

在这个集成过程中,需要满足如下前提条件:

  1. 你需要自己搭建一个中间服务器用以转接和转发微信服务器和C4C系统的信息。
  2. C4C端需要发布对应的接口

3. 备注

  1. 整个集成场景主要是基于SOAP协议的Webservices, 对应的OData service版本在2019年的版本中陆续提供。

4. 集成流程

4.1 流程图

4.2 流程说明

  1. 用户关注公众号,中间服务器获取关注用户信息,在C4C系统创建该用户的个人客户信息;
  2. 用户通过公众号创建客户账号,中间服务器接受用户请求,通过C4C提供的接口,在C4C系统创建客户账号;
  3. 用户通过公众号创建ticket,中间服务器接受用户请求,通过C4C提供的接口,在C4C系统里创建ticket;
  4. 管理员在C4C系统里回复信息,信息通过C4C配置的接口,转发给中间服务器,中间服务器将信息推送给用户。

4.3 流程开发内容

  1. 中间服务器的开发
  2. C4C系统后台接口配置
  3. 微信公众号交互网页开发

5.设计实现

5.1 中间服务器

要搭建自己的中间服务器,以SAP SCP 为例,首先请参看官方的SCP帮助文档来了解如何在SCP上搭建一个节点服务器。如下内容则是关于节点服务器的一些主要的实现逻辑,具体详情,可以参考范例代码

5.1.1监听路径及功能

路径 请求  功能
/wechat GET 验证与微信公众号服务器的连接
/wechat POST 接收公众号发来的信息及各种事件
/c4c/wechat POST 接收C4C系统发来的信息
/getWXWebToken POST 获取公众号网页所需token及openid
/web/create POST 处理公众号网页发送的创建请求
/web/update POST 处理公众号网页发送的更新请求
/web/get GET 处理公众号网页发送的取数请求

5.1.2 处理公众号接口密钥 

通过微信公众号接口:https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET 获取访问其他接口所需的密钥;因为密钥的有效时间为2个小时,并且新的密钥一旦生成,旧的就会失效。所以为了避免多用户操作的密钥失效的问题,需要将密钥存在服务器里,并且定时刷新密钥,是所有用户都是用保存的密钥,避免密钥重复刷新。

5.1.3 验证微信公众号服务器

在公众号管理页面类,按如下格式配置公众号信息:

保存时,微信服务器会将配置的token和一些参数以GET方式发送到所配的服务器路径“/wechat”上,在中间服务器上用相同的token进行编码,并与签名比对,实现服务器的相互连接。中间服务器接收的参数有:token、timestamp、nonce、signature;

1)将token、timestamp、nonce三个参数进行字典序排序; 2)将三个参数字符串拼接成一个字符串进行sha1加密 ;3)开发者获得加密后的字符串可与signature对比,标识该请求来源于微信。

 5.1.4 生成公众号自定义菜单

调用微信公众号接口:http请求方式:POST(请使用https协议) https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN ACCESS_TOKEN 用先前存在服务器的密钥。具体调用参数参考:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141013

5.2 C4C 配置

5.2.1 创建混搭Web服务(Mashup Service)

创建一个混搭Web服务(Mashup Service)来跟你的中间服务器交互,具体步骤如下:

  1. 首先进入管理员工作中心,并选择业务灵活性工作中心视图。
  2. 选择混搭Web服务,并点击新建
  3. 选择REST服务。
  4. 在新的界面填入相应的信息。 其中服务信息部分的url填的是:<你的中间服务器地址>/c4c/wechat。

5.2.2 创建社交媒体通道

为微信创建一个社交媒体通道,这个通道就是相关公众号在C4C系统的体现。在创建时需要把先前创建的混搭web服务(mashup service)的ID填进去。具体步骤如下:

  1. 进入管理员工作中心,并选择服务与社交工作中心视图。
  2. 社交媒体模块下,打开社交媒体渠道这个链接。
  3. 点击页面右上角的新建。
  4. 选择Wechat作为社交媒体渠道类型。
  5. 维护渠道编号,渠道,以及在上一步创建的混搭Web服务 (Mashup Service )编号。 如下图所示:

5.2.3 C4C对外接口

我们推荐使用ODATA接口来进行与C4C系统的交互,但是由于现在标准产品提供的ODATA接口有限,部分接口暂时需要使用soap协议的web service,缺失的接口,部分已经计划在2019年的版本中陆续开放,请注意关注官方的帮助文档,查看最新可用的ODATA接口列表。此外,还可以在Influence上提交反馈,可能会考虑在后续的版本中开放。

5.2.3.1 ODATA接口

在C4C里,我们提供了标准的ODATA service:https://<host_url>/sap/c4c/odata/v1/c4codata,在这个service下边有各种entity,通过https://<host_url>/sap/c4c/odata/v1/c4codata/entityCollection来对数据进行增删改查。

5.2.3.2 Web Service接口

通过下图中的步骤,来配置和获取web service接口:

5.3 微信公众号网页  

具体可以参考sample code。

 

 

 

 

 

Assigned Tags

      1 Comment
      You must be Logged on to comment or reply to a post.
      Author's profile photo Andy He
      Andy He

      Nice,如果标识开发团队可以提供微信服务器消息转发组件就更美了。。