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服务器语法错误
今天下午遇到一个网友聊到他昨天新注册的一个域名,今天在去使用的时候发现域名居然不见。开始怀疑他昨天是否付款扣费,以及是否有实名认证过,毕竟我们在国内域名注册平台注册域名是需要实名认证的,大概3-5天内如果不验证那是不可以使用的。但是如果注册完毕的域名找不到那也是奇怪。同时我也有怀疑他是不是忘记记错账户。毕竟我们有很多朋友在某个商家注册很多账户,有时候自己都忘记是用哪个账户的。但是我们去找账户也不办...
青云互联怎么样?青云互联是一家成立于2020年6月份的主机服务商,致力于为用户提供高性价比稳定快速的主机托管服务,目前提供有美国免费主机、香港主机、香港服务器、美国云服务器,让您的网站高速、稳定运行。目前,美国洛杉矶cn2弹性云限时七折,美国cera机房三网CN2gia回程 13.3元/月起,可选Windows/可自定义配置。点击进入:青云互联官网青云互联优惠码:七折优惠码:dVRKp2tP (续...
Virmach对资源限制比较严格,建议查看TOS,自己做好限制,优点是稳定。 vCPU 内存 空间 流量 带宽 IPv4 价格 购买 1 512MB 15GB SSD 500GB 1Gbps 1 $7/VirMach:$7/年/512MB内存/15GB SSD空间/500GB流量/1Gbps端口/KVM/洛杉矶/西雅图/芝加哥/纽约等 发布于 5个月前 (01-05) VirMach,美国老牌、稳...
internalservererror为你推荐
支持ipadphpwindPHPWIND和DISCUZ有什么区别在线代理QQ代理服务器怎么弄啊?地址是指IP,端口是什么?有必要该吗?还有用户,密码,都代表什么啊?支付宝蜻蜓发布刷脸支付加盟,支付宝蜻蜓刷脸设备出后,微信也出了青蛙刷脸设备,感觉很有前景,大伙觉得呢?波音737起飞爆胎为什么客机每次起飞都要先跑一段距离字节跳动回应TikTok易主贾斯汀比伯的confident他在mv女主说了什么,大神回复,采纳flashfxp注册码谁有~FLASHfxp V3.0.2的注册码~~谢谢哦!!要现在能用的!!!!即时通平台有好的放单平台吗?网站方案设计求一篇校园网络设计的方案400电话查询400电话号码可以查询归属地吗?办理400电话是不是很贵?
网站空间免备案 已备案域名注册 万网域名空间 西安电信测速 监控宝 2017年黑色星期五 京东云擎 我爱水煮鱼 南通服务器 中国网通测速 香港新世界中心 免费网页申请 主机管理系统 net空间 百度云空间 lamp的音标 广州服务器托管 聚惠网 沈阳idc 免 更多