首先声明一下。本案例是针对用友NCC2111版本的。
首先附上官方的文档,参考如下
一、调用NCCloud的API
1.1 注册第三方应用
访问地址http://ip:port/nccloud/resources/opm,并通过管理员登录
打开页面后按下图操作
NCC用户编码需要填写系统里面的。否则会显示undefined。通过查看network会发现报错说用户不存在。
点击操作后,就会自动创建对应的APP Secret和公钥,如图所示
创建好的第三方应用后,点击关联API,选择需要关联的API即可
1.2 通过使用NCCloudStudio工具进行OpenAPI接口的测试
提供一个官方的参考地址:https://community.yonyou.com/article/detail/199
安装最新版YonBuilder Premium开发工具,下载地址为:https://nccdev.yonyou.com/studio/
我们将上述的信息填写完毕后,就可以进行调试了。
下面就以供应商修改的接口为例子
1.3如何查看API接口文档呢?
1.4 java调用API
同样,先提供一下官方的文档如何在项目中调用OpenAPI:如何在项目中调用OpenAPI
import nccloud.open.api.auto.token.factory.APIUtilsFactory;
import nccloud.open.api.auto.token.factory.NCCVersionEnum;
import nccloud.open.api.auto.token.itf.IAPIUtils;
public class TokenTest {
public static void main(String[] args) throws Exception {
IAPIUtils util = null;
// 传参版本号或版本枚举获取工具类
util = APIUtilsFactory.getAPIUtils(NCCVersionEnum.NCC2111);
// 服务地址ip
String ip = "39.***.***.***";
// 服务端口号
String port = "***";
// 账套编码,开发环境使用develop,生产环境需要使用用root账号登录,在“系统管理”节点查看账套编码
String busi_center = "***";
// 第三方应用编码
String app_id = "nccapi";
// app_secret,用于请求加签
String app_secret = "******";
// 公钥,加解密使用
String public_key = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs+lJHN3WvIknKLBJWdhHF99VL1DILtpVUWDiSZDtGbpjnwo2V40zg+t4aVI3wUyx+AF+fyRBCWb6mYwG219W5PMzbJfhv7cq7Qj3PDfexb0x/9ItV8y1+jCKSqlR/W4fnCA0wkc0MlM/18heNBjQs55XbW2dTnsji8cqqqEjDM/SXGY+p4kIZMCpEuL2cSm5YY5SSoBGgE4+FlR9YcQpb/+tGQu7NCOTzdRFqyNxS+V9CY1NSC2xEys1j6pWLY/S6x1QCF9reKargVq7J3IM+bnt8GwhkjuXF03n+i2vvDJ/Oo6BcomLTiAnbOPJKp/Bid8P99j2SZ4XZ2QtlmbpiQIDAQAB";
// ncc用户名
String ncc_user = "***";
// ncc用户密码
String password = "123456a!";
// 公有云租户id
String tenant_id = null;
// 加密等级
String secret_level = "L0";
// 授权模式,客户端模式为client,密码模式为:password
String grant_type = "client";
// 初始化方法1
util.init(ip,
port,
busi_center,
app_id,
app_secret,
public_key,
ncc_user,null);
// 初始化方法2,tenant_id、secret_level、grant_type这三个参数也可以通过setter注入
// util.init(ip, port, busi_center, app_id, app_secret, public_key, ncc_user, password, tenant_id, secret_level, grant_type);
// 获取token
String token = util.getToken();
//System.out.println(token);
// 请求的OpenAPI接口地址,注意nccloud前面没有"/"
String apiuri = "nccloud/api/ic/saleout/schemequery";
util.setApiUrl(apiuri);
String requestParam = "{dbilldate:\"2021-03-09 00:00:00~2025-11-12 23:59:59\",vbillcode:\"XC2024120100144936\",pk_org:\"10040003\"}";
// 携带token访问接口,获取结果
String result = util.getAPIRetrun(token, requestParam);
System.out.println(result);
}
}