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

1. 背景

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

2. 前提条件

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

你需要自己搭建一个中间服务器用以转接和转发微信服务器和C4C系统的信息。

C4C端需要发布对应的接口

3. 备注

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

4. 集成流程

4.1 流程图

%E6%B5%81%E7%A8%8B%E5%9B%BE.png

4.2 流程说明

用户关注公众号,中间服务器获取关注用户信息,在C4C系统创建该用户的个人客户信息;

用户通过公众号创建客户账号,中间服务器接受用户请求,通过C4C提供的接口,在C4C系统创建客户账号;

用户通过公众号创建ticket,中间服务器接受用户请求,通过C4C提供的接口,在C4C系统里创建ticket;

管理员在C4C系统里回复信息,信息通过C4C配置的接口,转发给中间服务器,中间服务器将信息推送给用户。

4.3 流程开发内容

中间服务器的开发

C4C系统后台接口配置

微信公众号交互网页开发

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 验证微信公众号服务器

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

%E8%B7%AF%E5%BE%84.png

保存时,微信服务器会将配置的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)来跟你的中间服务器交互,具体步骤如下:

首先进入管理员工作中心,并选择业务灵活性工作中心视图。

选择混搭Web服务,并点击新建。

选择REST服务。

在新的界面填入相应的信息。 其中服务信息部分的url填的是:/c4c/wechat。

mashup%E9%80%9A%E9%81%93.jpg

5.2.2 创建社交媒体通道

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

进入管理员工作中心,并选择服务与社交工作中心视图。

在社交媒体模块下,打开社交媒体渠道这个链接。

点击页面右上角的新建。

选择Wechat作为社交媒体渠道类型。

维护渠道编号,渠道,以及在上一步创建的混搭Web服务 (Mashup Service )编号。 如下图所示:

e6c08bf911f691098cd18d8b9e6919ec.png

5.2.3 C4C对外接口

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

5.2.3.1 ODATA接口

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

5.2.3.2 Web Service接口

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

1279b73ae71500aba9b29c243c60664e.png5.3 微信公众号网页

具体可以参考sample code。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值