.NetCore对接各大财务软件凭证API——金蝶系列(2)

一.前言

今天我们来分析金蝶系列的第二个产品—K3wise,财务版本为15.0.不过好像14.3以上的K3wise就有专门的开放API接口了,这对于我们这些做对接开发的也是一种福利了。
曾经对接过14.2版本的k3wise,当时走的是WebService,过程也是够心塞。最近听说14.2的客户准备转金蝶K3Cloud了。但是我们的重点是15.0开放API接口的处理了。那么,对接开发API接口的第一步就是开发文档了,当时也是在金蝶社区看到不少小伙伴问为啥不见K3wise的开发文档,开发文档在财务系统的EBDI–>API平台–>API说明
如下图所示:

二.K3wise财务环境API接口补丁

2.1.接口API补丁

确保对接的客户所使用的财务环境的API接口已经打过补丁,且补丁已打全。当时就是因为客户的财务环境没有打补丁,导致财务对接凭证时科目、凭证各种问题不断,为了保证开发过程财务环境不会有大问题,请确保补丁打全。

凭证引出如果出现如下图所示的返回参数,说明补丁已经是最新的,如果不是,请在金蝶社区的补丁下载专区下载补丁https://club.kingdee.com/club/newclub/patch/list?productType=%E9%87%91%E8%9D%B6K/3

2.2所需补丁列表

请确保下载的补丁版本为自己所使用的k3wise的财务版本

补丁号:PT122970 —增加缺少的API单据接口,包括:投料单,生产任务单,BOM单,工序计划单,生产任务汇报,工序汇报单,工艺路线,工序派工单,工序转移单,发货通知单,凭证,调拨单,其他出库单,其他入库单,退货通知单,收料通知/请检单,料通知单,盘盈入库,盘亏毁损单,客户上级组、物料上级组、部门上级组等等。
我们主要用到凭证接口–来进行凭证引入引出的操作。

补丁号 : PT125666 —完善科目API接口,处理科目核算项目
该补丁用来解决科目API查询时,正确返回科目的辅助核算项。

补丁号 : PT127053 —API科目GetList接口没有按照过滤条件返回数据
该补丁用来解决科目API列表查询时,过滤条件Filter不起作用。

补丁号 : PT134851—科目、部门、计量单位、仓位、自定义核算项目等基础资料API接口完善

三.K3wise对接所需参数以及接口列表

3.1Token的获取

在调用业务接口之前,我们需要先调用Token接口正确获取到Token,接着使用该Token去调用其他的业务接口,正确操作数据。
Token获取的请求示例:
http://127.0.0.1/K3API/Token/Create?authorityCode=635e8cd049f1407d0668651d54c90e8696e0ef1e98094961
其中authorityCode 授权码如何获取呢?

代码示例:

    private static long? timestamp;private const long MILLISECONDS_EXPIRED = 3300000; //1000 * 60 * 60  - 1000 * 60 * 5 (55分钟);private static string token = String.Empty;public string GetToken(){long nowTimestamp = (long)DateTime.Now.Subtract(DateTime.Parse("1970-1-1")).TotalMilliseconds;if ((timestamp == null)|| (nowTimestamp - timestamp > MILLISECONDS_EXPIRED)){var result = APIClient.CreateAPIOperation<GetToken>(_Config.URL).SetAuthorityCode(_Config.AuthorityCode).ToAPIRequest().GetToken<GetTokenResult>();if (result != null && result.StatusCode == 200){timestamp = (long)DateTime.Now.Subtract(DateTime.Parse("1970-1-1")).TotalMilliseconds;token = result.Data.Token;}}return token;

得到授权码后我们就可以正确调用该Token接口了,看一下正确返回的Token

{"StatusCode": 200,"Message": "Token申请成功!","Data": {"AcctID": 2,"UserID": 16394,"Token": "4CB9FA43B24FFE35DEB4AC14FC2903421182845FC6F634B9B0661FF924E154EB346C18446F7A514D","Code": "001","Validity": 3600.0,"IPAddress": "1.196.178.5","Language": "CHS","Create": "2020-05-14 11:00:21"}
}

3.2调用业务接口

得到上面的Token后,我们就可以来调用业务接口返回数据了,我们以科目为例,来看一下如何获取科目列表

请求示例: http://127.0.0.1/K3API/Account/GetList?token=63FD9BBF16FC2C343D708CEA56157C1861945458A7E95B1D4838FFC120BBB0F1A2304662E019DF94

请求参数:

{"Data": {"Top": "100","PageSize": "10","PageIndex": "1","Filter": "FNumber like '%003%' ","OrderBy": "FNumber asc","Fields": "FNumber,FName"}
}

返回参数:

{"StatusCode": 200,"Message": "Success","Data": {"ROWCOUNT": 0,"PAGESIZE": 10,"PAGEINDEX": 1,"DATA": null}
}

我们要获取的字段为科目名称,科目编码,是否末级科目,科目全称等信息。如下代码所示

        public List<AccountListModel> GetAccountList(){var tokenStr = GetToken();var result = APIClient.CreateAPIOperation<GetList>(_Config.URL).SetObjectTypeId(OrderTypeIDConsts.科目).SetToken(tokenStr).AddFieldKey("FName").AddFieldKey("FNumber").AddFieldKey("FDetail").AddFieldKey("FFullName").ToAPIRequest().Excute<GetListResult>();var list = new List<AccountListModel>();if (result.StatusCode == 200){list = JsonConvert.DeserializeObject<List<AccountListModel>>(result.Data.DATA.ToString());list.ForEach(t =>{t.FItemDetailName = t.FAccountItem == null ? "" : string.Join(",", t.FAccountItem.Select(x => x.FItemClassName).Distinct().ToList());});}return list;}

3.3 凭证接口

凭证引入

请求示例:

http://127.0.0.1/K3API/VoucherData/UpdateVoucher?token=63FD9BBF16FC2C343D708CEA56157C1861945458A7E95B1D4838FFC120BBB0F1A2304662E019DF94

请求参数:

{"Replace": "false","VoucherData": {"Entries": [{"FAccountName": "管经理现金","FAccountNumber": "1001.01","FAmount": 500,"FAmountFor": 500,"FCurrencyName": "人民币","FCurrencyNumber": "RMB","FDC": 1,"FEntryID": 1,"FExchangeRate": 1,"FExplanation": "test_s1","FMeasureUnit": null,"FMeasureUnitUUID": 621,"FQuantity": 50,"FSettleNo": null,"FSettleTypeName": "","FTransNo": "","FUnitPrice": 10},{"FAccountName": "应收股利","FAccountNumber": "1131","FAmount": 500,"FAmountFor": 500,"FCurrencyName": "人民币","FCurrencyNumber": "RMB","FDC": 0,"FEntryID": 0,"FExchangeRate": 1,"FExplanation": "test97_s1","FMeasureUnit": null,"FMeasureUnitUUID": 279,"FQuantity": 50,"FSettleNo": null,"FSettleTypeName": "","FTransNo": "","FUnitPrice": 10}],"FAttachments": 0,"FCashier": "NONE","FDate": "2018-01-31","FExplanation": "66666","FGroup": "记","FHandler": "","FNumber": 19,"FPeriod": 1,"FPoster": "NONE","FPreparer": "Administrator","FReference": "","FSerialNum": 2,"FTransDate": "2018-01-31","FYear": 2018}
}

Replace为true表示修改,此时FVoucherID必传,为要修改的凭证ID;false表示新增

  public SaveVoucherResult UpdateVoucher(object model, string IsReplace){var tokenStr = GetToken();var result = APIClient.CreateAPIOperation<UpdateVoucher>(_Config.URL).SetObjectTypeId<UpdateVoucher>(OrderTypeIDConsts.凭证).SetToken(tokenStr).SetModel(model).SetReplace(IsReplace).ToAPIRequest().Excute<SaveVoucherResult>();return result;}

四.源码下载

此部分的代码封装逻辑思路和K3Cloud的处理大致一致,通过APIClient的调用来处理各个接口的逻辑。

源码下载:k3wise15.0源码下载
微信搜索【程序猿贝塔】回复“金蝶” 即可获取金蝶系列文章中的源代码

.NetCore对接各大财务软件凭证API——金蝶系列(2)相关推荐

  1. .NetCore对接各大财务软件凭证API——金蝶系列(1)

    .NetCore对接各大财务软件凭证API--金蝶系列(1) 哈喽,又和大家见面了,虽然看文章的小伙伴不多,但是我相信总有一天,自己写的这些文章或多或少会对其他人有些帮助,让他们在相关的业务开发下能少 ...

  2. NetCore对接各大财务软件凭证API——前言

    @ .NetCore对接各大财务软件凭证API--前言 前言:作为一名程序员,难免少不了和其他系统做对接,那么API接口是最常见的一种对接方式了.当然,得益于公司的业务方向就是解决各大餐饮业财务手工做 ...

  3. .NetCore对接各大财务软件凭证API——用友系列(3)

    一. 前言 由于前段时间项目比较集中,所以停更了好久,终于来到我们用友的系列产品3-U8Cloud2.7了. 一,2.7和2.5的api方式有什么区别? 1.2.7版本以后可以直接使用u8c登入地址直 ...

  4. oracle财务软件凭证打印,金算盘财务软件后台数据库为Oracle

    金算盘财务软件后台数据库为Oracle,OA系统中虽然提供了金算盘财务软件的接口,但由于版本较低,无法直接采集金算盘财务软件的备份数据.我们发现,在已试验的金算盘财务软件的凭证表中,科目字段中既有科目 ...

  5. 购买财务软件需要注意的4个方面

    如今,伴随着信息化的普及,会计工作在这个时代的大背景下,也不再是传统的手工记账,而是转向了管理软件,那么新的问题来了,如何购买财务软件呢?市场上的财务软件琳琅满目,各式各样,只有适合自己企业的财务软件 ...

  6. ERP售前史话:本土财务软件前世今生

    15年的用友与10年的金蝶背后,是中国本土财务软件厂商整体缺钙的缩影. 文/本刊记者 辛云勇 表面上,用友金蝶们又回到了当年的起点.不过,这种戏剧性的回归背后,却是整个本土财务软件其实盛名难符的真实写 ...

  7. 金蝶系统中的服务器数据库在哪,金蝶财务软件中的数据库在哪里?

    摘要: 本文是一篇关于金蝶财务软件中的数据库在哪里?的金蝶财务软件资讯,简单给使用金蝶软件的朋友介绍了有关金蝶财务软件中的数据库在哪里?的相关财务软件知识. 这篇文章ufidawhy要给大家分享的金蝶 ...

  8. 金蝶eas怎么引出凭证_金蝶EAS该如何导出凭证

    摘要: 本文是一篇关于金蝶EAS该如何导出凭证的金蝶财务软件资讯,简单给使用金蝶软件的朋友介绍了有关金蝶EAS该如何导出凭证的相关财务软件知识. 这篇文章ufidawhy要给大家分享的金蝶财务软件知识 ...

  9. 智点财务软件记账凭证的录入

    目前的财务软件市场中,有大家熟知的大众会计软件,像智点等,也有新兴起的小众软件.越来越多的会计软件在充斥着这个市场,所以,难免企业在选择记账软件的时候,就显得非常的谨慎而又困难,因为有些软件的稳定性和 ...

  10. sql 凭证明细表 科目余额表_金碟财务软件手册——明细账 凭证汇总表 科目余额表...

    金碟财务软件手册--明细账 凭证汇总表 科目余额表 明细账 查询各科目的明细账账务数据, 这里可以输出现金日记账, 银行存款日记账和其 它各科目的三栏式明细账的账务明细数据: 在明细账查询功能中, 还 ...

最新文章

  1. web请求报出 “超过了最大请求长度” 【注意:重启IIS】
  2. iOS12系统应用发送普通邮件构建邮件
  3. docker删除已经停止的容器
  4. LPCTSTR和CString的关系
  5. 【CodeForces - 761C】Dasha and Password (暴力可过,标解dp,字符串,有坑总结)
  6. 为什么人类的大脑认为数学“美”?
  7. ubuntu 18.04 设置中文输入法
  8. 终于承认!马斯克证实特斯拉在造AI芯片,而且是世上最好的AI硬件
  9. mysql内存表主从复制_MySQL的内存表在主从同步的注意事项_MySQL
  10. servlet监听器Listener介绍和使用
  11. python基础篇——元组
  12. MDN - 字符串API笔记
  13. 【sketchup 2021】草图大师软件安装和基本使用说明【工作环境工具添加设置、视口控制界 面放大缩小平移、选择工具、在线资源导入、人物误删了怎么恢复、网上下载模型导入到sketchup中流程】
  14. 手机浏览器点击标签出现蓝色背景解决方法
  15. DottedDict-提供一种使用点路径符号访问列表和字典方法的python库
  16. Go36-36,37-字符串
  17. MySQL作为空间数据库
  18. linux shadow文件*,Linux怎么查找shadow文件进入这样几步轻松搞定
  19. 2011年中国高性能计算机性能TOP100排行榜
  20. 面试轻松讲清楚 Java 面向对象的问题与知识(类与对象,封装,继承,多态,接口,内部类...)

热门文章

  1. Python操作Excel制作可视化数据图,实现自动化办公
  2. 自考《软件工程》总结笔记
  3. adprw指令通讯案例_S7200和威纶通触摸屏MODBUS RTU协议通讯
  4. 利用jackson-dataformat-csv读写csv文件
  5. Proteus 数字示波器
  6. Grand Canyon
  7. vue 关于飞行地图展示的功能
  8. java 可达性算法实现,垃圾标记阶段算法之可达性分析算法
  9. 计算机网络的产生与发展可分为哪四个阶段,计算机网络形成与发展大致分为如下4个阶段...
  10. 最小二乘法求解超定方程的原理