前段时间接到任务,要开发一个业务系统,用于查询企业微信的会话内容存档数据。主要面向的用户群体是之前使用企业QQ,转型到使用企业微信的企业客服用户。该系统需要可查询企业内部客服与外部客户之间的聊天存档数据,用于追溯服务记录、监控服务质量。


需求部门提出需求之后,我看了一眼企业微信开发者网站上有这方面接口,便答应了下来。没想到真正开发的时候遇上了困难:企业微信官方提供的会话内容存档的SDK只支持C和Java,没有针对C#或者.net平台下的其他语言开放SDK。苦于承诺过对方,便寻思着用C#来调用C_sdk。以下为开发过程中的关键步骤:


1.通过企业微信开发者网站,下载会话内容存档的SDK,地址如下(我下载的是Windows环境SDK v1.1):

https://work.weixin.qq.com/api/doc/90000/90135/91774#整体流程


2.将C_sdk中的相关文件放置在项目目录下

C#企业微信会话内容存档FinanceSDK-2.png


3.建立适配企业微信FinanceSDK的C#类,这里列出一些关键方法,相关的类文件可以从本文末尾的附件处下载:

C#企业微信会话内容存档FinanceSDK-3.jpg

以上代码是通过FinanceAdapter类中的适配方法,调用C_sdk中的函数,得到数据的指针地址,然后通过Marshal.Copy()方法把指针指向的JSON数据内容,提取到字符串变量中。最后将JSON字符串反序列化为自己方便处理的数据格式(iChatList)


此处需要注意的是:企业微信的会话内容存档,提供的解密密钥是一段文本字符串,需要将其转换为xml格式。可将文本字符串保存为.pem文件,然后通过以下地址转换:

https://the-x.cn/certificate/PemToXml.aspx


相关类文件下载:

WeWorkFinanceSdk.zip