产品最近动态
最近更新文章
  • API interface specification

    查看中文版 I. Make a request Character set: utf-8 Headers' Content-Type:"application/json" Obtain or submit specific business data by sending a POST message to the request address.Here's an example of getting order list data: Example request address for this business: http://[Dedicated business domain name]/api/orders. Your company's dedicated business domain name please contact the technical service personnel to obtain. Click here to view the interface debugging demo page. (Note: This page is for demonstration purposes only, if you need to debug your company's interface, please access your dedicated business domain name directly to access the debug page.) Request message: { "app_id": 1000012965, "data": { "page_number": 1, "page_size": 10, "include_details": false, "timestamp": 9876543210123 }, "nonce_str": "ABCDE0123456789ABCDE0123456789", "sign": "123456789ABCDE0123456789ABCDE0" } Field description: Parameter Function app_id The startnet user number used by your company. data About querying the extended data for your business, page_number: page number, page_size: Pagination size, include_details: Indicates whether the returned data also contains detailed data(This refers to the product details of the order), timestamp: timestamp. nonce_str 32-bit random string. sign MD5 signature. Response message("application/json",Only when the Response Code is 200, it means that the server responded successfully, and then it is necessary to continue the subsequent judgment): { "app_id": 1000012965, "result_code": 0, "result_msg": "", "data": { "page_number": 1, "page_size": 1, "total_count": 43, "total_pages": 43, "results": [ { "id": 1, "code": "SD0011611-000001", "create_time": "2016-11-23T11:23:49", "amount": 6, "customer_id": 2, "dept_id": 1, "stock_id": 1, "invoice_type": 3001, "delivery_address": "Guangzhou Startnet Software Co.,Ltd.", "consignee_name": "Startnet Software", "consignee_mobile": "12345678901", "delivery_date": "2016-11-23T11:23:49", "memo": "", "quantity": 1, "approved_amount": 6, "approved_quantity": 1, "modify_time": "2016-11-23T11:23:49", "is_scrap": false "details": null, } ], "include_details": false, "timestamp": 637638692306895600 }, "nonce_str": "89D7E709ED265D977084ECD9D7CD9762", "sign": "B3EF586E690F01D25524EDFA84459CA3" } Field description: Parameter Function app_id The startnet user number used by your company. result_code Error code, 0 indicates that the operation was successful, other values indicate the meaning of the detailed see your company's actual interface debugging page. result_msg wrong description. data The query data returned, page_number: page number, page_size: Pagination size, total_count: Total number of items, total_pages: total pages, results: Represents a list of orders (where field interpretation is detailed on the interface debug page), include_details: Indicate whether the returned data also contains detailed data (here refers to the product details of the order), timestamp: timestamp. nonce_str 32-bit random string. sign MD5 signature. II. Sign The generation algorithm of the field'sign' in the JSON format request message submitted to the server: MD5(app_id + '_' + AppKey + '_' + JSON(data) + '_' + nonce_str), thereinto: Parameter Function AppKey A unique identification code for accessing the startnet API interface, Provided by Startnet Software Company to your company (please contact technical service personnel to obtain). JSON(data) Convert the 'data' field to jSON string form, format: No indentation, no blank formatting characters (that is, minimized compression). For example, Use these methods: JSON.stringify(data) or Newtonsoft.Json.JsonConvert.SerializeObject(data, Newtonsoft.Json.Formatting.None). MD5(params) Use the MD5 algorithm to calculate the hexadecimal hash code of the params value, Among them, params is the string parameter after concatenating all the values with the characters'_' (excluding the quotation marks) in order, and ensure that the string in the parameter is UTF-8 encoded. Comments for other fields: Parameter Function app_id The field 'app_id' of the model class 'ApiRequest' of the request body. data The field 'data' of the model class 'ApiRequest' of the request body. Please strictly follow the field definition of the relevant request body model class: Including name and order, Even if the value is null, it must be included in the JSON request body. If the model class you define does not match the requirements or a field is missing, it will cause signature validation to fail. nonce_str The field 'nonce_str' of the model class 'ApiRequest' of the request body. III. Verification Use the following algorithm to generate signatures for the relevant fields of the JSON format response message returned on the server side. Generate algorithm: MD5(app_id + '_' + AppKey + '_' + JSON(data) + '_' + result_code + '_' + result_msg + '_' + nonce_str), thereinto: Parameter Function AppKey A unique identification code for accessing the startnet API interface, Provided by Startnet Software Company to your company (please contact technical service personnel to obtain). JSON(data) Convert the 'data' field to jSON string form, format: No indentation, no blank formatting characters (that is, minimized compression). For example, Use these methods: JSON.stringify(data) or Newtonsoft.Json.JsonConvert.SerializeObject(data, Newtonsoft.Json.Formatting.None). MD5(params) Use the MD5 algorithm to calculate the hexadecimal hash code of the params value, Among them, params is the string parameter after concatenating all the values with the characters '_' (excluding the quotation marks) in order, and ensure that the string in the parameter is UTF-8 encoded. Then compare the above signature value with the value of the field 'sign' of the response body model class 'ApiResponse'. If the two values are equal, the signature passes, otherwise the returned response data must be discarded. Comments for other fields: Parameter Function app_id The field 'app_id' of the model class'ApiResponse' of the response body. data The field'data' of the model class'ApiResponse' of the response body. Please strictly follow the field definition of the relevant request body model class: Including name and order, Even if the value is null, it must be included in the JSON request body. If the model class you define does not match the requirements or a field is missing, it will cause signature validation to fail. result_code The field 'result_code' of the model class 'ApiResponse' of the response body. result_msg The field 'result_msg' of the model class 'ApiResponse' of the response body. nonce_str The field 'nonce_str' of the model class'ApiResponse' of the response body. IV.The value description of the field 'result_code' of the model class 'ApiResponse' of the response body: Code Function 0 Successful operation. 1 Parameter 'app_id' error (including missing or invalid). 2 The parameter 'nonce_str' error. 3 The parameter 'sign' is wrong. 4 The signature failed. 5 Failed to verify signature. 6 'nonce_str' cannot be reused. 7 Data resource association error. 8 Database access failed. 400 Invalid request (including the following parameters: path, query, or body). 404 The data resource could not be found. V. Other documents: Demo (C#) Download Libraries (.NET Framework) MD5 Signature Demo (C#)

  • API接口规范

    View the English version 一、发起请求 字符集:utf-8 Headers 的 Content-Type:"application/json" 通过发送POST报文到请求地址,以获取或提交特定业务数据。以下以获取订单列表数据为例: 该业务的示例请求地址: http://专用业务域名/api/orders 贵公司的专用业务域名请联系技术服务人员获得。 点击此处可查看接口调试演示页面(注意:该页仅用于演示,如需调试贵公司的接口,请直接访问您的专用业务域名即可进入调试页) 请求报文: { "app_id": 1000012965, "data": { "page_number": 1, "page_size": 10, "include_details": false, "timestamp": 9876543210123 }, "nonce_str": "ABCDE0123456789ABCDE0123456789", "sign": "123456789ABCDE0123456789ABCDE0" } 字段说明: 参数 作用 app_id 贵公司使用的启网用户号 data 关于查询业务的扩展数据, page_number:页码, page_size:分页大小, include_details:指示返回的数据是否同时包含明细数据(这里指的是订单的商品明细), timestamp:时间戳 nonce_str 32位随机字符串 sign MD5签名 响应报文(application/json,仅在Response Code为200时表示服务器成功响应,这时才需继续后续判断): { "app_id": 1000012965, "result_code": 0, "result_msg": "", "data": { "page_number": 1, "page_size": 1, "total_count": 43, "total_pages": 43, "results": [ { "id": 1, "code": "SD0011611-000001", "create_time": "2016-11-23T11:23:49", "amount": 6, "customer_id": 2, "dept_id": 1, "stock_id": 1, "invoice_type": 3001, "delivery_address": "广东省 广州市 启网软件公司", "consignee_name": "启网软件", "consignee_mobile": "12345678901", "delivery_date": "2016-11-23T11:23:49", "memo": "", "quantity": 1, "approved_amount": 6, "approved_quantity": 1, "modify_time": "2016-11-23T11:23:49", "is_scrap": false "details": null, } ], "include_details": false, "timestamp": 637638692306895600 }, "nonce_str": "89D7E709ED265D977084ECD9D7CD9762", "sign": "B3EF586E690F01D25524EDFA84459CA3" } 字段说明: 参数 作用 app_id 贵公司使用的启网用户号 result_code 错误代码,0表示操作成功,其它值表示的意思详见贵公司实际的接口调试页面 result_msg 错误描述 data 返回的查询数据, page_number:页码, page_size:分页大小, total_count:总项数, total_pages:总页数, results:表示订单列表(其中字段解释详见接口调试页), include_details:指示返回的数据是否同时包含明细数据(这里指的是订单的商品明细), timestamp:时间戳 nonce_str: 32位随机字符串 sign MD5签名 二、签名 在提交到服务器的JSON格式请求报文中的字段'sign'的生成算法: MD5(app_id + '_' + AppKey + '_' + JSON(data) + '_' + nonce_str),其中: 参数 作用 AppKey 用于访问启网API接口的唯一标识码,由启网软件公司向贵公司提供(请联系技术服务人员获得) JSON(data) 将'data'字段转换为JSON字符串形式,格式:无缩进,无空白格式字符(即最小化压缩) 例如,使用这些方法: JSON.stringify(data) 或 Newtonsoft.Json.JsonConvert.SerializeObject(data, Newtonsoft.Json.Formatting.None) MD5(params) 使用MD5算法计算params值的十六进制的哈希码, 其中params为将所有值按顺序用字符'_'(不包括引号)连接后的字符串参数,确保参数中的字符串为UTF-8编码。 其他字段的注释: 参数 作用 app_id 请求体的模型类'ApiRequest'的字段'app_id' data 请求体的模型类'ApiRequest'的字段'data' 请严格遵循相关请求体模型类的字段定义:包括名称和顺序,即使值是null也必须包含在JSON请求体中。 如果您定义的模型类与要求的不匹配或某一字段丢失,将会导致签名验证失败。 nonce_str 请求体的模型类'ApiRequest'的字段'nonce_str' 三、验签 使用以下算法为服务器端返回的JSON格式响应报文的相关字段生成签名。 生成算法: MD5(app_id + '_' + AppKey + '_' + JSON(data) + '_' + result_code + '_' + result_msg + '_' + nonce_str),其中: 参数 作用 AppKey 用于访问启网API接口的唯一标识码,由启网软件公司向贵公司提供(请联系技术服务人员获得) JSON(data) 将'data'字段转换为JSON字符串形式,格式:无缩进,无空白格式字符(即最小化压缩) 例如,使用这些方法: JSON.stringify(data) 或 Newtonsoft.Json.JsonConvert.SerializeObject(data, Newtonsoft.Json.Formatting.None) MD5(params) 使用MD5算法计算params值的十六进制的哈希码, 其中params为将所有值按顺序用字符'_'(不包括引号)连接后的字符串参数,确保参数中的字符串为UTF-8编码。 然后将上述签名值与响应体模型类'ApiResponse'的字段'sign'的值进行比较。 如果两个值相等,则签名通过,否则必须丢弃所返回的响应数据。 其他字段的注释: 参数 作用 app_id 响应体的模型类'ApiResponse'的字段'app_id' data 响应体的模型类'ApiResponse'的字段'data' 请严格遵循相关响应体模型类的字段定义:包括名称和顺序,即使值是null也必须包含在JSON响应体中。 如果您定义的模型类与要求的不匹配或某一字段丢失,将会导致签名验证失败。 result_code 响应体的模型类‘ApiResponse’的字段‘result_code’ result_msg 响应体的模型类‘ApiResponse’的字段‘result_msg’ nonce_str 响应体的模型类'ApiResponse'的字段'nonce_str'。 四、响应体的模型类'ApiResponse'的字段'result_code'的值说明: 代码 解析 0 操作成功 1 参数'app_id'错误(包括丢失或无效) 2 参数'nonce_str'错误 3 参数'sign'错误 4 签名失败 5 验证签名失败 6 'nonce_str'不能重复使用 7 数据资源关联错误 8 数据库访问失败 400 无效请求(包括以下参数:path、query或body) 404 找不到数据资源。 五、其它文档: 演示代码(C#) 下载相关类库 (.NET Framework) MD5签名Demo(C#)

  • 多店铺下单

    1、多店铺(多个账套)下单,需在各个账套对应的商城后台【站点配置】-【基本设置】页,设置对应的店铺名称,如下图: 前台效果图: 特点:当2号店铺代客下单选客户编号为001(启网演示账号001)客户时,9号店铺的代客下单也会同步为编号001的客户。 2、操作员启用允许商城登录(具体操作请参考代客下单); 3、操作员绑定(具体操作请参考代客下单); 4、其他操作按正常下单流程。 相关链接: 代客下单 用户绑定设置

  • 代客下单

    由操作员登录商城,可任意切换客户或机构进行下单。 1、操作员启用“允许商城登录”,在客户端后台【系统管理】-【用户管理】,选定某用户双击则可以打开并设置“设置用户”,如下: 2、操作员需进行绑定(详细设置链接见页面底部),如下: 3、以操作员身份登录商城(如用户账号已绑定微信号,且在微信客户端中访问商城,则会自动登录),在“我的”页面,可以看到“代客下单”功能入口,点击后可跳转“代客下单”页面,可以根据需要任意切换欲下单的机构和客户,如下: 4、其他操作按正常下单流程。 相关链接: 多店铺下单 用户绑定设置

  • 报表的核对

    示例一:以资产负债表为例,如下: 打开该公司对于月份的资产负债表(如A处),每项科目对应的数据(②处)都可通过科目余额表(B处)计算得出,计算方法可参考(C处)的公式, 如:?期末 (货币资金)=?期末(1001+1002+1003+1004+1012) =1299.36+39731.03 =41030.39 其他科目数据参考上面方式计算核对,如果A处资产负债表各科目数据和科目余额表B处各科目数据计算结果相同,则核对成功。 示例二:以损益表为例,如下: 打开该公司对应月份的损益表(如B处),每项科目对应的数据(②处)都可通过科目余额表(C处)计算得出,计算方法可参考(A处)的公式, 如:?本月(主业务收入)=?本月(6001) =44939.40 其他科目数据参考上面方式计算核对,如果B处损益表各科目数据和科目余额表C处各科目数据计算结果相同,则核对成功。

  • 报表公式的设置

    1、选中需要设置的报表,点击【模板】,如下图所示: 2、编辑表格,打开【首页】页面,上边一栏可对表格进行修饰,如字体大小、背景颜色、合并单元格等,可根据需求进行调整,如下图所示: 3、设置公式,以“营业收入”的本年累计金额为例,右键,选择【设置取数公式】,如下图: 打开公式设置页面,如下图: 公式的格式: ?函数名称(科目编码) 如下图:?累计(5001) 注:①为函数名称;②科目编码(单个科目编码或者以“+”连接的多个科目编码) 提供多种函数: 1)年初:表示现金科目本年度的年初数,如1月1日的余额; 2)期初:表示取现金科目的指定期间初始,查询开始期间的余额; 3)期末:表示取现金科目的指定期间末数,查询结束期间的余额; 4)本月:表示取现金科目本月借方减贷方的差额;如?本月(5101)表示取主营业务收入科目本月贷方减借方的差额; 5)累计:表示取现金科目在指定期间借方累计减贷方累计的差额;如?本月(5101)表示取主营业务收入科目在指定贷方累计减借方累计的差额; 6)流入:取该科目在指定期间的用于体现现金流量表的流入数;如?流入(1001)表示取现金科目在指定期间的流入数; 7)流出:取该科目在指定期间的用于体现现金流量表的流出数;如?流出(1001)表示取现金科目在指定期间的流出数; 8)借方累计:取该科目在开始期间至结束期间的累计发生数;如?借方累计(1001)表示取现金科目在一段时间的借方累计; 9)贷方累计:取该科目在开始期间至结束期间的累计发生数;如?货方累计(1001)表示取现金科目在一段期间的; 10)期初借余:取该科目的下属科目在指定期间的期初借方数合计(不包括期初贷方数部分);如?期初借余(1131)表示取应收账款科目的下属科目中在指定期间有期初借方数的科目合计; 11)期初贷余:取该科目的下属科目在指定期间的期初贷方数合计(不包括期初借方数部分);如?期初贷余(1131)表示取应收账款科目的下属科目中在指定期间有期初贷方数的科目合计; 12)期末借余:取该科目的下属科目在指定期间的期末借方数合计(不包括期末贷方数部分);如?期末借余(1131)表示取应收账款科目的下属科目中在指定期间有期末借方数的科目合计; 13)期末贷余:取该科目的下属科目在指定期间的期末贷方数合计(不包括期末借方数部分)?期末贷余(1131)表示取应收账款科目的下属科目中在指定期间有期末贷方数的科目合计; 14)年初借余:取该科目的下属科目在年初借方数合计(不包括年初贷方数部分)?年初借余(1131)表示取应收账款科目的下属科目中在年初借方数的科目合计; 15) 年初贷余:取该科目的下属科目在指定期间的年初贷方数合计(不包括年初借方数部分)?年初贷余(1131)表示取应收款科目的下属科目中在指定期间有年初贷方数的科目合计; 16)报表:?报表(报表编号,单元格)或者?报表(报表编号,sheet名称,单元格)取指定报表的指定sheet的指定单元格的值(如果没有指定sheet 名称,默认为为第一个sheet);如?报表(D3,C6)表示取资产负债表(假定该表编号为D3)中第一个sheet的C6单元格的值;?报表(D5,sheet,C6)表示取报表编号为D5中sheet2的C6单元格的值。 示例:?报表(D1,C5) 报表编号(D1)是指“我的报表”列表中的报表编码,D1为利润表。 单元格(C5)指该利润表报表中的单元格编码,如A8、C5等。 在A处修改好报表公式,保存后,在C处报表数据界面点击刷新,即可实时更新数据,如下: 4、复杂公式解析,以?期末(存货)为例,如下: ?期末(存货)= ?期末(1401+1402+1403+1404+1405+1406+1407+1408+1411-1471) =1401~1408科目和1411科目的期末金额数据总和减去1471科目的期末金额数据,得到的结果就是存货的期末余额。 还存在乘除、小括号等复杂公式,如: ?期末(货币资金)=?期末(1001+1002)*2 =1001和1002科目的期末数据总和再乘以2,算出的结果就为货币基金的期末余额。 5、修改公式 当有新增科目模板没更新时,可手动更新数据,具体操作如下(以资产负债表为例): 打开资产负债表设计界面A,在红框处可以修改新增科目的公式,修改完成后保存,在资产负债表查询结果界面B,点击c处刷新按钮,即可实时刷新数据。 6、设置单元格格式,右键——设置单元格格式; 设置单元格格式界面如下图: 如编号日期、文本的对齐、字体的设置、边框的选择等都可以根据需求调整。 下边以设置单元格边框为例:设置好的边框保存后会直接体现在单元上。 7、报表的打印、预览,以及导出EXCEL 报表打印:在‘我的报表’页面的上边工具栏中,可以找到‘打印’按钮(A处),点击后即可打印。如果想要实现快速打印,旁边也提供了‘快速打印’按钮。 报表预览:在‘我的报表’页面的上边工具栏中,可以找到‘打印预览’按钮(B处),点击后即可预览打印效果。 报表导出EXCEL: 在‘我的报表’页面的上边工具栏中,可以找到‘导出’按钮(C处),点击后即可将报表以EXCEL导出。

  • 新建报表

    1、【账簿】-【我的报表】,点击【新增】,输入报表名称后保存即可,如下图所示:

  • EXCEL打印模板设置

    Excel打印模板设置 1、设置Excel表头表尾的字段,以销售开票为例: 注释: ①处:为表头名称,可自行编译; ②处:为表头名称获取对应的数据,需“右键”——“设置字段”,找到匹配的字段,保存后,才能获取该字段对应的数据; ③处:为标题行和数据行的设置,只有设置了才能选择表体字段,右键空白处,设为标题行标识,如下: ④处:为表体字段的名称,可自行编译; ⑤处:为表体字段获取对应的数据,需“右键”——“设置字段”,找到匹配的字段,保存后,才能获取该字段对应的数据; ⑥处:为表尾名称,一般在页面下部分,可自行编译; ⑦处:为表尾名称获取对应的数据,需“右键”——“设置字段”,找到匹配的字段,保存后,才能获取该字段对应的数据; 2、在【页面布局】——【方向】可以设置横向或者纵向打印,如下图: 3、在【页面布局】——【边距】,可以自定义设置边距,如下图: 4、打印页面的设置,“右键”——“打印参数设置”,纸张大小、打印行数等都可以设置,如下图: ①处:可获取系统纸张大小; ②处:可自定义纸张大小; ③处:不同行业有特殊字段,电子行业的序列号,服装行业的颜色尺码多列打印格式等。 5、字段sum与全合计区别: sum:表示该页此列的小计; 全合计:表示全部页的总合计。 POS小票设置: 1、“POS参数设置”——“小票打印”——“小票格式”——“设置”,EXCEL格式时,可参考上边Excel格式设置。

  • 会员充值成功通知

    请参考 微信平台消息推送 > 会员充值成功通知