## **业务保存类接口格式说明**

#### 接口协议主要采用http(s),因此下面从请求头,请求体,响应体方面做出说明

* **请求头格式**

|请求头标识|必填|内容|备注|

| --- | --- | --- |--|

|Authorization|Y|Bearer [token-data](接口访问授权.md) |遵循w3c标准|

|Accept|Y| application/json;charset=utf-8|遵循w3c标准|

|Content-Type|Y| application/json;charset=utf-8|遵循w3c标准|

|X-ThirdSysId|Y|FW-OA|泛微OA系统标识 |

* **请求体参数**

|参数名|类型|必填|说明|示例|

|--|--|--|--|--|

|formId|string|N|URI已包含| |

|operationNo|string|N|URI已包含| |

|billData|JString|Y| 本参数是数组,每个数组内对象的封包结构参考:[封包结构参考](数据字典介绍.md)||

* **响应体参数**

|参数名|类型|必含|说明|示例|

|--|--|--|--|--|

|operationResult|jobject|Y| | |

|  complextMessage|string|Y| | |

|    successMessages|jarray|Y|成功类消息| |

|    errorMessages|jarray|Y|错误类消息| |

|    warnMessages|jarray|Y|警告类消息| |

|    hasMessage|bool|Y|是否有消息| |

|  isSuccess|bool|Y|是否操作成功| |

|  srvData|any|Y|接口返回数据| 本属性是实际每个操作返回的数据,对保存操作而言,它是一个数组,其它操作返回的可能是字典,每个接口返回都可能不太一样|

|    [0]|jobject|Y|数组对象| |

|      id|string|Y|保存后内码| |

|      number|string|Y|保存后编码| |

|      name|string|Y|保存后名称| |

## **场景示例描述**

假定现有一第三方系统(如:XXOA),需要将其系统里的【品牌】资料同步到易到家系统。现在我们在编写同步代码之前需要按以下步骤拿到几个关键信息:

1、通过[数据字典](数据字典介绍.md)功能,查找到业务对象标识,这里得到本对象的formId为:ydj_brand,同样从数据字典中得到发布的数据结构:

{

"id": "",

"fname": "菲尼斯",

"fdescription": "由xx系统同步生成"

}

2、通过访问授权中的步骤从待集成系统的管理员那里拿到令牌,例如令牌为(这里的令牌注意要换成目前你要集成环境下的用户令牌,不要直接拿这里的示例使用,有可能已过期):

**eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImF1dGhvciI6ImxpbnVzIn0.eyJpc3MiOiJmdy5hYmNkIiwic3ViIjoiMjcwODQzNjI5MzczODg2NDY2IiwiaWF0IjoxNTU3MjE2NTY1LCJleHAiOjQwNzA4ODAwMDAsInByZWZlcnJlZF91c2VybmFtZSI6MTg1NjYyMzExNTksImNvbXBhbnlzIjpbeyJjb21wYW55SWQiOiIyNzA4NDM2MjE4MzI1Mjc4NzMiLCJjb21wYW55TmFtZSI6Iue7j-mUgOWVhjEwIiwiY29tcGFueU51bWJlciI6IjI3MDg0MzYyMTgzMjUyNzg3MyIsImFjY291bnRJZCI6IiIsImFjY291bnRTdGF0dXMiOiIifV0sImNvbXBhbnkiOiIyNzA4NDM2MjE4MzI1Mjc4NzMiLCJwcm9kdWN0IjpudWxsLCJyZWZ1c2VyaWQiOm51bGwsInJlZnNjZW5laWQiOm51bGwsImNhbGxlckNvbnRleHQiOiIiLCJ1c2VySWQiOiIyNzA4NDM2MjkzNzM4ODY0NjYiLCJyZW1vdGVVc2VySWQiOm51bGwsInVzZXJUeXBlIjowfQ.YsPtsKom5IqYVlrrY5XtIm0VBZLcbNRiPmgfF8i151skaJDA63YD0AzcZjEpCS8zRmXyZ2KKdVPhp4dDJ_lfStmsgM4ZEszA1jBbvKIzuQYaBNdM2g-uLh6IFBeQo-cE2VLtA2P7Ca1yTOTWkGfC3afeFiU-I9fAEMDPRFz6-Do**

应用标识为:**fw-oa**

**有了上述信息后,只需要构建http请求了,按照上面所说的请求头、请求体的形式进行发送请求。各语言请求示例如下:**

> ### ajax调用示例

```

code区域待补充

```

> ### nodejs调用示例

```

code区域待补充

```

>### C#调用示例

```

code区域待补充

```

>### Java调用示例

```

package com.ydj.example.sync.ydjsync;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import java.util.List;

import java.util.ArrayList;

import java.util.HashMap;

import javax.activation.MimetypesFileTypeMap;

import com.google.gson.Gson;

import org.apache.http.HttpEntity;

import org.apache.http.HttpResponse;

import org.apache.http.HttpStatus;

import org.apache.http.NameValuePair;

import org.apache.http.StatusLine;

import org.apache.http.client.HttpClient;

import org.apache.http.client.entity.UrlEncodedFormEntity;

import org.apache.http.client.methods.CloseableHttpResponse;

import org.apache.http.client.methods.HttpGet;

import org.apache.http.client.methods.HttpPost;

import org.apache.http.entity.StringEntity;

import org.apache.http.impl.client.CloseableHttpClient;

import org.apache.http.impl.client.DefaultHttpClient;

import org.apache.http.impl.client.HttpClients;

import org.apache.http.message.BasicNameValuePair;

import org.apache.http.protocol.HTTP;

import org.apache.http.util.EntityUtils;

import org.apache.log4j.Logger;

@SpringBootApplication

public class DemoApplication {

public static void main(String[] args) {

HashMap header = new HashMap();

//这里的令牌注意要换成目前你要集成环境下的用户令牌,不要直接拿这里的示例使用,有可能已过期

header.put("Authorization","Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImF1dGhvciI6ImxpbnVzIn0.eyJpc3MiOiJmdy5hYmNkIiwic3ViIjoiMjcwODQzNjI5MzczODg2NDY2IiwiaWF0IjoxNTU5MDI1NzMxLCJleHAiOjQwNzA4ODAwMDAsInByZWZlcnJlZF91c2VybmFtZSI6MTg1NjYyMzExNTksImNvbXBhbnlzIjpbeyJjb21wYW55SWQiOiIyNzA4NDM2MjE4MzI1Mjc4NzMiLCJjb21wYW55TmFtZSI6Iue7j-mUgOWVhjEwIiwiY29tcGFueU51bWJlciI6IjI3MDg0MzYyMTgzMjUyNzg3MyIsImFjY291bnRJZCI6IjM4MTgzNzgzMzAzMzM1NTI2NiIsImFjY291bnRTdGF0dXMiOiJmcGF5YWNjb3VudF9zdGF0dXMwMSJ9XSwiY29tcGFueSI6IjI3MDg0MzYyMTgzMjUyNzg3MyIsInByb2R1Y3QiOm51bGwsInJlZnVzZXJpZCI6bnVsbCwicmVmc2NlbmVpZCI6bnVsbCwiY2FsbGVyQ29udGV4dCI6IiIsInVzZXJJZCI6IjI3MDg0MzYyOTM3Mzg4NjQ2NiIsInJlbW90ZVVzZXJJZCI6bnVsbCwidXNlclR5cGUiOjAsImFwcEtleSI6IkZXLU9BIn0.5ngc0moZRGtFjRDVTXl1pFaHshP3NVR6dNXbOMRUS2z9IF-viFFYQsP2ToJNpv84i8hx39fAEkvJy3MMHLmxV2RlWsFL915O0t1zZveM9z97LWQudqq7Rvimt6LYnor8P8nK79yXXCUAWleofu95MrVBTwPQ9cKR8lVRiFz3mIc");

header.put("Accept", "application/json;charset=utf-8");

header.put("Content-Type", "application/json;charset=utf-8");

Gson gson = new Gson();

HashMap reqParam = new HashMap<>();

HashMap billData = new HashMap<>();

billData.put("fnumber", "test100");

billData.put("fname", "test100");

billData.put("fdescription", "系统集成自动生成");

List> lstBills = new ArrayList<>();

lstBills.add(billData);

reqParam.put("billData", gson.toJson(lstBills));

String result = doPost("http://192.168.0.23:8100/bill/ydj\_dept?operationno=save", header, gson.toJson(reqParam));

HashMap jsonResult = gson.fromJson(result, HashMap.class);

}

public static String doPost(String url, Map header, String jsonParams) {

BufferedReader in = null;

try {

// 定义HttpClient

HttpClient client = new DefaultHttpClient();

// 实例化HTTP方法

HttpPost request = new HttpPost();

request.setURI(new URI(url));

for (Iterator iter = header.keySet().iterator(); iter.hasNext();) {

String headerName = (String) iter.next();

String value = String.valueOf(header.get(headerName));

request.addHeader(headerName, value);

}

//由于请求输入的参数只认json类型,因此这里的设置一定要注意,不要用错,如果误用:UrlEncodedFormEntity,将会报400错误。

StringEntity entity = new StringEntity(jsonParams);

entity.setContentType("application/json");

entity.setContentEncoding("utf-8");

request.setEntity(entity);

HttpResponse response = client.execute(request);

int code = response.getStatusLine().getStatusCode();

if (code == 200) { // 请求成功

in = new BufferedReader(new InputStreamReader(response.getEntity().getContent(), "utf-8"));

StringBuffer sb = new StringBuffer("");

String line = "";

String NL = System.getProperty("line.separator");

while ((line = in.readLine()) != null) {

sb.append(line + NL);

}

in.close();

return sb.toString();

} else { //

System.out.println("状态码:" + code);

return null;

}

} catch (Exception e) {

e.printStackTrace();

return null;

}

}

}

```

>### PHP调用示例

```

code区域待补充

```

>### Python调用示例

```

code区域待补充

```

ajax 泛微oa表单js_接口调用示例相关推荐

  1. ajax 泛微oa表单js_泛微oa流程表单二次开发新人注意事项,

    泛微oa流程表单二次开发新人注意事项, 1.泛微的PC端和手机端使用的jQuery代码通用吗? 答:根据实际操作情况,泛微的PC端和手机端使用的jQuery代码并不是通用的,pc端的代码有些不能在手机 ...

  2. ajax 泛微oa表单js_【泛微OA】付款报销单-检查部门是否填写以及调取明细表预算并计算差额...

    function changeClick0(){ var indexArr = jQuery("#submitdtlid0").val().split(",") ...

  3. ajax 泛微oa表单js_OA项目总结

    1. OA项目总结 (1) 项目中大量应用到请求转发和重定向,再次简述请求转发和重定向的区别. 转发是带着request和response 过去 重定向,为俩次请求 (2) 简述MVC分层模式,并简述 ...

  4. oracle 权限问题9017,泛微OA 曝出WorkflowCenterTreeData接口注入漏洞(限oracle数据库)

    玄蜂安全团队10月10日了解到.泛微OA又双叒叕曝出了一个高危漏洞.其存在点是企业使用Oracle数据库在其系统的WorkflowCenterTreeData接口处会因为内置SQL语句拼接不严导致的一 ...

  5. 泛微移动表单校验手机号跟邮箱

    泛微移动表单校验手机号跟邮箱 var iphoneVal = $f("phone").val();//获取表单字段 var checkIphone = /(\+\d+)?1[345 ...

  6. 泛微OA e-cology WorkflowCenterTreeData前台接口SQL注入漏洞复现

    漏洞描述 泛微e-cology OA系统的WorkflowCenterTreeData接口在使用oracle数据库时,由于内置sql语句拼接不严,导致其存在sql注入漏洞 影响范围 使用oracle数 ...

  7. 泛微html表单,泛微HTML表单项目实施基础入门.doc

    实用标准文案 文档 Ecology7.0系统项目实施之 Ecology7.0系统项目实施之 HTML表单基础入门 Submitted by Weaver Software 联系人 王恒 联系人 王恒 ...

  8. 泛微E9表单建模查询列表批量文件下载

    前言 此代码仅为示例代码,本地做了简单测试可以实现,可能涉及sql注入的风险,使用过程中,请自行处理,做加密传输等操作. 1.系统检查 1.1.检查系统设置 是否配置了图片存放目录和文件存放目录,没有 ...

  9. 泛微E9表单建模查询列表勾选后带入流程明细表中

    1.建模配置 1.1.模块中新建页面扩展 注意:参照下图各项配置,否则会有问题 1.2.编辑查询列表代码块 代码块内容: <script type="text/javascript&q ...

最新文章

  1. python输出表达式值_python 输出表达式之format
  2. 实现三元组表示的两个稀疏矩阵的加法_K-BERT | 基于知识图谱的语言表示模型
  3. 日志分析——从概念到应用
  4. (41)Xilinx MMCM IP核配置(二)(第9天)
  5. hessian无法获取连接_PPPoE拨号设置完成后无法上网解决方法【详解】
  6. 一些关于java的笔记
  7. 互相引用 spring_Spring-bean的几种循环依赖方式
  8. ATLAS.ti 9(质性研究分析软件)官方中文版V9.0.20.0 | 质性分析软件Atlas.ti下载 | atlas软件是什么软件
  9. hadoop原理及安装启动
  10. 2023杭州电子科技大学考研分析
  11. hox 状态管理库源码解析
  12. 【C++ set的基本操作】
  13. 梦幻服务器是每周二维护吗,梦幻西游:这次的维护公告有意思,同一个活动居然有两个活动日期...
  14. NOIP2018 模拟测试 day1 弓箭手
  15. 语音卡开发系列: LightweightCTI架构设计(作者:东成西就)
  16. 原来我没懂(浙江温州一考生)
  17. 计算机音频和网络忽然失效,win7系统电脑突然没有声音五种原因及解决方法
  18. 精灵宝可梦剑盾服务器维护,《精灵宝可梦 剑盾》又出新操作,玩家:这是准备毁IP?...
  19. P1504 积木城堡
  20. UI设计中网页的设计规范总结

热门文章

  1. 勒索病毒克星——No More Ransom
  2. 已知原函数和导函数的关系_导函数图像和原函数图像关系(我).doc
  3. 二项分布最大值,泊松分布的推导,几何分布的推导 (概统2.证明)
  4. Lucid EDI需求分析及项目注意事项
  5. 单片机数据用matlab处理程序设计,单片机串口论文,关于基于单片机MATLAB实现信号的波形显示相关参考文献资料-免费论文范文...
  6. 这些魔术用的是物理原理?有啥诀窍?
  7. matlab2c使用c++实现matlab函数系列教程-fix函数
  8. [dp][前缀和][并查集] 洛谷 P3575 DOO-Around the world
  9. pl-sql中函数的输出
  10. Matlab 均分圆形生成点