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服务器语法错误
御云怎么样?炎炎暑期即将来临,御云(royalyun)香港、美国服务器开启大特惠模式。御云是新成立的云服务提供商,主要提供香港、美国的云服务器,不久将开启虚拟主机业务。我们的香港和美国主机采用CN2 GIA线路。目前,香港cn2 gia vps仅7.9元每月起,美国vps仅8.9/月,续费同价,可叠加优惠,香港云服务器国内延迟一般在50ms左右,是搭建网站的最佳选择,但是请不要用于违法用途。点击进...
中午的时候有网友联系提到自己前几天看到Namecheap商家开学季促销活动期间有域名促销活动的,于是就信注册NC账户注册域名的。但是今天登录居然无法登录,这个问题比较困恼是不是商家跑路等问题。Namecheap商家跑路的可能性不大,前几天我还在他们家转移域名的。这里简单的记录我帮助他解决如何重新登录Namecheap商家的问题。1、检查邮件让他检查邮件是不是有官方的邮件提示。比如我们新注册账户是需...
阿里云(aliyun)在这个月又推出了一个金秋上云季活动,到9月30日前,每天两场秒杀活动,包括轻量应用服务器、云服务器、云数据库、短信包、存储包、CDN流量包等等产品,其中Aliyun轻量云服务器最低60元/年起,还可以99元续费3次!活动针对新用户和没有购买过他们的产品的老用户均可参与,每人限购1件。关于阿里云不用多说了,国内首屈一指的云服务器商家,无论建站还是学习都是相当靠谱的。活动地址:h...
internalservererror为你推荐
操作httpflashwind谁能教我怎么在360里下载个flashwind?播放flashgooglepr值seo谷歌pr值和什么有关系cisco2960配置思科的交换机怎么配置人人视频总部基地落户重庆重庆总部城的项目简介360arp防火墙在哪360的9.6版本ARP防火墙在哪?pletecuteftp泉州商标注册泉州本地商标注册要怎么注册?具体流程是什么?关闭评论抖音上购物后给卖家的评价怎么删除掉?
国外服务器租用 韩国vps俄罗斯美女 鲁诺vps 网易域名邮箱 淘宝抢红包攻略 asp.net主机 inmotionhosting 鲨鱼机 mediafire下载工具 10t等于多少g 香港托管 网络星期一 directadmin iis安装教程 evssl证书 gg广告 福建天翼加速 135邮箱 中国电信宽带测速网 鲁诺 更多