对接金蝶凭证K3(java对接)

讲怎么对接之前先让我吐槽一下,对接金蝶要安装金蝶系统,我自己安装了一次没安装成功,金蝶公司的给我安装了七次也没有成功,最后发给我一个镜像,里面有安装好的金蝶系统才勉强可以,后面的就是这种坑了,对你爱理不理的!对接文档三张截图对接去吧!有些参数不清楚问一下结果对方也不清楚,有这么不负责任的公司吗!我这块需要java对接结果人给了份C#的代码尼玛坑啊!后来人又发了个用CXF生成的!搞了好久!后来问对方,结果对接的资料什么的全是百度出来的!妈的就这样付什么对接费。全是坑!不扯了!先给大家讲一下对接吧!其实连通金蝶不难!

金蝶系统安装好之后:

1,、在本地安装一下apache-cxf,我会在我的GitHub上上传一下大家可以去下载或去CSDN上下载,这个解压一下然后和JDK一样配置一下环境变量。

2、到cxf的bin目录下执行下面的命令:wsdl2java -d D:\\demo -client http://127.0.0.1/KDWEBSERVICE/VoucherData.asmx?wsdl  我这块是将生成的代码放大D盘的demo目录下, 后面就是你要生成的方法的访问路径,路径的话,只要你安装好金蝶系统,然后访问http://127.0.0.1/KDWEBSERVICE/这个路径就可以查看他的方法了。

3、代码生成好之后我们可以先去数据库里面查一下账套的ID,账套表:t_ad_kdAccount_gl 凭证表:t_voucher ,代码中会生成两个方法一个查询一个添加,我们可以先试下查询的方法是否能查询出来,能查询出来说明方法是通过的!

部分代码:

System.out.println("Invoking query...");
int _query_iAisID = 2;//账套ID
java.lang.String _query_strUser = "Administrator";//用户名
java.lang.String _query_strPassword = "";
int _query_iPerCount = 10;
java.lang.String _query_strFilter = "";
java.lang.String _query_strTimeStampVal = "";
javax.xml.ws.Holder<java.lang.String> _query_strTimeStamp = new javax.xml.ws.Holder<java.lang.String>(_query_strTimeStampVal);
javax.xml.ws.Holder<com.kingdee.voucherdata.ArrayOfVoucher> _query_queryResult = new javax.xml.ws.Holder<com.kingdee.voucherdata.ArrayOfVoucher>();
javax.xml.ws.Holder<java.lang.String> _query_strMaxTimeStamp = new javax.xml.ws.Holder<java.lang.String>();
javax.xml.ws.Holder<java.lang.String> _query_strError = new javax.xml.ws.Holder<java.lang.String>();
port.query(_query_iAisID, _query_strUser, _query_strPassword, _query_iPerCount, _query_strFilter, _query_strTimeStamp, _query_queryResult, _query_strMaxTimeStamp, _query_strError);

4、这块我单独测试是放在生成的项目里面测试的,整合到我们项目里的时候出现了一点问题,jar包冲突结果冲突解决了之后因为项目里面的一个jar包把调用的一个方法给重写了,项目的jar我又不敢乱删,然后我想了一个别的方法,我搭建了一个springboot的小项目,然后我自己的项目调用这个项目,这个项目再调用金蝶的项目,完全可以!

代码和CXF会发布在GitHub上大家可以去下载!

GitHub地址:https://github.com/yanlingkong/

对接金蝶云的JAVA接口可以按照以下流程进行: 1. 获取接口所需数据:根据金蝶云的文档,确定物料接口所需的数据字段。可以将测试数据保存到一个文件中,或者构造对应的JAVA对象。 2. 转换数据格式:将数据转换成JSON格式,以便与金蝶云的接口进行交互。可以使用JAVA中的JSON库,如Jackson或Gson,将数据对象转换为JSON字符串。 3. 发送请求:使用JAVA的HTTP库,如HttpClient或HttpURLConnection,发送HTTP请求到金蝶云的WebAPI接口。在请求中包含转换后的JSON数据。 4. 处理响应:接收金蝶云返回的响应,可以使用JAVA的JSON库将响应数据解析为JAVA对象,或者直接处理JSON字符串。 5. 处理异常:根据金蝶云的接口文档,处理可能出现的异常情况,如网络连接失败、请求超时等。 下面是一个简单的示例代码,演示了JAVA对接金蝶云物料接口的基本流程: ```java import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.HttpClientBuilder; import org.apache.http.util.EntityUtils; import java.io.IOException; public class K3CloudAPIExample { public static void main(String[] args) { // 构造请求数据 String jsonData = "{\"materialCode\": \"123\", \"materialName\": \"Test Material\"}"; // 发送请求 HttpClient httpClient = HttpClientBuilder.create().build(); HttpPost request = new HttpPost("https://api.k3cloud.com/materials"); request.addHeader("Content-Type", "application/json"); request.setEntity(new StringEntity(jsonData, "UTF-8")); try { HttpResponse response = httpClient.execute(request); HttpEntity entity = response.getEntity(); String responseJson = EntityUtils.toString(entity, "UTF-8"); // 处理响应数据 System.out.println("Response: " + responseJson); } catch (IOException e) { e.printStackTrace(); } } } ``` 请注意,以上代码仅为示例,实际使用时需要根据金蝶云的接口文档进行相应的调整和处理。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值