最近公司销售部门用到了腾讯EC,实现公司内部OA系统与腾讯ec的数据同步,要求如下:

1、OA内部系统账号与腾讯ec登陆账号同步

2、首先做义工客户端工具用来把现有客户导入到EC,销售人员的客户信息与EC同步,同时EC添加客户也要同时保存到OA系统内部,两边实现同步

  在此不得不吐槽一下,腾讯EC的api,竟然没有导入用户的功能,各种验证,由于内部OA使用比较长,以前手机号码有的填的手机号,有的是固话,本想直接导入到EC电话字段,ec的电话字段竟然只认手机号,同时也不得不说一下ec的产品经理,在我眼里特么他们就会说,没有安排,就是这么设计的,时间成本,那垃圾接口都难用成这样了,还不改改吗,难怪EC的客户比起钉钉来真是差远了,,,,,,,,,,,,,,,,,吐槽一下。

3、公司内部语音及电话记录自动导入到腾讯EC

4、各种自定义字段来存OA系统里面的客户信息字段

首先,封装一个通用的用来请求Https,返回json数据的网络请求方法,如下图:

腾讯EC请求接口必须要的access_token,由于token每两小时过期,于是写了一个通用的辅助缓存类,用来缓存token及其他常用数据,使用了System.Runtime.Caching的内存缓存实现:

接着就是获取token的方法和过期自动刷新token

下面说一下导入oa客户的业务了,由于腾讯EC没有同步系统账号的功能只有在api后台有个导入模板的功能,没办法只能先用表格把系统用户导入ec,然后用手机号来对应ec账号和系统账号,通过手机号拿查询ec获取id,同时也通过手机号获取oa系统内部人员和客户的关系一次来导入客户进入ec,公司系统客户信息有很多字段信息和多个联系人,而ec的可用字段只有那几个,没办法在后台建立了很多个自定义字段来做对应,总之是先查出系统的客户信息和联系人信息通过构建ec需要的Json对象*(当然还包括多个自定义字段),构造号客户添加的json直接post到接口,不得不说各种验证导致了各种错误,于是就在接口返回的地方加了日志来记录导入数据的错误信息,好在返回的错误信息还算明确

客户相关操作:

错误日志信息:

相关实体类及缓存键值:

最后附上同步程序的客户端:

此程序封装客户导入,同步,查询及同步跟踪记录的功能,跟踪记录是在另一套客服系统里面实现自动同步数据到ec,于是把ecapi封装成类库供其他程序调用。

总的来说,第三方接口对接很简单,但是感觉EC 的api接口实在是不强大,很多不合理的地方,接口至今也不完善,本文记录一次第三方系统对接EC的过程,同时也提供了一个很简单思路,仅供记录,高手勿喷,喷子勿喷,谢谢。

有需要源码和交流的可以联系:1013454562

另外也可加入本人新建的QQ群:487501652

腾讯EC .net API对接第三方系统的更多相关文章

  1. 第九章 Odoo 12开发之外部 API - 集成第三方系统

    Odoo 服务器端带有外部 API,可供网页客户端和其它客户端应用使用.本文中我们将学习如何在我们的客户端程序中使用 Odoo 的外部 API.为避免引入大家所不熟悉的编程语言,此处我们将使用基于 P ...

  2. 使用SAP open connector调用第三方系统的API

    我们把hubspot这个SaaS CRM作为第三方系统,首先登录hubspot,创建一个新的API key: 把创建的key拷贝到剪切板里: 然后登录SAP Cloud for Customer上的o ...

  3. 如何更优雅地对接第三方API

    本文所有示例完整代码地址:https://github.com/yu-linfeng/BlogRepositories/tree/master/repositories/third 我们在日常开发过程 ...

  4. 与第三方系统对接,生成Cloud出入库单据

    案例: Cloud的采购订单同步到第三方系统,第三方系统入库后同步生成Cloud采购入库单. 解决方案:调用采购订单的下推API,先生成保存状态的采购入库单(采购入库单中的仓库是必填项,可以在采购订单 ...

  5. 第三方API对接如何设计接口认证?

    一.前言 在与第三方系统做接口对接时,往往需要考虑接口的安全性问题,本文主要分享几个常见的系统之间做接口对接时的认证方案. 二.认证方案 例如订单下单后通过 延时任务 对接 物流系统 这种 异步 的场 ...

  6. 如何从零开始对接第三方登录(Java版):QQ登录和微博登录

    前言 个人网站最近增加了评论功能,为了方便用户不用注册就可以评论,对接了QQ和微博这2大常用软件的一键登录,总的来说其实都挺简单的,可能会有一点小坑,但不算多,完整记录下来方便后来人快速对接. 后台设 ...

  7. JIRA API 对接

    系统要跟JIRA对接,将本系统数据发送给jira. 开始一头雾水怎么让数据传过去已什么形式存在,是存数据库呢还是怎么显示呢.研究半天发现其实只要将原数据作为json数据提供给jira接口,jira接口 ...

  8. java 调用第三方系统时的连接代码-记录

    前言:该文章主要是总结我在实际工作中遇到的问题,在调取第三方系统的时候出现的问题,算自己的总结.各位博友如果有什么建议或意见欢迎留言指正. 先将准备传入参数 再与第三方系统建立连接 再第三方系统处理后 ...

  9. kubernetes对接第三方认证

    kubernetes对接第三方认证 kubernetes离线安装包地址 概述 本文介绍如何使用github账户去关联自己kubernetes账户.达到如下效果: 使用github用户email作为ku ...

随机推荐

  1. 【转】为什么我的DIV块前总有空隙?

    在做网站项目时,博主爱吾所爱(爱生活=爱技术)很偶然地碰到一个奇怪的事情.我的DIV嵌套在另一个DIV里,总是出现这样一行空隙: Firebug查看内外两层DIV的margin, padding, l ...

  2. linux kernel 提示VFS: Cannot open root device "mmcblk0p1" or unknown-block(179,1): error -19等信息后发生panic

    一.背景 文件系统安装在sd卡的第一个分区中,使用的是ext4文件系统,linux内核版本为4.14 二.思考 在内核启动之前,uboot给内核传递了参数root=/dev/mmcblk0p1,但是为 ...

  3. ThinkPHP开发博客系统笔记之一

    1.前后台搭建 开发的第一步是搭建前后台系统.搭建前台系统的时候新建了LoginController控制器和登录界面View/Login/index.tpl.模板文件中需要引入js和css文件,这里想 ...

  4. Educational Codeforces Round 47 D

    Let's call an undirected graph $G=(V,E)$ relatively prime if and only if for each edge $(v,u)∈E$ $GC ...

  5. 算法准备-分治算法解决第k位数的线性查找

    由作业士兵排队问题引出的 在一个划分成网格的操场上,n个士兵散乱地站在网格点上.网格点由整数最表(x,y)表示.士兵可以沿着网格边上.下.左.右移动一步,但在同一时刻一个网格上只能有一名士兵.按照军官 ...

  6. 创建maven或者Gradle项目的时候GroupId和ArtifactId以及Version是什么意思?

    GroupId 是项目组织的唯一标识符,在实际开发中对应JAVA的包的结构,就是main目录里java的目录结构,如 ‘com.itcast.demo’. ArtifactId是项目的唯一标识符,在实 ...

  7. java 生成验证Guid码

  8. [原][osg][osgearth]我眼中的osgearth

    看了一下,OE生成的可执行文件 除了osg库和第三方库 OE生产最多的dll就是 osgdb_osgearth_XXXX.dll了 这些都是为了通过osgDB机制加载earth的数据用的. 所以,我觉 ...

  9. android--------Universal-Image-Loader图片加载框架和结合LruCache缓存图片

    本博客包含包含Android-Universal-Image-Loader 网络图片加载框架实现图片加载和结合universal-image-loader与LruCache来自定义缓存图片,可以设置缓 ...

  10. 过滤器系列(三)—— RSQF

    这个过滤器本身是一篇论文中提出的过滤器的简化版本,去掉了计数功能,我觉得简化版本应用的可能也很广,专门写一篇简化版本的RSQF.RSQF全称是rank-and-select based filter, ...