网站首页 > 理财知识 >

用友oa 价格(用友系列oa软件)

2023-05-04 13:51:18 理财知识 阅读 0

Bitget下载

注册下载Bitget下载,邀请好友,即有机会赢取 3,000 USDT

APP下载   官网注册

第一章 基础数据接口

一.1 集成范围

涉及ERP的基本档案包括:组织、部门、人员、用户、客户、供应商、物料分类、计量单位、物料、仓库、税码税率、合同类型、合同分类;

ERP中涉及的操作:新增、修改、删除、启用、停用;

基本档案涉及的控制状态:已经停用的基本档案新增合同时不能继续使用;

一.2 集成方案

一.2.1 请求方式

POST

一.2.2 请求地址

/uapws/rest/databus/queryByCondition

一.2.3 请求参数

参数名

必选

类型

说明


Array

参数为数组,支持多个数据类型查询

dataType

String

数据类型 由用友提供

ts

String

查询时间范围 格式为

yyyy-mm-dd hh24:mi:ss

查询范围为此时间之后更新/插入的数据


一.2.4 请求示例

[

{

"dataType": "user",

"ts": "2022-11-08 10:00:00"

},

{

"dataType": "dept",

"ts": "2022-11-08 10:00:00"

}

]


一.2.5 返回示例

成功

{

"code": 200,

"message": "query success",

"success": true,

"data": {

"dept": {

"v_dept": []

},

"user": {

"v_user_ext_1": [

{

"pk_psnjob": "1001",

"pk_dept": "1001",

"pk_psndoc": "1001",

"indutydate": "2022-10-01",

"ismainjob": "Y",

"pk_org": "0001",

"ts": "2022-11-08 11:59:15"

},

{

"pk_psnjob": "1002",

"pk_dept": "1002",

"pk_psndoc": "1002",

"indutydate": "2022-08-01",

"ismainjob": "Y",

"pk_org": "0002",

"ts": "2022-11-08 13:58:56"

}

],

"v_user": [

{

"code": "001",

"pk_psndoc": "1001",

"name": "张XX",

"pk_org": "0001",

"ts": "2022-11-08 11:59:15"

},

{

"code": "001356",

"pk_psndoc": "1002",

"name": "孙XX",

"pk_org": "0002",

"ts": "2022-11-08 13:58:56"

}

]

}

}

}


失败

{

"code": 50003,

"message": "dataType:12 is not support!",

"success": false

}


一.2.6 返回参数说明


参数名

必选

类型

说明

code

String

操作状态码

message

String

返回信息

success

Boolean

是否成功

data

object

查询结果数据









一.2.7 返回data格式解释

示例:

基础档案名称:⼈员

档案类型:user

⼦表:v_user_ext_1 : v_档案类型_ext_1

主表:v_user: v_档案类型

一.2.8 数据类型

一.2.9 基本档案字段

参见:附件1:合同对接内容梳理

第二章 合同接口

二.1 OpenAPI认证

二.1.1 获取token和调用接口

第一步请求获取相应的token,请求的URL路径如下:

http://127.0.0.1/nccloud/opm/accesstoken?biz_center=1&grant_type=client_credentials&signature=3ca73b3bb506a34059e2bce1ce3bfe128e4e9fb6cefb7325396094f7816a01d9&client_secret=Su1s4kk0pQhhgAupsDajkqSFWeWxUEAy78yYh84wTHt1UPyC2ZV3CD7%2BP12XB897owyaVFQRJd2g%0D%0AfZcPwkvlxUgq3yrp1PBYxZ1TJ89oLf4Wicn%2BsDVAi57pTlsHHZZqQqLow5zdQjNP3Wm04ewszLhu%0D%0AasoViTdspzujiPAmwxY%3D%0D%0A&client_id=wqch

其中各个参数的含义如下:

biz_center:访问的nccloud系统的账套code

grant_type:授权模式,此处为client_credentials

client_id:对应于在第三方应用注册当中的app_id

client_secret:对应于第三方应用注册当中的app_secret

signature:请求加签,其算法为SHA256Util.getSHA256(client_id + client_secret + pubKey)

其中pubKey为第三方应用注册当中的公钥字段

第二步为最终请求的OpenAPI,其中URL地址如下所示:http://ip:port/nccloud/api/uapbd/currtype/currtype/queryCurrtypeByCode

其中在请求头当中包含了相关的参数,如下所示:

access_token:即上一步当中获取到的token。

ucg_flag:Y

signature:对请求体进行加签,算法如下:SHA256Util.getSHA256(client_id+requestBody+pubkey)

其中pubKey为第三方应用注册当中的公钥字段。

二.1.2 Java使用示例

二.1.2.1 Java代码

package nccloud.api.testcase.base;


import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.OutputStream;

import java.io.UnsupportedEncodingException;

import java.net.HttpURLConnection;

import java.net.URL;

import java.net.URLEncoder;

import java.nio.charset.Charset;

import java.util.HashMap;

import java.util.Map;

import java.util.Properties;


import org.apache.commons.lang3.StringUtils;


import com.google.gson.Gson;


import nccloud.api.test.utils.CompressUtil;

import nccloud.api.test.utils.Decryption;

import nccloud.api.test.utils.Encryption;

import nccloud.api.test.utils.ResultMessageUtil;

import nccloud.api.test.utils.SHA256Util;


/**

* 1.从resources/config.properties中读取测试api相关的数据 2.运行程序,测试查看测试结果

*


*/

public class Test {


private static String client_secret = null;

private static String pubKey = null;

private static String client_id = null;

private static String username = null;

private static String pwd = null;

private static String busi_center = null;

// 获取token方式

private static String grant_type = null;

// 服务器ip:port

private static String baseUrl = null;

private static String secret_level = null;

private static String requestBody = null;

// openapi请求路径

private static String apiUrl = null;


public static String token = null;

public static String repeat_check = null;

public static String busi_id = null;


public static void main(String[] args) {

try {

// 初始化数据

init();

// 请求token

token = getToken();

System.out.println("getTokenData:" + token);

if (token != null) {

// 测试openapi

testApi(token);

}

} catch (Exception e) {

e.printStackTrace();

}

}


/**

* 通过refresh_token重新获取token

*

* @param refresh_token

* @return

* @throws UnsupportedEncodingException

* @throws Exception

*/

private static String getTokenByRefreshToken(String refresh_token) throws UnsupportedEncodingException, Exception {

Map<String, String> paramMap = new HashMap<String, String>();

// 密码模式认证

paramMap.put("grant_type", "refresh_token");

// 第三方应用id

paramMap.put("client_id", client_id);

// 第三方应用secret 公钥加密

paramMap.put("client_secret", URLEncoder.encode(Encryption.pubEncrypt(pubKey, client_secret), "utf-8"));

// 签名

String sign = SHA256Util.getSHA256(client_id + client_secret + refresh_token + pubKey);

paramMap.put("signature", sign);


String url = baseUrl + "/nccloud/opm/accesstoken";

String mediaType = "application/x-www-form-urlencoded";

String token = doPost(url, paramMap, mediaType, null, "");

return token;

}


private static String getToken() throws Exception {

String token = null;

if ("password".equals(grant_type)) {

// 密码模式

token = getTokenByPWD();

} else if ("client_credentials".equals(grant_type)) {

// 客户端模式

token = getTokenByClient();

} else if ("authorization_code".equals(grant_type)) {

// TODO 页面跳转

// 授权码模式

}

return token;

}


/**

* 客户端模式获取token

*

* @return

* @throws Exception

*/

private static String getTokenByClient() throws Exception {

Map<String, String> paramMap = new HashMap<String, String>();

// 密码模式认证

paramMap.put("grant_type", "client_credentials");

// 第三方应用id

paramMap.put("client_id", client_id);

// 第三方应用secret 公钥加密

paramMap.put("client_secret", URLEncoder.encode(Encryption.pubEncrypt(pubKey, client_secret), "utf-8"));

// 账套编码

paramMap.put("biz_center", busi_center);

// // TODO 传递数据源和ncc登录用户

// paramMap.put("dsname", "TM_0614");

// paramMap.put("usercode", "1");


// 签名

String sign = SHA256Util.getSHA256(client_id + client_secret + pubKey);

paramMap.put("signature", sign);


String url = baseUrl + "/nccloud/opm/accesstoken";

String mediaType = "application/x-www-form-urlencoded";

String token = doPost(url, paramMap, mediaType, null, "");

return token;

}


/**

* 密码模式获取token

*

* @return

* @throws Exception

*/

@SuppressWarnings("unused")

private static String getTokenByPWD() throws Exception {

Map<String, String> paramMap = new HashMap<String, String>();

// 密码模式认证

paramMap.put("grant_type", "password");

// 第三方应用id

paramMap.put("client_id", client_id);

// 第三方应用secret 公钥加密

paramMap.put("client_secret", URLEncoder.encode(Encryption.pubEncrypt(pubKey, client_secret), "utf-8"));

// ncc用户名

paramMap.put("username", username);

// 密码 公钥加密

paramMap.put("password", URLEncoder.encode(Encryption.pubEncrypt(pubKey, pwd), "utf-8"));

// 账套编码

paramMap.put("biz_center", busi_center);

// 签名

String sign = SHA256Util.getSHA256(client_id + client_secret + username + pwd + pubKey);

paramMap.put("signature", sign);


String url = baseUrl + "/nccloud/opm/accesstoken";

String mediaType = "application/x-www-form-urlencoded";

String token = doPost(url, paramMap, mediaType, null, "");

return token;

}



致远OA与用友ERP合同管理集成项目接口文档

相关内容

用友oa 价格(用友系列oa软件)文档下载.: PDF DOC TXT

猜你喜欢