1. 接口说明

讯飞开放平台通过 REST API 的方式给开发者提供图像识别的 HTTP接口,基于本接口开发者可以识别并提取增值税发票(中文简体)中的信息,方便开发者使用自己熟悉的编程语言快速集成。

2. 接口地址

POST http[s]://webapi.xfyun.cn/v1/service/v1/ocr/invoice

3. 请求参数

在 Http Request Header 中配置授权认证参数,见【接口描述-授权认证。 其中 X-Param 为各配置参数组成的JSON串经BASE64编码之后的字符串,原始JSON串各字段说明如下:

参数 类型 必填 说明 示例
engine_type string 识别类型 invoice

X-Param生成示例:

原始JSON串:
{
   "engine_type":"invoice"
}
BASE64编码(即X-Param):
ewoJICAgICJsYW5ndWFnZSI6ICJlbiIsCgkgICAgInBvc2l0aW9uIjogImZhbHNlIgoJfQ==

在Http Request Body配置以下参数:

参数 类型 必须 说明 示例
image string 图像数据,base64编码后进行urlencode,要求base64编码和urlencode后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式 exSI6ICJlbiIsCgkgICAgInBvc2l0aW9uIjogImZhbHNlIgoJf...

4. 返回值

返回值为json串,各字段如下:

参数 类型 说明
code string 结果码(具体见错误码)
data json 详见data说明
desc string 描述
sid string 会话ID

其中sid字段主要用于DEBUG追查问题,如果出现问题,可以提供sid给讯飞技术人员帮助确认问题。

data各字段说明如下:

参数 类型 说明
block json数组 区域块
vat_invoice_correct_code 校验码 增值税发票上的校验码识别结果。
vat_invoice_daima 发票代码 增值税发票上的发票代码识别结果。
vat_invoice_haoma 发票号码 增值税发票上的发票号码识别结果。
vat_invoice_issue_date 开票日期 增值税发票上的开票日期识别结果。
vat_invoice_rate_payer_id 纳税人识别号 增值税发票上的纳税人识别号识别结果。
vat_invoice_total 合计 增值税发票上的合计识别结果。
vat_invoice_tax_rate 税率 增值税发票上的税率识别结果。
vat_invoice_jida_haoma 机打号码 增值税发票上的机打号码识别结果。
vat_invoice_seller_name 销售方名称 增值税发票上的销售方名称识别结果。
vat_invoice_seller_bank_account 销售方开户行及帐号 增值税发票上的销售方开户行及帐号识别结果。
vat_invoice_seller_id 销售方纳税人识别号 增值税发票上的销售方纳税人识别号识别结果。
vat_invoice_seller_addr_tell 销售方地址电话 增值税发票上的销售方地址电话识别结果。
vat_invoice_payer_name 购买方名称 增值税发票上的购买方名称识别结果。
vat_invoice_payer_bank_account 购买方开户行及账号 增值税发票上的购买方开户行及账号识别结果。
vat_invoice_payer_addr_tell 购买方地址电话 增值税发票上的购买方地址电话识别结果。
vat_invoice_total_cover_tax 价税合计大写 增值税发票上的价税合计大写识别结果。
vat_invoice_total_cover_tax_digits 价税合计小写 增值税发票上的价税合计小写识别结果。
vat_invoice_tax_total 税额合计 增值税发票上的税额合计识别结果。
vat_invoice_goods_list 货物或服务名称 增值税发票上的货物或服务名称识别结果。
vat_invoice_price_list 金额明细 增值税发票上的金额明细识别结果。
vat_invoice_tax_rate_list 税率明细 增值税发票上的税率明细识别结果。
vat_invoice_tax_list 税额明细 增值税发票上的税额明细识别结果。
vat_invoice_zhuan_yong_flag 专票/普票 增值税发票上的专票/普票识别结果。
vat_invoice_dai_kai_flag 代开 增值税发票上代开识别结果。
vat_invoice_note 备注 增值税发票上的右侧打印发票代码识别结果
vat_invoice_daima_right_side 右侧打印发票代码 增值税发票上的右侧打印发票代码识别结果
vat_invoice_haoma_right_side 右侧打印发票号码 增值税发票上的右侧打印发票号码识别结果。
time_cost 识别耗时 以毫秒为单位。
error_code 错误码 识别错误码。
error_msg 错误描述 错误原因描述。

结果示例如下:

失败:

{
    "code": "10105",
    "desc": "illegal access|illegal X-CheckSum",
    "data": "",
    "sid": "wcr00001224@dxe4290f1b561c6f2b00"
}

成功:

{
    "code": "0",
    "data": {
        "error_code": 0,
        "error_msg": "OK",
        "time_cost": {
            "preprocess": 22,
            "recognize": 2473
        },
        "type": "增值税发票",
        "vat_invoice_correct_code": "64974132813525186653",
        "vat_invoice_correct_code_pos": {
            "height": 43,
            "left": 393,
            "top": 174,
            "width": 436
        },
        "vat_invoice_daima": "034011700111",
        "vat_invoice_daima_pos": {
            "height": 125,
            "left": 422,
            "top": 31,
            "width": 318
        },
        "vat_invoice_goods_list": "*餐饮服务*餐费",
        "vat_invoice_goods_list_pos": {
            "height": 255,
            "left": 304,
            "top": 347,
            "width": 332
        },
        "vat_invoice_haoma": "09445857",
        "vat_invoice_haoma_pos": {
            "height": 110,
            "left": 1145,
            "top": 55,
            "width": 447
        },
        "vat_invoice_issue_date": "2018年07月19日",
        "vat_invoice_issue_date_pos": {
            "height": 63,
            "left": 1295,
            "top": 148,
            "width": 297
        },
        "vat_invoice_jida_haoma": "09445857",
        "vat_invoice_payer_name": "科大讯飞股份有限公司",
        "vat_invoice_payer_name_pos": {
            "height": 40,
            "left": 349,
            "top": 195,
            "width": 693
        },
        "vat_invoice_price_list": "678.30",
        "vat_invoice_price_list_pos": {
            "height": 52,
            "left": 1136,
            "top": 362,
            "width": 207
        },
        "vat_invoice_rate_payer_id": "91340000711771143J",
        "vat_invoice_rate_payer_id_pos": {
            "height": 62,
            "left": 349,
            "top": 225,
            "width": 693
        },
        "vat_invoice_seller_addr_tell": "安徽省合肥市蜀山区黄山路与怀宁路路口中皖金大地1912\"A区7号棱一楼三棱局部A7-6商铺0551-65128129",
        "vat_invoice_seller_addr_tell_pos": {
            "height": 61,
            "left": 349,
            "top": 719,
            "width": 693
        },
        "vat_invoice_seller_bank_account": "中国民生银行股份有限公司合肥分行699685583",
        "vat_invoice_seller_bank_account_pos": {
            "height": 60,
            "left": 349,
            "top": 749,
            "width": 693
        },
        "vat_invoice_seller_id": "91340100MA2NG9JTIN",
        "vat_invoice_seller_id_pos": {
            "height": 61,
            "left": 349,
            "top": 690,
            "width": 693
        },
        "vat_invoice_seller_name": "四川新派餐饮管理有限公司合肥黄山路分公司",
        "vat_invoice_seller_name_pos": {
            "height": 38,
            "left": 349,
            "top": 661,
            "width": 693
        },
        "vat_invoice_tax_list": "40.70",
        "vat_invoice_tax_list_pos": {
            "height": 52,
            "left": 1387,
            "top": 362,
            "width": 200
        },
        "vat_invoice_tax_rate": "6%",
        "vat_invoice_tax_rate_list": "6%",
        "vat_invoice_tax_rate_list_pos": {
            "height": 52,
            "left": 1327,
            "top": 362,
            "width": 76
        },
        "vat_invoice_tax_rate_pos": {
            "height": 52,
            "left": 1327,
            "top": 362,
            "width": 76
        },
        "vat_invoice_tax_total": "¥40.70",
        "vat_invoice_tax_total_pos": {
            "height": 85,
            "left": 1387,
            "top": 553,
            "width": 192
        },
        "vat_invoice_total": "¥678.30",
        "vat_invoice_total_cover_tax": "柒佰壹拾玖圆整",
        "vat_invoice_total_cover_tax_digits": "¥719.00",
        "vat_invoice_total_cover_tax_digits_pos": {
            "height": 54,
            "left": 635,
            "top": 623,
            "width": 937
        },
        "vat_invoice_total_cover_tax_pos": {
            "height": 54,
            "left": 635,
            "top": 623,
            "width": 937
        },
        "vat_invoice_total_pos": {
            "height": 84,
            "left": 1136,
            "top": 554,
            "width": 214
        },
        "vat_invoice_type": "电子普通发票",
        "vat_invoice_zhuan_yong_flag": "普票"
    },
    "desc": "success",
    "sid": "wcr000011f2@dxe4290f1b549b6f2b00"
}

5. 调用示例

python2.7 脚本示例

说明:将脚本中IMAGE_PATH, API_KEY, APPID, 换成相应的图片路径,讯飞开放平台提供的apiKey,讯飞开放平台应用的appid即可,运行脚本可打印相应结果,保存切边增强图像。

#!/usr/bin/python
#coding:UTF-8
import time
import json
import hashlib
import base64
import requests

def getBody(file):
   f = open(file,"rb")
   data = f.read()
   base64_image = base64.b64encode(data)
   return {'image': base64_image}

def getHeader():
   apiKey = 'API_KEY'
   param = {"engine_type": "invoice"}
   x_param = base64.b64encode(json.dumps(param).replace(' ', ''))
   x_time = str(int(time.time()))
   x_checksum = hashlib.md5(apiKey + str(x_time) + x_param)
   x_checksum = x_checksum.hexdigest()
   x_header = {'X-Appid'    : 'APPID',
                   'X-CurTime'  : x_time,
                   'X-Param'    : x_param,
                   'X-CheckSum' : x_checksum}
   return x_header

URL = 'http://webapi.xfyun.cn/v1/service/v1/ocr/invoice'
start = time.time()
r = requests.post(URL,headers=getHeader(),data=getBody("IMAGE_PATH"))
print r.headers
print ('content length: %d' % len(r.content))
print r.content
print "done"
print time.time()-start,"seconds"
Copyright © iflytek.com 2018 all right reserved,powered by Gitbook该文件修订时间: 2018-11-03 10:26:45

results matching ""

    No results matching ""