OpenAPI EAI API

OpenAPI EAI API

OpenAPI

第三方系统部署在外网(互联网)与U8对接的场景。

限制:做不了上下游关联生单,比如采购入库单无法关联采购到货单;不支持事务

优势:安全、接口定义面向消费者,使用相对最简单

数据标准:json

协议:https

安全性:接口调用需授权,企业对接口访问有完全控制权

EAI

第三方系统部署在内网,与U8服务器可以直接连接。

限制:做不了上下游关联生单,比如采购入库单无法关联采购到货单;不支持事务

优势:使用复杂度在openapi与api之间

数据标准:xml

协议:http

安全性:内网系统间对接安全性要求通常比较低

API

第三方系统部署在内网,与U8服务器可以直接连接。

限制:开发的应用需要部署在装有U8的电脑上

优势:可做上下游关联生单,性能最好,支持事务。

数据标准:开放语言中的对象类型

协议:无,直接dll引入调用

安全性:内网系统间对接安全性要求通常比较低

 

 

OpenAPI EAI API_第1张图片

为什么API调用都需要传入token参数?

安全性考虑,防止第三方截获url。

token有2小时生命期的限制,保证开发者请求的url即使被第三方截获也只能最多使用两个小时

token管理策略:

注意:token本身有2小时生命期、且两小时内只能被调用2000次!

因此,强烈不建议每次调用业务API时,比如customer/get,都重新获取token,而是应该通过调用具体API,比如customer/get,返回的 errcode 值是否为30012(token已过期)判断是否需要重取

token获取api:sytem/token

http://open.yonyouup.com/apiCenter/token_get

 

接口定义

本地COM接口

类库:U8Distribute.DLL

ProgIDU8Distribute.iDistribute

方法:String Process(String RequestXml)

参数:数据交换请求消息,详见数据交换格式定义。

返回:数据交换响应消息,详见数据交换格式定义。

远程HTTP接口

EAI远程数据交换采用Http POST的方式。

访问网址: http://U8应用服务器IP或机器名/U8EAI/import.asp

POST上传:数据交换请求消息与本地调用一样。

Response接收:数据交换响应消息与本地调用一样。

接口定义

本地COM接口

类库:U8Distribute.DLL

ProgIDU8Distribute.iDistribute

方法:String Process(String RequestXml)

参数:数据交换请求消息,详见数据交换格式定义。

返回:数据交换响应消息,详见数据交换格式定义。

远程HTTP接口

EAI远程数据交换采用Http POST的方式。

访问网址: http://U8应用服务器IP或机器名/U8EAI/import.asp

POST上传:数据交换请求消息与本地调用一样。

Response接收:数据交换响应消息与本地调用一样。

U8EPI接口调用:

本地COM调用

JAVA代码:

     采用JNIJCOMJACOB技术调用EAI服务代理COM组件,下面以JACOB为例:

 import com.jacob.com.Dispatch;

  import com.jacob.com.Variant;

  class Test

  {

   public static void main(String[] args)

      {

  //创建EAI服务代理接口对象

      Dispatch eaiBroker  =  new Dispatch("U8Distribute.iDistribute");

  //调用EAI服务代理的数据交换方法Process,传入Request交换消息, 并获取EAI 

      //返回的Response消息。           

  String responseXml =

  Dispatch.call(eaiBroker, "Process", new Variant(requestXml));

   ......  //处理返回结果

      }

   }

Http远程调用

JAVA代码:

       class Test

  {

   public static void main(String[] args)

      {

             URL url = new URL(“http://u8appsrv/u8eai/import.asp”);

             HttpURLConnection con = (HttpURLConnection)url.openConnection();

             con.setConnectTimeout(3000000);

             con.setReadTimeout(3000000);

             con.setDoInput(true);

             con.setDoOutput(true);

             con.setAllowUserInteraction(false);

             con.setUseCaches(false);

             con.setRequestMethod("POST");

             con.setRequestProperty("Content-type","application/x-www-form-urlencoded");

 

   //发送Request消息

   OutputStream out = con.getOutputStream();

   DataOutputStream dos = new DataOutputStream(this.out);

   dos.write(requestXml.getBytes("UTF-8"));

 

   //获取Response消息

   InputStream in = con.getInputStream();

   BufferedReader br = new BufferedReader(new InputStreamReader(in));

   StringBuilder sb = new StringBuilder();

   String s = null;

   while ((s = br.readLine()) != null) {

  sb.append(s);

   }

   String responseXml = sb.toString();        

       }

   }

你可能感兴趣的:(U8)