Skip to Content

 

1. 背景 

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

2. 前提条件

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

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

3. 备注

  1. 整个集成场景主要是基于SOAP协议的Webservices, 因为对应的OData service在当前的版本还没有提供。
  2. 集成场景是基于HTML5 客户端,不是RUI
  3. 微信是作为自定义的社交渠道在C4C系统里配置的

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 中间服务器

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 创建定制通道类型

如下图所示,在C4C系统里创建一个通道类型微信:

5.2.2 创建Mashup Service

如下图所示,创建一个Mashup Service来跟你的中间服务器交互,url填的是:<你的中间服务器地址>/c4c/wechat,其他的与按图中提示填写:

5.2.3 创建订制通道

用先前创建的订制通道类型创建一个订制通道,这个订制通道就是相关公众号在C4C系统的体现。在创建时需要把先前创建的mashup service的ID填进去,如下图所示:

5.2.4 C4C对外接口

我们推荐使用ODATA接口来进行与C4C系统的交互,但是由于现在标准产品提供的ODATA接口有限,部分接口暂时需要使用soap协议的web service,缺失的接口,可以在Influence上提交反馈,可能会考虑在后续的版本中陆续开放。

5.2.4.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.4.2 Web Service接口

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

5.3 微信公众号网页  

具体可以参考sample code。

备注:中间服务器的代码实践可以参考sample code;联系C4C中国产品团队的 sean.li01@sap.com获取。

 

 

 

 

To report this post you need to login first.

1 Comment

You must be Logged on to comment or reply to a post.

Leave a Reply