Finance API文档
0. 公共部分
请求url
- {apiRoot}/{method}?ver={version}&appkey={appkey}&sign={sign}
| 参数名 | 说明 | 示例 |
|---|---|---|
| apiRoot | 根地址 | http://localhost:9000 |
| method | 方法名 | /voucher/save |
| version | 版本号 | 1.0 |
| appkey | AppKey | FinanceClient |
| sign | 签名 | 5D3AA349E953AF0C15E38C147B15EE35 |
参数
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| Content | 是 | Content | 内容 |
| Token | 是 | string | 鉴权令牌,登录后获取 |
返回
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| Result | 是 | int | 结果码 |
| ErrMsg | 否 | string | 错误描述 |
| Solution | 否 | string | 解决建议 |
结果码
| 结果码 | 描述 | 说明 |
|---|---|---|
| 0 | SUCCESS | 成功 |
| 1000 | NULL_DTL | 没有导入的实现 |
| 1001 | FILE_NOT_EXISST | 文件不存在 |
| 1002 | RECORD_NOT_EXIST | 记录不存在 |
| 1003 | RECORD_EXIST | 记录已存在 |
| 1004 | IMPERFECT_DATA | 不完美的数据 |
| 1005 | SERVICE_TIMEOUT | 超时 |
| 1006 | NULL | 空的请求 |
| 1007 | INCORRECT_STATE | 当前状态不符合预期 |
| 1008 | AMMOUNT_IMBALANCE | 借贷不平衡 |
| 1009 | LINKED_DATA | 有关联的业务 |
| 3000 | NOT_SUPPORT | 不支持 |
| 3001 | SYSTEM_ERROR | 未知的系统错误 |
| 3002 | AUTHENTICATION_ERROR | 无效的签名 |
签名算法
string SignRequest(string body)
{
StringBuilder query = new StringBuilder(Secret);
query.Append(body);
query.Append(Secret);
MD5 md5 = MD5.Create();
byte[] bytes = md5.ComputeHash(Encoding.UTF8.GetBytes(query.ToString()));
StringBuilder result = new StringBuilder();
for (int i = 0; i < bytes.Length; i++)
{
result.Append(bytes[i].ToString("X2"));
}
return result.ToString();
}
1. 保存凭证
方法
- /voucher/save
请求方式
- POST
参数
- Content
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| header | 是 | VoucherHeader | 表头 |
| entries | 是 | List | 分录 |
| udefenties | 否 | Map<string,<string,object>> | 自定义扩展字段 |
- VoucherHeader
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| id | 是 | int | ID(为0即为新增,否则为修改的内码) |
| word | 是 | string | 凭证字:“记” |
| note | 否 | string | 备注 |
| reference | 否 | string | 参考信息 |
| year | 是 | int | 年度 |
| period | 是 | int | 期间 |
| businessDate | 是 | dateTime | 业务日期(2019-03-05T00:00:00) |
| date | 是 | dateTime | 日期(2019-03-05T00:00:00) |
| creatTime | 否 | dateTime | 创建时间(2019-03-05T00:00:00) |
| creater | 是 | int | 创建人 |
| cashier | 否 | string | 出纳 |
| agent | 否 | string | 经办人 |
- VoucherEntry
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| index | 是 | int | 分录号 |
| accountSubjectNo | 是 | string | 科目代号 |
| explanation | 否 | string | 摘要 |
| amount | 是 | decimal | 金额 |
| direction | 是 | int | 方向:1(借方),-1(贷方 ) |
| uniqueKey | 是 | string | 唯一码(uuid),作为自定义内容的键值 |
返回
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| Id | 条件 | int | 如果成功,返回凭证内码 |
示例
- url : http://localhost:9000/voucher/save?ver=1.0&appkey=FinanceClient&sign=5D3AA349E953AF0C15E38C147B15EE35
- body:
{
"Content" : {
"header" : {
"id" : 0,
"word" : "记",
"note" : null,
"reference" : "参考信息",
"year" : 2019,
"period" : 3,
"businessDate" : "2019-03-05T00:00:00",
"date" : "2019-03-05T00:00:00",
"creatTime" : "2019-03-05T23:46:01",
"creater" : 13594,
"cashier" : "出纳",
"agent" : "经办"
},
"entries" : [{
"index" : 1,
"accountSubjectNo" : "1001",
"explanation" : "摘要",
"amount" : 200.0,
"direction" : 1,
"uniqueKey": "afffc876a94049afaa7275c7c7d8d76f"
}, {
"index" : 2,
"accountSubjectNo" : "1002",
"explanation" : "摘要",
"amount" : 200.0,
"direction" : -1,
"uniqueKey": "7761b2300fdb48bd991e570c0f8fc39f"
}
],
"udefenties": {
"afffc876a94049afaa7275c7c7d8d76f": {
"cust": "",
"price": 4.0,
"qty": 78.0
},
"7761b2300fdb48bd991e570c0f8fc39f": {
"cust": null,
"price": 0.0,
"qty": 0.0
}
}
},
"Token" : "3AIavxSAoaJhuBB1o4hc6fw4hNlpC4KoXgfT1mpu1hyQiA_lqKNKOkNDtC_mKdHiWEAHooTE1vZAtsYhz4g_jNoNR5JBkp9UHXZSYFbSuj0j38muKaMbFhTRMEZ_xqd4znSY_Fcp8V96hto4VpLWqh0__yHKFoRZQ0DGS5HcrpQ="
}
返回
{
"id" : 233,
"Result" : 0,
"ErrMsg" : null,
"Solution" : null
}
Finance API文档的更多相关文章
- Java在DOS命令下的运行及其API文档制作过程
该文档主要描述java程序在DOS命令下的运行,以及一些常用的命令 常用DOS命令: d: 回车 盘符切换 dir(directory):列出当前目录下的文件以及文件夹 md (make direct ...
- 在ASP.NET Core Web API上使用Swagger提供API文档
我在开发自己的博客系统(http://daxnet.me)时,给自己的RESTful服务增加了基于Swagger的API文档功能.当设置IISExpress的默认启动路由到Swagger的API文档页 ...
- 利用sphinx为python项目生成API文档
sphinx可以根据python的注释生成可以查找的api文档,简单记录了下步骤 1:安装 pip install -U Sphinx 2:在需要生成文档的.py文件目录下执行sphinx-apido ...
- 如何使 WebAPI 自动生成漂亮又实用在线API文档
1.前言 1.1 SwaggerUI SwaggerUI 是一个简单的Restful API 测试和文档工具.简单.漂亮.易用(官方demo).通过读取JSON 配置显示API. 项目本身仅仅也只依赖 ...
- Android多媒体--MediaCodec 中文API文档
*由于工作需要,需要利用MediaCodec实现Playback及Transcode等功能,故在学习过程中翻译了Google官方的MediaCodec API文档,由于作者水平限制,文中难免有错误和不 ...
- 新手如何查看API文档?
Java API文档为例: 1:知道包名,可以在Overview里直接找到这个包,然后去查这个包下面的类和方法.2:知道类名和方法名,可以在Index.html里直接去找这个类或方法,然后查看.3:如 ...
- Bullet的学习资源(用Doxygen生成API文档)
Bullet 全称 Bullet Physics Library,是著名的开源物理引擎(可用于碰撞检测.刚体模拟.可变形体模拟),这里将bullet的学习资源整理一下,希望能帮助入门者少走弯路. 看下 ...
- [API]使用Blueprint来高雅的编写接口文档 前后端api文档,移动端api文档
网址:http://apiary.io/ 介绍:一款非常强大的前后端交互api设计编辑工具(编辑器采用Markdown类似的描述标记,非常高效),高颜值的api文档,还能生成多种语言的测试代码. 中文 ...
- jQuery MiniUI开发系列之:使用API文档
jQuery MiniUI在组件设计上,是简约.独立的,没有复杂的继承体系. 比如使用DataGrid,可以在api文档的datagrid部分,查找到datagrid的所有属性.方法.事件,而无需关注 ...
随机推荐
- 爬虫之requests
一.基本用法 1.GET请求 ①r=requests.get(url) --返回Response对象 def get(url, params=None, **kwargs): params={... ...
- 201772020113 李清华《面向对象程序设计(java)》第十五周学习总结
1.实验目的与要求 (1) 掌握Java应用程序的打包操作: (2) 了解应用程序存储配置信息的两种方法: (3) 掌握基于JNLP协议的java Web Start应用程序的发布方法: (5) 掌握 ...
- visual studio 2013 几个测试工具(Nunit 3、xUnit)
一.Nunit 3 1.在解决方案里添加一个类库——引用——右键(如下图)) 3.搜索nunit 并安装(如图) 3.注意引入命名空间并给测试类和测试方法添加特性(如图) 4.如果测试通过则为绿色(如 ...
- activiti官网实例项目activiti-explorer之扩展多选框回显功能
相关参考链接:https://blog.csdn.net/murongxuesheng/article/details/76147380 回显:确认选中属性ng-model,循环属性ng-repeat ...
- 阅读rocketmq技术内幕、实战与原理杂记 - 设计
最近正在研究rocketmq,简单记录下设计的不同 互联网系统中Rpc.服务治理.消息中间件基本都是标配,消息中间件能解耦,削峰,高可用并能间接提供达到最终一致性 消息中间件中,消息消费分为最多一次, ...
- UI设计篇·入门篇·绘制简单自定义矩形图/设置按钮按下弹起颜色变化/设置图形旋转
Android的基本控件和图形有限,难以满足所有的实际需要和设计需求,好在Android给出了相对完善的图形绘制和自定义控件的API,利用这些API,可以基本满足设计的需求. 自定义图像和控件的方法: ...
- Windows、Linux的环境变量
Windows操作系统 什么是环境变量?环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数,比如临时文件夹位置和系统文件夹位置等. 这点有点类似于DOS时期的默认路径,当你运行某些程序时除 ...
- 使用IDEA的项目上传到GitHub
使用IDEA的项目上传到GitHub 前提条件: 1.配置好Git(https://jingyan.baidu.com/article/8275fc867b652046a03cf613.html) 2 ...
- centos6升级glibc-2.14没有报错,但是验证没有升级成功的问题解决
一.下载 cd /usr/local/srcwget http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz 二.安装 tar -xzvf glibc-2.14. ...
- Java框架spring 学习笔记(十一):aop相关概念
为什么要引入aop? 比如如下情景: 在父类的方法名称发送了变化,在子类调用的方法也需要变化,当工程规模越来越大的时候,维护起来相当不方便,于是就引入了横向切面aop. aop的相关概念: 连接点:类 ...