OFD文件解析格式转换服务API使用说明北京中科软科技股份有限公司2020年12月目录一、服务概述.
3二、OFD文件解析服务接口使用说明.
41.
接口描述.
42.
请求说明.
43.
请求代码示例.
54.
返回说明.
7三、OFD文件解析+格式转换服务接口使用说明.
91.
接口描述.
92.
请求说明.
93.
请求代码示例.
104.
返回说明.
12四、错误码.
14一、服务概述OFD文件解析服务帮助用户获取ofd格式文件中的关键信息并提供多元化的结果分析,其包含的功能如下(目前仅支持增值税发票ofd格式文件):a.
解析增值税发票ofd格式文件的内容.
b.
根据解析内容生成发票图片以供用户下载.
根据提供的服务功能程度的不同,OFD文件解析服务将服务部署在两个接口上,接口信息如下:OFD文件解析服务接口:url:https://ofdana.
apistore.
huaweicloud.
com/ofd/info功能:解析增值税发票ofd格式文件的内容并将解析结果以JSON格式返回给用户.
OFD文件解析+格式转换服务接口:url:https://ofdimage.
apistore.
huaweicloud.
com/ofd/infoimage功能:解析增值税发票ofd格式文件的内容并根据解析内容生成发票图片,将解析结果和图片下载地址返回给用户.
二、OFD文件解析服务接口使用说明1.
接口描述解析增值税发票ofd格式文件的内容并将解析结果以JSON格式返回给用户.
2.
请求说明HTTP方法:POST请求URL:https://ofdana.
apistore.
huaweicloud.
com/ofd/infoBody中放置请求参数,参数详情如表2-2-1:表2-2-1接口请求参数说明参数是否必选类型可选值范围说明request_id是String-用户请求流水号file_type是String'formdata'和'base64'二者选其一传输文件的方式:'formdata'表示使用formData格式传输文件,'base64'表示使用base64编码后的编码格式传输文件ofd_file是String-以'file_type'参数选定的传输格式发送的ofd格式文件3.
请求代码示例file_type参数值为'base64'时的请求示例如下:bash示例curl-H'Content-Type:application/json'-XPOST--data'{"request_id":"tf890fd45sl","file_type":"base64","ofd_file":"图片Base64编码"}'https://ofdana.
apistore.
huaweicloud.
com/ofd/infopython示例#encoding:utf-8importrequestsimportbase64'''Ofd文件解析'''request_url="https://ofdana.
apistore.
huaweicloud.
com/ofd/info"#二进制方式打开ofd文件f=open('[本地文件]','rb')ofd=base64.
b64encode(f.
read())params={"request_id":"tf890fd45sl","file_type":"base64","ofd_file":ofd}response=requests.
post(request_url,data=params)ifresponse:print(response.
json())Java示例packageutils;importjava.
io.
BufferedReader;importjava.
io.
IOException;importjava.
io.
InputStream;importjava.
io.
InputStreamReader;importjava.
io.
OutputStreamWriter;importjava.
io.
FileInputStream;importjava.
net.
URL;importjava.
net.
URLConnection;importjava.
util.
Base64;publicclasspostBasic{publicstaticvoidmain(String[]args){OutputStreamWriterout=null;BufferedReaderin=null;StringBuilderresult=newStringBuilder();Stringurl="https://ofdana.
apistore.
huaweicloud.
com/ofd/info";try{InputStreamofd=newFileInputStream("ofd文件路径");byte[]data=newbyte[ofd.
available()];ofd.
read(data);ofd.
close();Base64.
Encoderencoder=Base64.
getEncoder();StringencodedText=encoder.
encodeToString(data);URLrealUrl=newURL(url);//打开和URL之间的连接URLConnectionconn=realUrl.
openConnection();conn.
setDoOutput(true);conn.
setDoInput(true);//获取URLConnection对象对应的输出流并开始发送参数out=newOutputStreamWriter(conn.
getOutputStream(),"UTF-8");//添加参数out.
write("&request_id="+"tf890fd45sl"+"&file_type="+"base64"+"&ofd_file="+encodedText);out.
flush();in=newBufferedReader(newInputStreamReader(conn.
getInputStream(),"UTF-8"));Stringline;while((line=in.
readLine())!
=null){result.
append(line);}}catch(Exceptione){e.
printStackTrace();}finally{try{if(out!
=null){out.
close();}if(in!
=null){in.
close();}}catch(IOExceptionex){ex.
printStackTrace();}}System.
out.
println(result);}}注:实际使用中,请更换以上参数数值.
4.
返回说明返回参数详情如表2-4-1:字段是否必选类型说明response_id是String服务器响应流水号,与用户请求的流水号相同json_result是Dictionaryofd文件解析结果result_code是String结构码,正常响应的结果码为'200'result_msg是String结果说明,正常响应的结果说明为'SUCCESS'表2-4-1接口返回参数说明正常响应示例如下:{"response_id":"tf890fd45sl","json_result":{"Buyer":{"BuyerName":"购买方名称","BuyerTaxID":"购买方纳税人识别号","BuyerAddrTel":"购买方地址、电话","BuyerFinancialAccount":"开户行及账号"},"GoodsInfos":[{"GoodsInfo":{"Amount":"项目金额","Item":"项目名称","MeasurementDimension":"项目单位","Price":"项目单价","Quantity":"项目数量","Specification":"项目规格型号","TaxAmount":"项目税额","TaxScheme":"项目税率""InvoiceCheckCode":"校验码","InvoiceCode":"发票代码","InvoiceNo":"发票号码","IssueDate":"开票日期","Seller":{"SellerAddrTel":"销售方地址、电话","SellerFinancialAccount":"销售方开户行及账号","SellerName":"销售方名称","SellerTaxID":"销售方纳税人识别号"},"TaxInclusiveTotalAmount":"项目合计金额","TaxTotalAmount":"项目合计税额"},"result_code":"200","result_msg":"SUCCESS"}三、OFD文件解析+格式转换服务接口使用说明1.
接口描述解析增值税发票ofd格式文件的内容并根据解析内容生成发票图片,将解析结果和图片下载地址返回给用户.
2.
请求说明HTTP方法:POST请求URL:https://ofdimage.
apistore.
huaweicloud.
com/ofd/infoimageBody中放置请求参数,参数详情如表3-2-1:表3-2-1接口请求参数说明参数是否必选类型可选值范围说明request_id是String-用户请求流水号file_type是String'formdata'和'base64'二者选其一传输文件的方式:'formdata'表示使用formData格式传输文件,'base64'表示使用base64编码后的编码格式传输文件ofd_file是String-以'file_type'参数选定的传输格式发送的ofd格式文件3.
请求代码示例file_type参数值为'base64'时的请求示例如下:bash示例curl-H'Content-Type:application/json'-XPOST--data'{"request_id":"tf890fd45sl","file_type":"base64","ofd_file":"图片Base64编码"}'https://ofdimage.
apistore.
huaweicloud.
com/ofd/infoimagePython示例#encoding:utf-8importrequestsimportbase64'''Ofd文件解析'''request_url="https://ofdimage.
apistore.
huaweicloud.
com/ofd/infoimage"#二进制方式打开ofd文件f=open('[本地文件]','rb')ofd=base64.
b64encode(f.
read())params={"request_id":"tf890fd45sl","file_type":"base64","ofd_file":ofd}response=requests.
post(request_url,data=params)ifresponse:print(response.
json())Java示例packageutils;importjava.
io.
BufferedReader;importjava.
io.
IOException;importjava.
io.
InputStream;importjava.
io.
InputStreamReader;importjava.
io.
OutputStreamWriter;importjava.
io.
FileInputStream;importjava.
net.
URL;importjava.
net.
URLConnection;importjava.
util.
Base64;publicclasspostBasic{publicstaticvoidmain(String[]args){OutputStreamWriterout=null;BufferedReaderin=null;StringBuilderresult=newStringBuilder();Stringurl="https://ofdimage.
apistore.
huaweicloud.
com/ofd/infoimage";try{InputStreamofd=newFileInputStream("ofd文件路径");byte[]data=newbyte[ofd.
available()];ofd.
read(data);ofd.
close();Base64.
Encoderencoder=Base64.
getEncoder();StringencodedText=encoder.
encodeToString(data);URLrealUrl=newURL(url);//打开和URL之间的连接URLConnectionconn=realUrl.
openConnection();conn.
setDoOutput(true);conn.
setDoInput(true);//获取URLConnection对象对应的输出流并开始发送参数out=newOutputStreamWriter(conn.
getOutputStream(),"UTF-8");//添加参数out.
write("&request_id="+"tf890fd45sl"+"&file_type="+"base64"+"&ofd_file="+encodedText);out.
flush();in=newBufferedReader(newInputStreamReader(conn.
getInputStream(),"UTF-8"));Stringline;while((line=in.
readLine())!
=null){result.
append(line);}}catch(Exceptione){e.
printStackTrace();}finally{try{if(out!
=null){out.
close();}if(in!
=null){in.
close();}}catch(IOExceptionex){ex.
printStackTrace();}}System.
out.
println(result);}}注:实际使用中,请更换以上参数数值.
4.
返回说明返回参数详情如表3-4-1:字段是否必选类型说明response_id是String服务器响应流水号,与用户请求的流水号相同json_result是Dictionaryofd文件解析结果image_address是String图片地址,可通过浏览器直接访问result_code是String结构码,正常响应的结果码为'200'result_msg是String结果说明,正常响应的结果说明为'SUCCESS'表3-4-1接口返回参数说明正常响应示例如下:{"response_id":"tf890fd45sl","json_result":{"Buyer":{"BuyerName":"购买方名称","BuyerTaxID":"购买方纳税人识别号","BuyerAddrTel":"购买方地址、电话","BuyerFinancialAccount":"开户行及账号"},"GoodsInfos":[{"GoodsInfo":{"Amount":"项目金额","Item":"项目名称","MeasurementDimension":"项目单位","Price":"项目单价","Quantity":"项目数量","Specification":"项目规格型号","TaxAmount":"项目税额","TaxScheme":"项目税率""InvoiceCheckCode":"校验码","InvoiceCode":"发票代码","InvoiceNo":"发票号码","IssueDate":"开票日期","Seller":{"SellerAddrTel":"销售方地址、电话","SellerFinancialAccount":"销售方开户行及账号","SellerName":"销售方名称","SellerTaxID":"销售方纳税人识别号"},"TaxInclusiveTotalAmount":"项目合计金额","TaxTotalAmount":"项目合计税额"},"image_address":"https://ofd-image.
sinosoftrino.
info/ofd/imageaddress=\x1f\x08\x03/\x00\n\x19\x10\x0f\x00@TTBBB[WND^IU/@_XURF_WUEB_ZVM\x04\x01\x01","result_code":"200","result_msg":"SUCCESS"}四、错误码若请求错误,服务器将返回的JSON文本包含以下参数:error_code:错误码.
error_msg:错误描述信息,帮助理解和解决发生的错误.
例如请求参数无效时返回:{"error_code":"10107","error_msg":"InvalidParam"}需要重新确认请求参数后再次请求即可.
服务器可能返回的错误信息如表4-1:错误码错误信息描述10107InvalidParam无效请求参数,例:缺少目标参数10108InvalidParamvalue无效参数值,例:图片路径不对10109FileFormatError文件格式不对(要求ofd格式)10413RequestFileTooLarge请求参数过大,文件过大10110ImageDownloadTimeout,PleaseRequestForTheImageAddressAgainAndDownloadItIn1HourFromTheTimeWhenGettingTheImage图片下载地址过期(有效期为发送接口B请求后的一个小时内)表4-1错误信息说明Address10111TargetPathDetectErrorInTheFile文件结构错误20500UnknownInternalServerError服务器语法错误
妮妮云的来历妮妮云是 789 陈总 张总 三方共同投资建立的网站 本着“良心 便宜 稳定”的初衷 为小白用户避免被坑妮妮云的市场定位妮妮云主要代理市场稳定速度的云服务器产品,避免新手购买云服务器的时候众多商家不知道如何选择,妮妮云就帮你选择好了产品,无需承担购买风险,不用担心出现被跑路 被诈骗的情况。妮妮云的售后保证妮妮云退款 通过于合作商的友好协商,云服务器提供2天内全额退款,超过2天不退款 物...
ReadyDedis是一家2018年成立的国外VPS商家,由印度人开设,主要提供VPS和独立服务器租用等,可选数据中心包括美国洛杉矶、西雅图、亚特兰大、纽约、拉斯维加斯、杰克逊维尔、印度和德国等。目前,商家针对全部VPS主机提供新年5折优惠码,优惠后最低套餐1GB内存每月仅需2美元起,所有VPS均为1Gbps端口不限流量方式。下面列出几款主机配置信息。CPU:1core内存:1GB硬盘:25GB ...
这两天Linode发布了十八周年的博文和邮件,回顾了过去取得的成绩和对未来的展望。作为一家运营18年的VPS主机商,Linode无疑是有一些可取之处的,商家提供基于KVM架构的VPS主机,支持随时删除(按小时计费),可选包括美国、英国、新加坡、日本、印度、加拿大、德国等全球十多个数据中心,所有机器提供高出入网带宽,最低仅$5/月($0.0075/小时)。This month marks Linod...
internalservererror为你推荐
银花珠树晓来看关于下雪景的诗句瑞东集团中粮集团是什么性质的企业三五互联科技股份有限公司厦门三五互联科技股份有限公司 怎么样?申请400电话申请400电话需要哪些流程?办理哪些证明?如何发帖子如何发表帖子qq挂件有没有免费的QQ挂件啊?drupal主题如何在 drupal 上让网页呈现手机版页面以让智能手机更易浏览阅读discuz下载谁给我发下Discuz-x2.5安装教程discuz 代码谁能帮我把本地设置好的DISCUZ x2.5论坛放上服务器?或者怎么弄?能详细说下嘛?discuzx2.5discuzX 2.5网站搬家与域名更换一起怎么操作?
justhost 堪萨斯服务器 sugarsync 监控宝 网通代理服务器 gg广告 毫秒英文 789电视 爱奇艺会员免费试用 阿里云手机官网 石家庄服务器 镇江高防服务器 腾讯服务器 web是什么意思 带宽测速 hosts文件 美国西雅图独立 美国达拉斯 tko 次世代主机 更多