1. CRM待办OA连接器

连接器支持的能力

1、CRM帐号与OA账号的绑定。
2、从OA系统免登到CRM。(不支持CRM免登到OA)
3、CRM提醒、CRM待办推送到OA系统。

一、对接OA流程

1.1 购买集成平台-OA- CRM待办OA连接器

找到对应的产品,下订单进行购买,则配置入口自动开通。 配置入口在 管理->系统对接管理 下面。

1.2 账户绑定

进入  集成平台-OA代办 ->账户绑定  「集成平台管理-连接器- CRM待办OA」,可通过新建或导入将纷享员工与OA员工进行绑定

帐号自动绑定

1.3 发送消息到OA接口配置

确认客户的接口调用方式,webservice和restful两种不同的调用方式在配置上稍微有些不同,下面的配置文档中将会对有区别的地方分别写清楚该如何配置;

二、对接OA配置步骤

2.1 通用参数设置

进入  集成平台-OA代办  「集成平台管理-连接器- CRM待办OA」 ->初始设置 ->通用参数配置,分为Headers参数设置和结果格式设置:
(1)Headers参数设置根据客户需求,自行增加。点击添加一行输入key和value,点击保存即可添加成功;
(2)结果格式设置中key已预置,value需根据客户接口调用的返回结果自行添加;  
  • codeName:填写返回结果中的code字段名
  • msgName:填写返回结果中message信息的字段名
  • dataName:默认不填写
  • successCode:填写调用成功的code值
  • xmlJsonField: webservice接口调用方式默认填写out,restful接口调用方式默认不填写 
示例:如下图所示的返回结果,codeName填写code,msgName填写message,successCode填写0

2.2 场景参数设置

(1)进入集成平台-OA代办   「集成平台管理-连接器- CRM待办OA」 ->初始设置 ->场景参数设置,可根据客户需求开启相应场景并进行配置。开启则推送相应的代办消息操作到OA系统,关闭则不会;
(2)下面以新增代办为例来进行配置讲解,点击新增代办的【设置】,进入新增代办设置页面
  • 接口地址设置:配置OA系统新增代办的接口调用地址
  • 接口类型:配置调用接口的请求方法
  • Body参数设置: 配置调用接口需传递的参数,参数值填写对接CRM代办的字段,注意需填写以#开头的占位符,CRM代办字段及占位符可在右侧进行搜索。注意webservice接口调用方式,Body参数需为xml格式;restful接口调用方式,Body参数需为json格式
  • 编辑代办、删除代办根据客户接口文档相应更换接口地址、接口类型、Body参数设置
(3)新增代办配置示例:
假设以下为客户给出的接口调用文档
  1. 请求方式: POST
  2. 请求地址:http://test.com.cn:909/rest/transmit/fxiaoke/create
  3. 请求参数:
按照以上给出的接口文档,则接口地址设置填写:http://test.com.cn:909/rest/transmit/fxiaoke/create,接口类型选择POST
Body参数填写给出的Post内容(如果客户接口是webservice调用方式,则需转换为xml格式),左边字段不变,把右边的值填写对应要映射的CRM字段-用占位符,则填写完后如下图所示:

三、验证OA消息推送接口

在纷享系统新增、编辑、删除代办消息后,查看同步记录,并在OA查看代办是否推送成功:

四、免登录对接

CRM的代办消息推送到OA以后,用户从OA点击消息,要能免登录到CRM。
根据不同厂商有不同的操作:

4.1 致远OA

致远OA认证方式选择:应用注册;
产品登记:
在【应用对接】找到对应应用:
配置用户绑定:
待办集成:
做完上述操作后,需要客户提供应用账号密码。

4.1.1 待办消息推送

使用致远OA里面的V5auth认证方式:
致远OA系统,推送待办需要先获取他们系统的token。需要让客户在致远OA系统上创建一个纷享的应用,并且提供对应的账号密码。每次调用接口的时候,需要在请求头拼接token。
OA平台有根据脚本生成url的功能,需要编写脚本获取带token的地址。
脚本模板:
import groovy.json.JsonSlurper import [sun.net](http: //sun.net/).www.protocol.https.DelegateHttpsURLConnection import javax.crypto.Mac import javax.crypto.spec.SecretKeySpec public String getToken() { String token = null; String userName = \"****\"; // 填写客户提供的账号 String password = \"**********************\"; // 填写客户提供的密码 String requestUrl = \"http://**********/seeyon/rest/token/\" + userName + \"/\" + password; // 修改请求地址 HttpURLConnection connection = (HttpURLConnection) new URL(requestUrl).openConnection(); connection.setRequestMethod(\"GET\"); // 设置连接主机服务器的超时时间:15000毫秒 connection.setConnectTimeout(15000); connection.setUseCaches(false); connection.setRequestProperty(\"Content-Type\", \"text/xml; charset=UTF-8\"); // 设置读取远程返回的数据时间:60000毫秒 connection.setReadTimeout(60000); connection.setDoOutput(true); connection.setDoInput(true); connection.connect(); int code = connection.getResponseCode(); if (code == 200) { InputStream inputStream = connection.getInputStream(); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); String line; StringBuffer buffer = new StringBuffer(); while ((line = bufferedReader.readLine()) != null) { buffer.append(line); } String str = buffer.toString(); def jsonSlurper = new JsonSlurper() Map map = jsonSlurper.parseText(str) token = map.get(\"id\") } else { throw new RuntimeException(\"握手异常(\" + connection.getResponseCode() + \")!\" + connection.getResponseMessage()) } return url + \"?token=\" + token; } url = getToken(); return url;

4.1.2 单点登录

单点登录通过致远OA的门户认证机制认证。OA平台对外开放致远OA免登录接口:https://www.fxiaoke.com/erp/syncdata/open/oa/authorizeWeb/SeeYon/login/{ei}/{isApp}
e.g: https://www.fxiaoke.com/erp/syncdata/open/oa/authorizeWeb/SeeYon/login/89161/true
OA那边通过点击待办,或者纷享应用。会携带token给平台,平台通过拿到的token再去调用OA的门户认证接口,获取当前用户。最后重定向到
这个用户免登录的页面。

4.1.3 致远OA待办跳转CRM待办和跳转CRM主页面

单点登录成功后,可以获取到对应的用户信息。通过CRM的免登录接口,重定向到对应的页面。
跳转CRM待办接口:https://www.fxiaoke.com/erp/syncdata/open/oa/authorizeWeb/SeeYon/{apiName}/{dataId}/{ei}/{isApp}
跳转CRM主页面接口:https://www.fxiaoke.com/erp/syncdata/open/oa/authorizeWeb/SeeYon/login/{ei}/{isApp}
参考:
{ "registerCode": "3004", "taskId": "#F012", "title": "#F054 #F056 #F053", "senderName": "#F054", "state": "0", "thirdSenderId": "#F049", "thirdReceiverId": "#F001", "creationDate": "#F009", "content": "", "h5url": "[https://www.fxiaoke.com/erp/syncdata/open/oa/authorizeWeb/SeeYon/#F037/#F015/714439/true](https://www.fxiaoke.com/erp/syncdata/open/oa/authorizeWeb/SeeYon/#F037/#F015/714439/true)", "url": "[https://www.fxiaoke.com/erp/syncdata/open/oa/authorizeWeb/SeeYon/#F037/#F015/714439/false](https://www.fxiaoke.com/erp/syncdata/open/oa/authorizeWeb/SeeYon/#F037/#F015/714439/false)", "noneBindingSender":"", "noneBindingReceiver":"#F001" }

4.2 泛微OA

泛微OA目前实现上有两种方式:

4.2.1 方案一:通过创建认证提供商实现单点登录

点击链接查看  认证提供商

4.2.2 方案二:OA侧提供身份验证接口,crm做免登

客户在OA系统点击代办的链接的时候,在url携带额外对应的参数,纷享做对应的鉴权,鉴权通过则免登进入对应的详情页面
额外参数参数说明备注
loginidOA员工ID
stamp时间戳
tokensha加密后的结果加密方式参数下列代码
secret双方约定的密钥纷享开发提供
import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class Sha1Util { public static String getSha1(byte[] input) throws NoSuchAlgorithmException { MessageDigest mDigest = MessageDigest.getInstance("SHA1"); byte[] result = mDigest.digest(input); StringBuffer sb = new StringBuffer(); for (int i = 0; i < result.length; i++) { sb.append(Integer.toString((result[i] & 0xff) + 0x100, 16).substring(1)); } return sb.toString(); } /** * 示例加密过程 * @param args */ public static void main(String[] args) { String secret = "d73ec6289574d272c9cc2df5ff70488b"; String loginid = "0001"; String stamp = "1634128095994"; String encryptValue = secret + loginid + stamp; try { String getData = Sha1Util.getSha1(encryptValue.getBytes()); System.out.println(getData); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } } }

4.3 蓝凌OA

联系技术顾问沟通获取身份接口;

4.4 云之家OA

依赖云之家的openapi接口,erp-oa可以针对云之家的客户统一做免登的操作:
1.客户需要在云之家的应用中心,进行创建应用。详情参看https://open.yunzhijia.com/opendocs/docs.html#/guide/lightapp/create
2.配置页面:
api设置页面:
https://www.yunzhijia.com/gateway/newtodo/open/generatetodo.json?accessToken=
{ "content": "提交人:#F054", "title": "#F055", "itemtitle":"#F056", "headImg": "https://yunzhijia.com/space/c/photo/load?id=5a2f7ad750f8dd7810e79981", "appId": "500723908", "senderId": "#F049", "params":[ { "openId":"#F001" } ], "url": "https://www.fxiaoke.com/erp/syncdata/open/oa/authorizeWeb/webhook/#F037/#F015/#F028", "sourceId": "#F012", "sync": true }
2.客户按照OA手册配置完后,目前需要提供审批让开发针对企业灰度代办推送
3.在推送云之家中需要填写url的参数:可以参考:
4.配置应用的免登的地址:
https://www.fxiaoke.com/erp/syncdata/open/oa/authorizePortalWebhook/webhook/{ei} //后面的ei需要替换为真实企业的账号id。www.fxiaoke.com域名也需要替换为真实的域名。
5.从第一步创建的应用,可以拿到云之家应用的appid,appsecret,在已经登录的纷享企业的浏览器,重新开一个浏览器窗口,在地址栏上输入:
https://www.fxiaoke.com/erp/syncdata/oa/permit/webhook/addInfo?appId={替换成真实appid}&secret={替换成真实secret}
多个OA连接器的,需要补充dataCenterId的参数。

4.5 华为WeLink

4.6其它OA

联系技术顾问沟通获取身份接口;

五、对接多个OA帐套

可以通过新建连接,再新建一个OA连接器,完全独立的配置,可以对接其他OA帐套

六、重试规则设置

异常时重试

默认开启异常时重试,可设置什么数据同步异常/失败时重试
可关闭重试

异常时通知

通过「集成平台」企信服务号推送,默认推送给CRM管理员和集成管理员。
聚合通知:按10分钟聚合,当异常(包括所有业务类型)数量大于0时推;如果设置了重试规则,则重试完成后再通知;
2024-11-05
65 28