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服务器语法错误
profitserver怎么样?profitserver是一家成立于2003的主机商家,是ITC控股的一个部门,主要经营的产品域名、SSL证书、虚拟主机、VPS和独立服务器,机房有俄罗斯、新加坡、荷兰、美国、保加利亚,VPS采用的是KVM虚拟架构,硬盘采用纯SSD,而且最大的优势是不限制流量,大公司运营,机器比较稳定,数据中心众多。此次ProfitServer正在对德国VPS(法兰克福)、西班牙v...
易探云香港vps主机价格多少钱?香港vps主机租用费用大体上是由配置决定的,我们选择香港vps主机租用最大的优势是免备案vps。但是,每家服务商的机房、配置、定价也不同。我们以最基础配置为标准,综合比对各大香港vps主机供应商的价格,即可选到高性能、价格适中的香港vps主机。通常1核CPU、1G内存、2Mbps独享带宽,价格在30元-120元/月。不过,易探云香港vps主机推出四个机房的优惠活动,...
前几天还在和做外贸业务的网友聊着有哪些欧洲机房的云服务器、VPS商家值得选择的。其中介绍他选择的还是我们熟悉的Vultr VPS服务商,拥有比较多达到17个数据中心,这不今天在登录VULTR商家的时候看到消息又新增一个新的机房。这算是第18个数据中心,也是欧洲VPS主机,地区是瑞典斯德哥尔摩。如果我们有需要欧洲机房的朋友现在就可以看到开通的机房中有可以选择瑞典机房。目前欧洲已经有五个机房可以选择,...
internalservererror为你推荐
戴尔智能数据管理关键词网易yeahwordpress模板wordpress模板和主题是一个概念么复制党,广告党绕路centos6.5centos 6.5 无法启动了,不知道是哪里的问题。重庆杨家坪猪肉摊主杀人在毫无预兆的情况下,对方激情杀人(持械偷袭)——作为习武者,你该怎么办?美要求解锁iPhone美版iphone6解锁怎么操作?360公司迁至天津天津360公司?360开户哪家好?360开户费多少?360推广怎么样?360效果怎么样?360和百度相比哪个更合适?抢米网怎么样才能在小米官方网站抢到手机?泉州商标注册泉州商标注册找什么公司?什么是seoseo标题和seo关键词是什么意思
asp网站空间 美国虚拟主机推荐 vps代购 仿牌空间 cpanel cloudstack 香港cdn 好看的桌面背景大图 中国智能物流骨干网 河南移动邮件系统 新天域互联 宁波服务器 刀片式服务器 169邮箱 cdn加速原理 php空间购买 ledlamp 镇江高防 免费php空间 上海联通 更多