腾讯EC .net API对接第三方系统
最近公司销售部门用到了腾讯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对接第三方系统的更多相关文章
- 第九章 Odoo 12开发之外部 API - 集成第三方系统
Odoo 服务器端带有外部 API,可供网页客户端和其它客户端应用使用.本文中我们将学习如何在我们的客户端程序中使用 Odoo 的外部 API.为避免引入大家所不熟悉的编程语言,此处我们将使用基于 P ...
- 使用SAP open connector调用第三方系统的API
我们把hubspot这个SaaS CRM作为第三方系统,首先登录hubspot,创建一个新的API key: 把创建的key拷贝到剪切板里: 然后登录SAP Cloud for Customer上的o ...
- 如何更优雅地对接第三方API
本文所有示例完整代码地址:https://github.com/yu-linfeng/BlogRepositories/tree/master/repositories/third 我们在日常开发过程 ...
- 与第三方系统对接,生成Cloud出入库单据
案例: Cloud的采购订单同步到第三方系统,第三方系统入库后同步生成Cloud采购入库单. 解决方案:调用采购订单的下推API,先生成保存状态的采购入库单(采购入库单中的仓库是必填项,可以在采购订单 ...
- 第三方API对接如何设计接口认证?
一.前言 在与第三方系统做接口对接时,往往需要考虑接口的安全性问题,本文主要分享几个常见的系统之间做接口对接时的认证方案. 二.认证方案 例如订单下单后通过 延时任务 对接 物流系统 这种 异步 的场 ...
- 如何从零开始对接第三方登录(Java版):QQ登录和微博登录
前言 个人网站最近增加了评论功能,为了方便用户不用注册就可以评论,对接了QQ和微博这2大常用软件的一键登录,总的来说其实都挺简单的,可能会有一点小坑,但不算多,完整记录下来方便后来人快速对接. 后台设 ...
- JIRA API 对接
系统要跟JIRA对接,将本系统数据发送给jira. 开始一头雾水怎么让数据传过去已什么形式存在,是存数据库呢还是怎么显示呢.研究半天发现其实只要将原数据作为json数据提供给jira接口,jira接口 ...
- java 调用第三方系统时的连接代码-记录
前言:该文章主要是总结我在实际工作中遇到的问题,在调取第三方系统的时候出现的问题,算自己的总结.各位博友如果有什么建议或意见欢迎留言指正. 先将准备传入参数 再与第三方系统建立连接 再第三方系统处理后 ...
- kubernetes对接第三方认证
kubernetes对接第三方认证 kubernetes离线安装包地址 概述 本文介绍如何使用github账户去关联自己kubernetes账户.达到如下效果: 使用github用户email作为ku ...
随机推荐
- ubinize的用法
1.ubinize支持哪些选项 Usage: ubinize [options] <ini-file> Generate UBI images. An UBI image may cont ...
- windows10添加开机自启动程序
1. 将要启动的程序创建快捷方式 2. 将创建的快捷方式放到以下文件夹中 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup
- HttpClient 4.5.3 get和post请求
HttpCilent 4.5.3 域名购买.com 后缀好域名 https://mi.aliyun.com/shop/38040 GET请求 CloseableHttpClient httpCilen ...
- SDN原理 OpenFlow协议 -4
通道 Channel 在前面的OpenFlow的内容中,我们提到了在交换层所采用的流表是控制层的Controller下发的,那么Controller是如何下发流表的呢?中间经过了哪些的流程和步骤?控制 ...
- ThinkPHP 表单自动验证运用
使用TP 3.2框架 public function add_post(){ //验证规则 $rule=array( array('name','require','请输入姓名',1),//必须验证n ...
- Qt570_CentOS64x64_02
1.Qt570的简单测试项目,在做"重新构建"的操作的时候,出现1个问题,Qt底下的"编译输出"窗口中的信息为: cc1plus: error: unrecog ...
- ThinkPHP 3.2 调用自定义函数库
ThinkPHP3.2 和3.1 区别还是有点大的 引入了命名空间,强化了驱动化和行为,增强了模块化的概念和对云平台的支持,并改进了诸多的细节.主要改进包括:模块化架构的全新设计全新命名空间和自动导入 ...
- POJ 2411 状压DP经典
Mondriaan's Dream Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 16771 Accepted: 968 ...
- iOS笔记之线程
dispatch_after dispatch_after能让我们添加进队列的任务延时执行,比如想让一个Block在10秒后执行: var time = dispatch_time(DISPATCH_ ...
- block 回调个人理解
在网上见过这么个面试题 使用block和GCD时要注意些什么?他们是一回事吗?block在ARC和MRC的用法有什么不同?使用时要注意些什么? 首先block 和 GCD 在我看来他们是完全不同的概念 ...