{"componentChunkName":"component---src-templates-acg-portal-new-template-tsx","path":"/1mticbu6f","result":{"data":{"markdownRemark":{"html":"<blockquote>\n<p><strong>该接口已停止更新且即将下线，为避免影响您目前的业务使用，请您使用<a href=\"https://ai.baidu.com/ai-doc/OCR/7ktb8md0j\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">智能财务票据识别</a>，此服务支持财务场景中13种常见票据的分类及结构化识别，包括增值税发票、卷票、机打发票、定额发票、火车票（含电子发票铁路电子客票）、出租车票、网约车行程单、飞机行程单（含电子发票航空电子客票行程单）、汽车票、过路过桥费、船票、机动车/二手车销售发票（含电子发票机动车/二手车销售统一发票）。支持多张不同种类票据在同一张图片上的混贴场景，可返回每张票据的位置、种类及票面信息的结构化识别结果。</strong></p>\n</blockquote>\n<h2 id=\"接口描述\"><a href=\"#%E6%8E%A5%E5%8F%A3%E6%8F%8F%E8%BF%B0\" aria-label=\"接口描述 permalink\" class=\"anchor\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>接口描述</h2>\n<p>支持对全国范围不同版式过路、过桥费发票的发票代码、发票号码、入口、出口、日期、时间、金额、省、市9个字段进行结构化识别。</p>\n<h2 id=\"在线调试\"><a href=\"#%E5%9C%A8%E7%BA%BF%E8%B0%83%E8%AF%95\" aria-label=\"在线调试 permalink\" class=\"anchor\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>在线调试</h2>\n<p><strong>您可以在 <a href=\"https://console.bce.baidu.com/tools/?_=1668473684721#/api?product=AI&#x26;project=%E6%96%87%E5%AD%97%E8%AF%86%E5%88%AB&#x26;parent=%E8%B4%A2%E5%8A%A1%E7%A5%A8%E6%8D%AEOCR&#x26;api=rest/2.0/ocr/v1/toll_invoice&#x26;method=post\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">示例代码中心</a> 中调试该接口</strong>，可进行签名验证、查看在线调用的请求内容和返回结果、示例代码的自动生成。</p>\n<h2 id=\"请求说明\"><a href=\"#%E8%AF%B7%E6%B1%82%E8%AF%B4%E6%98%8E\" aria-label=\"请求说明 permalink\" class=\"anchor\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>请求说明</h2>\n<p><strong>请求示例</strong></p>\n<p>HTTP 方法: <code>POST</code></p>\n<p>请求URL: <code>https://aip.baidubce.com/rest/2.0/ocr/v1/toll_invoice</code></p>\n<p>URL参数：</p>\n<table>\n<thead>\n<tr>\n<th>参数</th>\n<th>值</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>access_token</td>\n<td>通过API Key和Secret Key获取的access_token,参考“<a href=\"https://ai.baidu.com/ai-doc/REFERENCE/Ck3dwjhhu\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Access Token获取</a>”</td>\n</tr>\n</tbody>\n</table>\n<p>Header如下：</p>\n<table>\n<thead>\n<tr>\n<th>参数</th>\n<th>值</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Content-Type</td>\n<td>application/x-www-form-urlencoded</td>\n</tr>\n</tbody>\n</table>\n<p>Body中放置请求参数，参数详情如下：</p>\n<p><strong>请求参数</strong></p>\n<table>\n<thead>\n<tr>\n<th>参数</th>\n<th>是否必须</th>\n<th>类型</th>\n<th>可选值范围</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>image</td>\n<td>和 url/pdf_file/ofd_file 四选一</td>\n<td>string</td>\n<td>-</td>\n<td>图像数据，base64编码后进行urlencode，要求base64编码和urlencode后大小不超过4M，最短边至少15px，最长边最大4096px，支持jpg/jpeg/png/bmp格式 </br><strong>优先级</strong>：image > url > pdf_file > ofd_file ，当image字段存在时，url、pdf_file、ofd_file 字段失效</td>\n</tr>\n<tr>\n<td>url</td>\n<td>和 image/pdf_file/ofd_file 四选一</td>\n<td>string</td>\n<td>-</td>\n<td>图片完整url，url长度不超过1024字节，url对应的图片base64编码后大小不超过4M，最短边至少15px，最长边最大4096px，支持jpg/jpeg/png/bmp格式</br><strong>优先级</strong>：image > url > pdf_file > ofd_file，当image字段存在时，url字段失效</br><strong>请注意关闭URL防盗链</strong></td>\n</tr>\n<tr>\n<td>pdf_file</td>\n<td>和 image/url/ofd_file 四选一</td>\n<td>string</td>\n<td>-</td>\n<td>PDF文件，base64编码后进行urlencode，要求base64编码和urlencode后大小不超过4M，最短边至少15px，最长边最大4096px</br><strong>优先级</strong>：image > url > pdf_file > ofd_file，当image、url字段存在时，pdf_file字段失效</td>\n</tr>\n<tr>\n<td>pdf_file_num</td>\n<td>否</td>\n<td>string</td>\n<td>-</td>\n<td>需要识别的PDF文件的对应页码，当 pdf_file 参数有效时，识别传入页码的对应页面内容，若不传入，则默认识别第 1 页</td>\n</tr>\n<tr>\n<td>ofd_file</td>\n<td>和 image/url/pdf_file 四选一</td>\n<td>string</td>\n<td>-</td>\n<td>OFD文件，base64编码后进行urlencode，要求base64编码和urlencode后大小不超过4M，最短边至少15px，最长边最大4096px</br><strong>优先级</strong>：image > url > pdf_file > ofd_file，当image、url、pdf_file字段存在时，ofd_file字段失效</td>\n</tr>\n<tr>\n<td>ofd_file_num</td>\n<td>否</td>\n<td>string</td>\n<td>-</td>\n<td>需要识别的OFD文件的对应页码，当 ofd_file 参数有效时，识别传入页码的对应页面内容，若不传入，则默认识别第 1 页</td>\n</tr>\n</tbody>\n</table>\n<p><strong>请求代码示例</strong></p>\n<p><strong>提示一</strong>：使用示例代码前，请记得替换其中的示例Token、图片地址或Base64信息。</p>\n<p><strong>提示二</strong>：部分语言依赖的类或库，请在代码注释中查看下载地址。</p>\n\n    <div class=\"code-block-wrapper\">\n        <div class=\"code-block\">\n            <div class=\"code-block-header\">\n                <div class=\"code-block-inner-tabs doc-tab-group\">\n                \n        <label\n            for=\"code-block-group-0-radio-0\"\n            class=\"doc-tab-item doc-tab-item-selected\"\n            data-index=\"0\"\n        >\n            <span class=\"doc-tab-item-label\">Bash</span>\n        </label>\n        \n        <label\n            for=\"code-block-group-0-radio-1\"\n            class=\"doc-tab-item \"\n            data-index=\"1\"\n        >\n            <span class=\"doc-tab-item-label\">Python</span>\n        </label>\n        \n        <label\n            for=\"code-block-group-0-radio-2\"\n            class=\"doc-tab-item \"\n            data-index=\"2\"\n        >\n            <span class=\"doc-tab-item-label\">JAVA</span>\n        </label>\n        \n        <label\n            for=\"code-block-group-0-radio-3\"\n            class=\"doc-tab-item \"\n            data-index=\"3\"\n        >\n            <span class=\"doc-tab-item-label\">C++</span>\n        </label>\n        \n        <label\n            for=\"code-block-group-0-radio-4\"\n            class=\"doc-tab-item \"\n            data-index=\"4\"\n        >\n            <span class=\"doc-tab-item-label\">PHP</span>\n        </label>\n        \n        <label\n            for=\"code-block-group-0-radio-5\"\n            class=\"doc-tab-item \"\n            data-index=\"5\"\n        >\n            <span class=\"doc-tab-item-label\">C#</span>\n        </label>\n        \n                <div class=\"code-block-inner-tab-thumb doc-tab-thumb\"></div>\n                </div>\n                <button class=\"code-copy-btn\" data-tooltip-text=\"\">\n                    <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\"> <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M5.57894 3.45614C5.57894 3.38832 5.63392 3.33333 5.70175 3.33333H12.5439C12.6117 3.33333 12.6667 3.38832 12.6667 3.45614V10.2982C12.6667 10.3661 12.6117 10.4211 12.5439 10.4211H11.7544V5.70175C11.7544 4.89754 11.1025 4.24561 10.2982 4.24561H5.57894V3.45614ZM4.24561 4.24561V3.45614C4.24561 2.65194 4.89754 2 5.70175 2H12.5439C13.3481 2 14 2.65194 14 3.45614V10.2982C14 11.1025 13.3481 11.7544 12.5439 11.7544H11.7544V12.5439C11.7544 13.3481 11.1025 14 10.2982 14H3.45614C2.65194 14 2 13.3481 2 12.5439V5.70175C2 4.89754 2.65194 4.24561 3.45614 4.24561H4.24561ZM3.33333 5.70175C3.33333 5.63392 3.38832 5.57894 3.45614 5.57894H10.2982C10.3661 5.57894 10.4211 5.63392 10.4211 5.70175V12.5439C10.4211 12.6117 10.3661 12.6667 10.2982 12.6667H3.45614C3.38832 12.6667 3.33333 12.6117 3.33333 12.5439V5.70175Z\" fill=\"currentColor\"></path> </svg>\n                    复制\n                </button>\n            </div>\n            <div class=\"code-block-inner-tab-content doc-tab-content-wrapper\">\n                \n        <input\n            id=\"code-block-group-0-radio-0\"\n            class=\"doc-tab-item-radio\"\n            type=\"radio\"\n            name=\"code-block-group-0\"\n            checked=\"\"\n            data-index=\"0\"\n        />\n        <div class=\"doc-tab-content\">\n            <pre class=\"language-bash\"><code><span class=\"line-number\">1</span><span class=\"token function\">curl</span> -i -k <span class=\"token string\">'https://aip.baidubce.com/rest/2.0/ocr/v1/toll_invoice?access_token=【调用鉴权接口获取的token】'</span> --data <span class=\"token string\">'image=【图片Base64编码，需UrlEncode】'</span> -H <span class=\"token string\">'Content-Type:application/x-www-form-urlencoded'</span></code></pre>\n        </div>\n        \n        <input\n            id=\"code-block-group-0-radio-1\"\n            class=\"doc-tab-item-radio\"\n            type=\"radio\"\n            name=\"code-block-group-0\"\n            \n            data-index=\"1\"\n        />\n        <div class=\"doc-tab-content\">\n            <pre class=\"language-python\"><code><span class=\"line-number\">1</span><span class=\"token comment\"># encoding:utf-8</span>\n<span class=\"line-number\">2</span>\n<span class=\"line-number\">3</span><span class=\"token keyword\">import</span> requests\n<span class=\"line-number\">4</span><span class=\"token keyword\">import</span> base64\n<span class=\"line-number\">5</span>\n<span class=\"line-number\">6</span><span class=\"token triple-quoted-string string\">'''\n<span class=\"line-number\">7</span>过路过桥费发票识别\n<span class=\"line-number\">8</span>'''</span>\n<span class=\"line-number\">9</span>\n<span class=\"line-number\">10</span>request_url <span class=\"token operator\">=</span> <span class=\"token string\">\"https://aip.baidubce.com/rest/2.0/ocr/v1/toll_invoice\"</span>\n<span class=\"line-number\">11</span><span class=\"token comment\"># 二进制方式打开图片文件</span>\n<span class=\"line-number\">12</span>f <span class=\"token operator\">=</span> <span class=\"token builtin\">open</span><span class=\"token punctuation\">(</span><span class=\"token string\">'[本地文件]'</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'rb'</span><span class=\"token punctuation\">)</span>\n<span class=\"line-number\">13</span>img <span class=\"token operator\">=</span> base64<span class=\"token punctuation\">.</span>b64encode<span class=\"token punctuation\">(</span>f<span class=\"token punctuation\">.</span>read<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\n<span class=\"line-number\">14</span>\n<span class=\"line-number\">15</span>params <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span><span class=\"token string\">\"image\"</span><span class=\"token punctuation\">:</span>img<span class=\"token punctuation\">}</span>\n<span class=\"line-number\">16</span>access_token <span class=\"token operator\">=</span> <span class=\"token string\">'[调用鉴权接口获取的token]'</span>\n<span class=\"line-number\">17</span>request_url <span class=\"token operator\">=</span> request_url <span class=\"token operator\">+</span> <span class=\"token string\">\"?access_token=\"</span> <span class=\"token operator\">+</span> access_token\n<span class=\"line-number\">18</span>headers <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span><span class=\"token string\">'content-type'</span><span class=\"token punctuation\">:</span> <span class=\"token string\">'application/x-www-form-urlencoded'</span><span class=\"token punctuation\">}</span>\n<span class=\"line-number\">19</span>response <span class=\"token operator\">=</span> requests<span class=\"token punctuation\">.</span>post<span class=\"token punctuation\">(</span>request_url<span class=\"token punctuation\">,</span> data<span class=\"token operator\">=</span>params<span class=\"token punctuation\">,</span> headers<span class=\"token operator\">=</span>headers<span class=\"token punctuation\">)</span>\n<span class=\"line-number\">20</span><span class=\"token keyword\">if</span> response<span class=\"token punctuation\">:</span>\n<span class=\"line-number\">21</span>    <span class=\"token keyword\">print</span> <span class=\"token punctuation\">(</span>response<span class=\"token punctuation\">.</span>json<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span></code></pre>\n        </div>\n        \n        <input\n            id=\"code-block-group-0-radio-2\"\n            class=\"doc-tab-item-radio\"\n            type=\"radio\"\n            name=\"code-block-group-0\"\n            \n            data-index=\"2\"\n        />\n        <div class=\"doc-tab-content\">\n            <pre class=\"language-java\"><code><span class=\"line-number\">1</span><span class=\"token keyword\">package</span> <span class=\"token namespace\">com<span class=\"token punctuation\">.</span>baidu<span class=\"token punctuation\">.</span>ai<span class=\"token punctuation\">.</span>aip</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">2</span>\n<span class=\"line-number\">3</span><span class=\"token keyword\">import</span> <span class=\"token namespace\">com<span class=\"token punctuation\">.</span>baidu<span class=\"token punctuation\">.</span>ai<span class=\"token punctuation\">.</span>aip<span class=\"token punctuation\">.</span>utils</span><span class=\"token punctuation\">.</span><span class=\"token class-name\">Base64Util</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">4</span><span class=\"token keyword\">import</span> <span class=\"token namespace\">com<span class=\"token punctuation\">.</span>baidu<span class=\"token punctuation\">.</span>ai<span class=\"token punctuation\">.</span>aip<span class=\"token punctuation\">.</span>utils</span><span class=\"token punctuation\">.</span><span class=\"token class-name\">FileUtil</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">5</span><span class=\"token keyword\">import</span> <span class=\"token namespace\">com<span class=\"token punctuation\">.</span>baidu<span class=\"token punctuation\">.</span>ai<span class=\"token punctuation\">.</span>aip<span class=\"token punctuation\">.</span>utils</span><span class=\"token punctuation\">.</span><span class=\"token class-name\">HttpUtil</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">6</span>\n<span class=\"line-number\">7</span><span class=\"token keyword\">import</span> <span class=\"token namespace\">java<span class=\"token punctuation\">.</span>net</span><span class=\"token punctuation\">.</span><span class=\"token class-name\">URLEncoder</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">8</span>\n<span class=\"line-number\">9</span><span class=\"token comment\">/**\n<span class=\"line-number\">10</span>* 过路过桥费发票识别\n<span class=\"line-number\">11</span>*/</span>\n<span class=\"line-number\">12</span><span class=\"token keyword\">public</span> <span class=\"token keyword\">class</span> <span class=\"token class-name\">TollInvoice</span> <span class=\"token punctuation\">{</span>\n<span class=\"line-number\">13</span>\n<span class=\"line-number\">14</span>    <span class=\"token comment\">/**\n<span class=\"line-number\">15</span>    * 重要提示代码中所需工具类\n<span class=\"line-number\">16</span>    * FileUtil,Base64Util,HttpUtil,GsonUtils请从\n<span class=\"line-number\">17</span>    * https://ai.baidu.com/file/658A35ABAB2D404FBF903F64D47C1F72\n<span class=\"line-number\">18</span>    * https://ai.baidu.com/file/C8D81F3301E24D2892968F09AE1AD6E2\n<span class=\"line-number\">19</span>    * https://ai.baidu.com/file/544D677F5D4E4F17B4122FBD60DB82B3\n<span class=\"line-number\">20</span>    * https://ai.baidu.com/file/470B3ACCA3FE43788B5A963BF0B625F3\n<span class=\"line-number\">21</span>    * 下载\n<span class=\"line-number\">22</span>    */</span>\n<span class=\"line-number\">23</span>    <span class=\"token keyword\">public</span> <span class=\"token keyword\">static</span> <span class=\"token class-name\">String</span> <span class=\"token function\">tollInvoice</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n<span class=\"line-number\">24</span>        <span class=\"token comment\">// 请求url</span>\n<span class=\"line-number\">25</span>        <span class=\"token class-name\">String</span> url <span class=\"token operator\">=</span> <span class=\"token string\">\"https://aip.baidubce.com/rest/2.0/ocr/v1/toll_invoice\"</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">26</span>        <span class=\"token keyword\">try</span> <span class=\"token punctuation\">{</span>\n<span class=\"line-number\">27</span>            <span class=\"token comment\">// 本地文件路径</span>\n<span class=\"line-number\">28</span>            <span class=\"token class-name\">String</span> filePath <span class=\"token operator\">=</span> <span class=\"token string\">\"[本地文件路径]\"</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">29</span>            <span class=\"token keyword\">byte</span><span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span> imgData <span class=\"token operator\">=</span> <span class=\"token class-name\">FileUtil</span><span class=\"token punctuation\">.</span><span class=\"token function\">readFileByBytes</span><span class=\"token punctuation\">(</span>filePath<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">30</span>            <span class=\"token class-name\">String</span> imgStr <span class=\"token operator\">=</span> <span class=\"token class-name\">Base64Util</span><span class=\"token punctuation\">.</span><span class=\"token function\">encode</span><span class=\"token punctuation\">(</span>imgData<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">31</span>            <span class=\"token class-name\">String</span> imgParam <span class=\"token operator\">=</span> <span class=\"token class-name\">URLEncoder</span><span class=\"token punctuation\">.</span><span class=\"token function\">encode</span><span class=\"token punctuation\">(</span>imgStr<span class=\"token punctuation\">,</span> <span class=\"token string\">\"UTF-8\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">32</span>\n<span class=\"line-number\">33</span>            <span class=\"token class-name\">String</span> param <span class=\"token operator\">=</span> <span class=\"token string\">\"image=\"</span> <span class=\"token operator\">+</span> imgParam<span class=\"token punctuation\">;</span>\n<span class=\"line-number\">34</span>\n<span class=\"line-number\">35</span>            <span class=\"token comment\">// 注意这里仅为了简化编码每一次请求都去获取access_token，线上环境access_token有过期时间， 客户端可自行缓存，过期后重新获取。</span>\n<span class=\"line-number\">36</span>            <span class=\"token class-name\">String</span> accessToken <span class=\"token operator\">=</span> <span class=\"token string\">\"[调用鉴权接口获取的token]\"</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">37</span>\n<span class=\"line-number\">38</span>            <span class=\"token class-name\">String</span> result <span class=\"token operator\">=</span> <span class=\"token class-name\">HttpUtil</span><span class=\"token punctuation\">.</span><span class=\"token function\">post</span><span class=\"token punctuation\">(</span>url<span class=\"token punctuation\">,</span> accessToken<span class=\"token punctuation\">,</span> param<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">39</span>            <span class=\"token class-name\">System</span><span class=\"token punctuation\">.</span>out<span class=\"token punctuation\">.</span><span class=\"token function\">println</span><span class=\"token punctuation\">(</span>result<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">40</span>            <span class=\"token keyword\">return</span> result<span class=\"token punctuation\">;</span>\n<span class=\"line-number\">41</span>        <span class=\"token punctuation\">}</span> <span class=\"token keyword\">catch</span> <span class=\"token punctuation\">(</span><span class=\"token class-name\">Exception</span> e<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n<span class=\"line-number\">42</span>            e<span class=\"token punctuation\">.</span><span class=\"token function\">printStackTrace</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">43</span>        <span class=\"token punctuation\">}</span>\n<span class=\"line-number\">44</span>        <span class=\"token keyword\">return</span> <span class=\"token keyword\">null</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">45</span>    <span class=\"token punctuation\">}</span>\n<span class=\"line-number\">46</span>\n<span class=\"line-number\">47</span>    <span class=\"token keyword\">public</span> <span class=\"token keyword\">static</span> <span class=\"token keyword\">void</span> <span class=\"token function\">main</span><span class=\"token punctuation\">(</span><span class=\"token class-name\">String</span><span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span> args<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n<span class=\"line-number\">48</span>        <span class=\"token class-name\">TollInvoice</span><span class=\"token punctuation\">.</span><span class=\"token function\">tollInvoice</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">49</span>    <span class=\"token punctuation\">}</span>\n<span class=\"line-number\">50</span><span class=\"token punctuation\">}</span></code></pre>\n        </div>\n        \n        <input\n            id=\"code-block-group-0-radio-3\"\n            class=\"doc-tab-item-radio\"\n            type=\"radio\"\n            name=\"code-block-group-0\"\n            \n            data-index=\"3\"\n        />\n        <div class=\"doc-tab-content\">\n            <pre class=\"language-cpp\"><code><span class=\"line-number\">1</span><span class=\"token macro property\">#<span class=\"token directive keyword\">include</span> <span class=\"token string\">&lt;iostream></span></span>\n<span class=\"line-number\">2</span><span class=\"token macro property\">#<span class=\"token directive keyword\">include</span> <span class=\"token string\">&lt;curl/curl.h></span></span>\n<span class=\"line-number\">3</span>\n<span class=\"line-number\">4</span><span class=\"token comment\">// libcurl库下载链接：https://curl.haxx.se/download.html</span>\n<span class=\"line-number\">5</span><span class=\"token comment\">// jsoncpp库下载链接：https://github.com/open-source-parsers/jsoncpp/</span>\n<span class=\"line-number\">6</span><span class=\"token keyword\">const</span> <span class=\"token keyword\">static</span> std<span class=\"token operator\">::</span>string request_url <span class=\"token operator\">=</span> <span class=\"token string\">\"https://aip.baidubce.com/rest/2.0/ocr/v1/toll_invoice\"</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">7</span><span class=\"token keyword\">static</span> std<span class=\"token operator\">::</span>string tollInvoice_result<span class=\"token punctuation\">;</span>\n<span class=\"line-number\">8</span><span class=\"token comment\">/**\n<span class=\"line-number\">9</span>* curl发送http请求调用的回调函数，回调函数中对返回的json格式的body进行了解析，解析结果储存在全局的静态变量当中\n<span class=\"line-number\">10</span>* @param 参数定义见libcurl文档\n<span class=\"line-number\">11</span>* @return 返回值定义见libcurl文档\n<span class=\"line-number\">12</span>*/</span>\n<span class=\"line-number\">13</span><span class=\"token keyword\">static</span> size_t <span class=\"token function\">callback</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">void</span> <span class=\"token operator\">*</span>ptr<span class=\"token punctuation\">,</span> size_t size<span class=\"token punctuation\">,</span> size_t nmemb<span class=\"token punctuation\">,</span> <span class=\"token keyword\">void</span> <span class=\"token operator\">*</span>stream<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n<span class=\"line-number\">14</span>    <span class=\"token comment\">// 获取到的body存放在ptr中，先将其转换为string格式</span>\n<span class=\"line-number\">15</span>    tollInvoice_result <span class=\"token operator\">=</span> std<span class=\"token operator\">::</span><span class=\"token function\">string</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> ptr<span class=\"token punctuation\">,</span> size <span class=\"token operator\">*</span> nmemb<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">16</span>    <span class=\"token keyword\">return</span> size <span class=\"token operator\">*</span> nmemb<span class=\"token punctuation\">;</span>\n<span class=\"line-number\">17</span><span class=\"token punctuation\">}</span>\n<span class=\"line-number\">18</span><span class=\"token comment\">/**\n<span class=\"line-number\">19</span>* 过路过桥费发票识别\n<span class=\"line-number\">20</span>* @return 调用成功返回0，发生错误返回其他错误码\n<span class=\"line-number\">21</span>*/</span>\n<span class=\"line-number\">22</span><span class=\"token keyword\">int</span> <span class=\"token function\">tollInvoice</span><span class=\"token punctuation\">(</span>std<span class=\"token operator\">::</span>string <span class=\"token operator\">&amp;</span>json_result<span class=\"token punctuation\">,</span> <span class=\"token keyword\">const</span> std<span class=\"token operator\">::</span>string <span class=\"token operator\">&amp;</span>access_token<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n<span class=\"line-number\">23</span>    std<span class=\"token operator\">::</span>string url <span class=\"token operator\">=</span> request_url <span class=\"token operator\">+</span> <span class=\"token string\">\"?access_token=\"</span> <span class=\"token operator\">+</span> access_token<span class=\"token punctuation\">;</span>\n<span class=\"line-number\">24</span>    CURL <span class=\"token operator\">*</span>curl <span class=\"token operator\">=</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">25</span>    CURLcode result_code<span class=\"token punctuation\">;</span>\n<span class=\"line-number\">26</span>    <span class=\"token keyword\">int</span> is_success<span class=\"token punctuation\">;</span>\n<span class=\"line-number\">27</span>    curl <span class=\"token operator\">=</span> <span class=\"token function\">curl_easy_init</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">28</span>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>curl<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n<span class=\"line-number\">29</span>        <span class=\"token function\">curl_easy_setopt</span><span class=\"token punctuation\">(</span>curl<span class=\"token punctuation\">,</span> CURLOPT_URL<span class=\"token punctuation\">,</span> url<span class=\"token punctuation\">.</span><span class=\"token function\">data</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">30</span>        <span class=\"token function\">curl_easy_setopt</span><span class=\"token punctuation\">(</span>curl<span class=\"token punctuation\">,</span> CURLOPT_POST<span class=\"token punctuation\">,</span> <span class=\"token number\">1</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">31</span>        curl_httppost <span class=\"token operator\">*</span>post <span class=\"token operator\">=</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">32</span>        curl_httppost <span class=\"token operator\">*</span>last <span class=\"token operator\">=</span> <span class=\"token constant\">NULL</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">33</span>        <span class=\"token function\">curl_formadd</span><span class=\"token punctuation\">(</span><span class=\"token operator\">&amp;</span>post<span class=\"token punctuation\">,</span> <span class=\"token operator\">&amp;</span>last<span class=\"token punctuation\">,</span> CURLFORM_COPYNAME<span class=\"token punctuation\">,</span> <span class=\"token string\">\"image\"</span><span class=\"token punctuation\">,</span> CURLFORM_COPYCONTENTS<span class=\"token punctuation\">,</span> <span class=\"token string\">\"【base64_img】\"</span><span class=\"token punctuation\">,</span> CURLFORM_END<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">34</span>\n<span class=\"line-number\">35</span>        <span class=\"token function\">curl_easy_setopt</span><span class=\"token punctuation\">(</span>curl<span class=\"token punctuation\">,</span> CURLOPT_HTTPPOST<span class=\"token punctuation\">,</span> post<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">36</span>        <span class=\"token function\">curl_easy_setopt</span><span class=\"token punctuation\">(</span>curl<span class=\"token punctuation\">,</span> CURLOPT_WRITEFUNCTION<span class=\"token punctuation\">,</span> callback<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">37</span>        result_code <span class=\"token operator\">=</span> <span class=\"token function\">curl_easy_perform</span><span class=\"token punctuation\">(</span>curl<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">38</span>        <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>result_code <span class=\"token operator\">!=</span> CURLE_OK<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n<span class=\"line-number\">39</span>            <span class=\"token function\">fprintf</span><span class=\"token punctuation\">(</span><span class=\"token constant\">stderr</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"curl_easy_perform() failed: %s\\n\"</span><span class=\"token punctuation\">,</span>\n<span class=\"line-number\">40</span>                    <span class=\"token function\">curl_easy_strerror</span><span class=\"token punctuation\">(</span>result_code<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">41</span>            is_success <span class=\"token operator\">=</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">42</span>            <span class=\"token keyword\">return</span> is_success<span class=\"token punctuation\">;</span>\n<span class=\"line-number\">43</span>        <span class=\"token punctuation\">}</span>\n<span class=\"line-number\">44</span>        json_result <span class=\"token operator\">=</span> tollInvoice_result<span class=\"token punctuation\">;</span>\n<span class=\"line-number\">45</span>        <span class=\"token function\">curl_easy_cleanup</span><span class=\"token punctuation\">(</span>curl<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">46</span>        is_success <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">47</span>    <span class=\"token punctuation\">}</span> <span class=\"token keyword\">else</span> <span class=\"token punctuation\">{</span>\n<span class=\"line-number\">48</span>        <span class=\"token function\">fprintf</span><span class=\"token punctuation\">(</span><span class=\"token constant\">stderr</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"curl_easy_init() failed.\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">49</span>        is_success <span class=\"token operator\">=</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">50</span>    <span class=\"token punctuation\">}</span>\n<span class=\"line-number\">51</span>    <span class=\"token keyword\">return</span> is_success<span class=\"token punctuation\">;</span>\n<span class=\"line-number\">52</span><span class=\"token punctuation\">}</span></code></pre>\n        </div>\n        \n        <input\n            id=\"code-block-group-0-radio-4\"\n            class=\"doc-tab-item-radio\"\n            type=\"radio\"\n            name=\"code-block-group-0\"\n            \n            data-index=\"4\"\n        />\n        <div class=\"doc-tab-content\">\n            <pre class=\"language-php\"><code><span class=\"line-number\">1</span><span class=\"token php language-php\"><span class=\"token delimiter important\">&lt;?php</span>\n<span class=\"line-number\">2</span><span class=\"token comment\">/**\n<span class=\"line-number\">3</span>* 发起http post请求(REST API), 并获取REST请求的结果\n<span class=\"line-number\">4</span>* @param string $url\n<span class=\"line-number\">5</span>* @param string $param\n<span class=\"line-number\">6</span>* @return - http response body if succeeds, else false.\n<span class=\"line-number\">7</span>*/</span>\n<span class=\"line-number\">8</span><span class=\"token keyword\">function</span> <span class=\"token function\">request_post</span><span class=\"token punctuation\">(</span><span class=\"token variable\">$url</span> <span class=\"token operator\">=</span> <span class=\"token single-quoted-string string\">''</span><span class=\"token punctuation\">,</span> <span class=\"token variable\">$param</span> <span class=\"token operator\">=</span> <span class=\"token single-quoted-string string\">''</span><span class=\"token punctuation\">)</span>\n<span class=\"line-number\">9</span><span class=\"token punctuation\">{</span>\n<span class=\"line-number\">10</span>    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">empty</span><span class=\"token punctuation\">(</span><span class=\"token variable\">$url</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">||</span> <span class=\"token keyword\">empty</span><span class=\"token punctuation\">(</span><span class=\"token variable\">$param</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n<span class=\"line-number\">11</span>        <span class=\"token keyword\">return</span> <span class=\"token boolean constant\">false</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">12</span>    <span class=\"token punctuation\">}</span>\n<span class=\"line-number\">13</span>\n<span class=\"line-number\">14</span>    <span class=\"token variable\">$postUrl</span> <span class=\"token operator\">=</span> <span class=\"token variable\">$url</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">15</span>    <span class=\"token variable\">$curlPost</span> <span class=\"token operator\">=</span> <span class=\"token variable\">$param</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">16</span>    <span class=\"token comment\">// 初始化curl</span>\n<span class=\"line-number\">17</span>    <span class=\"token variable\">$curl</span> <span class=\"token operator\">=</span> <span class=\"token function\">curl_init</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">18</span>    <span class=\"token function\">curl_setopt</span><span class=\"token punctuation\">(</span><span class=\"token variable\">$curl</span><span class=\"token punctuation\">,</span> <span class=\"token constant\">CURLOPT_URL</span><span class=\"token punctuation\">,</span> <span class=\"token variable\">$postUrl</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">19</span>    <span class=\"token function\">curl_setopt</span><span class=\"token punctuation\">(</span><span class=\"token variable\">$curl</span><span class=\"token punctuation\">,</span> <span class=\"token constant\">CURLOPT_HEADER</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">20</span>    <span class=\"token comment\">// 要求结果为字符串且输出到屏幕上</span>\n<span class=\"line-number\">21</span>    <span class=\"token function\">curl_setopt</span><span class=\"token punctuation\">(</span><span class=\"token variable\">$curl</span><span class=\"token punctuation\">,</span> <span class=\"token constant\">CURLOPT_RETURNTRANSFER</span><span class=\"token punctuation\">,</span> <span class=\"token number\">1</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">22</span>    <span class=\"token function\">curl_setopt</span><span class=\"token punctuation\">(</span><span class=\"token variable\">$curl</span><span class=\"token punctuation\">,</span> <span class=\"token constant\">CURLOPT_SSL_VERIFYPEER</span><span class=\"token punctuation\">,</span> <span class=\"token boolean constant\">false</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">23</span>    <span class=\"token comment\">// post提交方式</span>\n<span class=\"line-number\">24</span>    <span class=\"token function\">curl_setopt</span><span class=\"token punctuation\">(</span><span class=\"token variable\">$curl</span><span class=\"token punctuation\">,</span> <span class=\"token constant\">CURLOPT_POST</span><span class=\"token punctuation\">,</span> <span class=\"token number\">1</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">25</span>    <span class=\"token function\">curl_setopt</span><span class=\"token punctuation\">(</span><span class=\"token variable\">$curl</span><span class=\"token punctuation\">,</span> <span class=\"token constant\">CURLOPT_POSTFIELDS</span><span class=\"token punctuation\">,</span> <span class=\"token variable\">$curlPost</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">26</span>    <span class=\"token comment\">// 运行curl</span>\n<span class=\"line-number\">27</span>    <span class=\"token variable\">$data</span> <span class=\"token operator\">=</span> <span class=\"token function\">curl_exec</span><span class=\"token punctuation\">(</span><span class=\"token variable\">$curl</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">28</span>    <span class=\"token function\">curl_close</span><span class=\"token punctuation\">(</span><span class=\"token variable\">$curl</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">29</span>\n<span class=\"line-number\">30</span>    <span class=\"token keyword\">return</span> <span class=\"token variable\">$data</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">31</span><span class=\"token punctuation\">}</span>\n<span class=\"line-number\">32</span>\n<span class=\"line-number\">33</span><span class=\"token variable\">$token</span> <span class=\"token operator\">=</span> <span class=\"token single-quoted-string string\">'[调用鉴权接口获取的token]'</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">34</span><span class=\"token variable\">$url</span> <span class=\"token operator\">=</span> <span class=\"token single-quoted-string string\">'https://aip.baidubce.com/rest/2.0/ocr/v1/toll_invoice?access_token='</span> <span class=\"token punctuation\">.</span> <span class=\"token variable\">$token</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">35</span><span class=\"token variable\">$img</span> <span class=\"token operator\">=</span> <span class=\"token function\">file_get_contents</span><span class=\"token punctuation\">(</span><span class=\"token single-quoted-string string\">'[本地文件路径]'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">36</span><span class=\"token variable\">$img</span> <span class=\"token operator\">=</span> <span class=\"token function\">base64_encode</span><span class=\"token punctuation\">(</span><span class=\"token variable\">$img</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">37</span><span class=\"token variable\">$bodys</span> <span class=\"token operator\">=</span> <span class=\"token keyword\">array</span><span class=\"token punctuation\">(</span>\n<span class=\"line-number\">38</span>    <span class=\"token single-quoted-string string\">'image'</span> <span class=\"token operator\">=</span><span class=\"token operator\">></span> <span class=\"token variable\">$img</span>\n<span class=\"line-number\">39</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">40</span><span class=\"token variable\">$res</span> <span class=\"token operator\">=</span> <span class=\"token function\">request_post</span><span class=\"token punctuation\">(</span><span class=\"token variable\">$url</span><span class=\"token punctuation\">,</span> <span class=\"token variable\">$bodys</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">41</span>\n<span class=\"line-number\">42</span><span class=\"token function\">var_dump</span><span class=\"token punctuation\">(</span><span class=\"token variable\">$res</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></span></code></pre>\n        </div>\n        \n        <input\n            id=\"code-block-group-0-radio-5\"\n            class=\"doc-tab-item-radio\"\n            type=\"radio\"\n            name=\"code-block-group-0\"\n            \n            data-index=\"5\"\n        />\n        <div class=\"doc-tab-content\">\n            <pre class=\"language-csharp\"><code><span class=\"line-number\">1</span><span class=\"token keyword\">using</span> System<span class=\"token punctuation\">;</span>\n<span class=\"line-number\">2</span><span class=\"token keyword\">using</span> System<span class=\"token punctuation\">.</span>IO<span class=\"token punctuation\">;</span>\n<span class=\"line-number\">3</span><span class=\"token keyword\">using</span> System<span class=\"token punctuation\">.</span>Net<span class=\"token punctuation\">;</span>\n<span class=\"line-number\">4</span><span class=\"token keyword\">using</span> System<span class=\"token punctuation\">.</span>Text<span class=\"token punctuation\">;</span>\n<span class=\"line-number\">5</span><span class=\"token keyword\">using</span> System<span class=\"token punctuation\">.</span>Web<span class=\"token punctuation\">;</span>\n<span class=\"line-number\">6</span>\n<span class=\"line-number\">7</span><span class=\"token keyword\">namespace</span> com<span class=\"token punctuation\">.</span>baidu<span class=\"token punctuation\">.</span>ai\n<span class=\"line-number\">8</span><span class=\"token punctuation\">{</span>\n<span class=\"line-number\">9</span>    <span class=\"token keyword\">public</span> <span class=\"token keyword\">class</span> <span class=\"token class-name\">TollInvoice</span>\n<span class=\"line-number\">10</span>    <span class=\"token punctuation\">{</span>\n<span class=\"line-number\">11</span>        <span class=\"token comment\">// 过路过桥费发票识别</span>\n<span class=\"line-number\">12</span>        <span class=\"token keyword\">public</span> <span class=\"token keyword\">static</span> <span class=\"token keyword\">string</span> <span class=\"token function\">tollInvoice</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n<span class=\"line-number\">13</span>        <span class=\"token punctuation\">{</span>\n<span class=\"line-number\">14</span>            <span class=\"token keyword\">string</span> token <span class=\"token operator\">=</span> <span class=\"token string\">\"[调用鉴权接口获取的token]\"</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">15</span>            <span class=\"token keyword\">string</span> host <span class=\"token operator\">=</span> <span class=\"token string\">\"https://aip.baidubce.com/rest/2.0/ocr/v1/toll_invoice?access_token=\"</span> <span class=\"token operator\">+</span> token<span class=\"token punctuation\">;</span>\n<span class=\"line-number\">16</span>            <span class=\"token class-name\">Encoding</span> encoding <span class=\"token operator\">=</span> Encoding<span class=\"token punctuation\">.</span>Default<span class=\"token punctuation\">;</span>\n<span class=\"line-number\">17</span>            <span class=\"token class-name\">HttpWebRequest</span> request <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span>HttpWebRequest<span class=\"token punctuation\">)</span>WebRequest<span class=\"token punctuation\">.</span><span class=\"token function\">Create</span><span class=\"token punctuation\">(</span>host<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">18</span>            request<span class=\"token punctuation\">.</span>Method <span class=\"token operator\">=</span> <span class=\"token string\">\"post\"</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">19</span>            request<span class=\"token punctuation\">.</span>KeepAlive <span class=\"token operator\">=</span> <span class=\"token keyword\">true</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">20</span>            <span class=\"token comment\">// 图片的base64编码</span>\n<span class=\"line-number\">21</span>            <span class=\"token keyword\">string</span> base64 <span class=\"token operator\">=</span> <span class=\"token function\">getFileBase64</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"[本地图片文件]\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">22</span>            <span class=\"token class-name\">String</span> str <span class=\"token operator\">=</span> <span class=\"token string\">\"image=\"</span> <span class=\"token operator\">+</span> HttpUtility<span class=\"token punctuation\">.</span><span class=\"token function\">UrlEncode</span><span class=\"token punctuation\">(</span>base64<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">23</span>            <span class=\"token keyword\">byte</span><span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span> buffer <span class=\"token operator\">=</span> encoding<span class=\"token punctuation\">.</span><span class=\"token function\">GetBytes</span><span class=\"token punctuation\">(</span>str<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">24</span>            request<span class=\"token punctuation\">.</span>ContentLength <span class=\"token operator\">=</span> buffer<span class=\"token punctuation\">.</span>Length<span class=\"token punctuation\">;</span>\n<span class=\"line-number\">25</span>            request<span class=\"token punctuation\">.</span><span class=\"token function\">GetRequestStream</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">Write</span><span class=\"token punctuation\">(</span>buffer<span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span> buffer<span class=\"token punctuation\">.</span>Length<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">26</span>            <span class=\"token class-name\">HttpWebResponse</span> response <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span>HttpWebResponse<span class=\"token punctuation\">)</span>request<span class=\"token punctuation\">.</span><span class=\"token function\">GetResponse</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">27</span>            <span class=\"token class-name\">StreamReader</span> reader <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">StreamReader</span><span class=\"token punctuation\">(</span>response<span class=\"token punctuation\">.</span><span class=\"token function\">GetResponseStream</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> Encoding<span class=\"token punctuation\">.</span>Default<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">28</span>            <span class=\"token keyword\">string</span> result <span class=\"token operator\">=</span> reader<span class=\"token punctuation\">.</span><span class=\"token function\">ReadToEnd</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">29</span>            Console<span class=\"token punctuation\">.</span><span class=\"token function\">WriteLine</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"过路过桥费发票识别:\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">30</span>            Console<span class=\"token punctuation\">.</span><span class=\"token function\">WriteLine</span><span class=\"token punctuation\">(</span>result<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">31</span>            <span class=\"token keyword\">return</span> result<span class=\"token punctuation\">;</span>\n<span class=\"line-number\">32</span>        <span class=\"token punctuation\">}</span>\n<span class=\"line-number\">33</span>\n<span class=\"line-number\">34</span>        <span class=\"token keyword\">public</span> <span class=\"token keyword\">static</span> <span class=\"token class-name\">String</span> <span class=\"token function\">getFileBase64</span><span class=\"token punctuation\">(</span><span class=\"token class-name\">String</span> fileName<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n<span class=\"line-number\">35</span>            <span class=\"token class-name\">FileStream</span> filestream <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">FileStream</span><span class=\"token punctuation\">(</span>fileName<span class=\"token punctuation\">,</span> FileMode<span class=\"token punctuation\">.</span>Open<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">36</span>            <span class=\"token keyword\">byte</span><span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span> arr <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token keyword\">byte</span><span class=\"token punctuation\">[</span>filestream<span class=\"token punctuation\">.</span>Length<span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">37</span>            filestream<span class=\"token punctuation\">.</span><span class=\"token function\">Read</span><span class=\"token punctuation\">(</span>arr<span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span><span class=\"token punctuation\">)</span>filestream<span class=\"token punctuation\">.</span>Length<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">38</span>            <span class=\"token keyword\">string</span> baser64 <span class=\"token operator\">=</span> Convert<span class=\"token punctuation\">.</span><span class=\"token function\">ToBase64String</span><span class=\"token punctuation\">(</span>arr<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">39</span>            filestream<span class=\"token punctuation\">.</span><span class=\"token function\">Close</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">40</span>            <span class=\"token keyword\">return</span> baser64<span class=\"token punctuation\">;</span>\n<span class=\"line-number\">41</span>        <span class=\"token punctuation\">}</span>\n<span class=\"line-number\">42</span>    <span class=\"token punctuation\">}</span>\n<span class=\"line-number\">43</span><span class=\"token punctuation\">}</span></code></pre>\n        </div>\n        \n            </div>\n        </div>\n    </div>\n  \n<h2 id=\"返回说明\"><a href=\"#%E8%BF%94%E5%9B%9E%E8%AF%B4%E6%98%8E\" aria-label=\"返回说明 permalink\" class=\"anchor\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>返回说明</h2>\n<p><strong>返回参数</strong></p>\n<table>\n<thead>\n<tr>\n<th>参数</th>\n<th>是否必须</th>\n<th>类型</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>log_id</td>\n<td>是</td>\n<td>uint64</td>\n<td>唯一的log id，用于问题定位</td>\n</tr>\n<tr>\n<td>words_result_num</td>\n<td>是</td>\n<td>uint32</td>\n<td>识别结果数，表示words_result的元素个数</td>\n</tr>\n<tr>\n<td>words_result</td>\n<td>是</td>\n<td>object</td>\n<td>识别结果</td>\n</tr>\n<tr>\n<td>+ InvoiceCode</td>\n<td>是</td>\n<td>string</td>\n<td>发票代码</td>\n</tr>\n<tr>\n<td>+ InvoiceNum</td>\n<td>是</td>\n<td>string</td>\n<td>发票号码</td>\n</tr>\n<tr>\n<td>+ Entrance</td>\n<td>是</td>\n<td>string</td>\n<td>入口</td>\n</tr>\n<tr>\n<td>+ Exit</td>\n<td>是</td>\n<td>string</td>\n<td>出口</td>\n</tr>\n<tr>\n<td>+ Date</td>\n<td>是</td>\n<td>string</td>\n<td>日期</td>\n</tr>\n<tr>\n<td>+ Time</td>\n<td>是</td>\n<td>string</td>\n<td>时间</td>\n</tr>\n<tr>\n<td>+ Fare</td>\n<td>是</td>\n<td>string</td>\n<td>金额</td>\n</tr>\n<tr>\n<td>+ Province</td>\n<td>是</td>\n<td>string</td>\n<td>省</td>\n</tr>\n<tr>\n<td>+ City</td>\n<td>是</td>\n<td>string</td>\n<td>市</td>\n</tr>\n</tbody>\n</table>\n<p><strong>返回示例</strong> </p>\n\n    <div class=\"code-block-wrapper\">\n        <div class=\"code-block\">\n            <div class=\"code-block-header\">\n                <span class=\"code-block-name\">JSON</span>\n                <button class=\"code-copy-btn\" data-tooltip-text=\"\">\n                    <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\"> <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M5.57894 3.45614C5.57894 3.38832 5.63392 3.33333 5.70175 3.33333H12.5439C12.6117 3.33333 12.6667 3.38832 12.6667 3.45614V10.2982C12.6667 10.3661 12.6117 10.4211 12.5439 10.4211H11.7544V5.70175C11.7544 4.89754 11.1025 4.24561 10.2982 4.24561H5.57894V3.45614ZM4.24561 4.24561V3.45614C4.24561 2.65194 4.89754 2 5.70175 2H12.5439C13.3481 2 14 2.65194 14 3.45614V10.2982C14 11.1025 13.3481 11.7544 12.5439 11.7544H11.7544V12.5439C11.7544 13.3481 11.1025 14 10.2982 14H3.45614C2.65194 14 2 13.3481 2 12.5439V5.70175C2 4.89754 2.65194 4.24561 3.45614 4.24561H4.24561ZM3.33333 5.70175C3.33333 5.63392 3.38832 5.57894 3.45614 5.57894H10.2982C10.3661 5.57894 10.4211 5.63392 10.4211 5.70175V12.5439C10.4211 12.6117 10.3661 12.6667 10.2982 12.6667H3.45614C3.38832 12.6667 3.33333 12.6117 3.33333 12.5439V5.70175Z\" fill=\"currentColor\"></path> </svg>\n                    复制\n                </button>\n            </div>\n            <div class=\"code-block-content\">\n                <pre class=\"language-json\"><code><span class=\"line-number\">1</span>    <span class=\"token property\">\"words_result\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span>\n<span class=\"line-number\">2</span>        <span class=\"token property\">\"Entrance\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"保定北\"</span><span class=\"token punctuation\">,</span>\n<span class=\"line-number\">3</span>        <span class=\"token property\">\"Time\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"13:24\"</span><span class=\"token punctuation\">,</span>\n<span class=\"line-number\">4</span>        <span class=\"token property\">\"InvoiceCode\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"237001473201\"</span><span class=\"token punctuation\">,</span>\n<span class=\"line-number\">5</span>        <span class=\"token property\">\"Date\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"2020-02-18\"</span><span class=\"token punctuation\">,</span>\n<span class=\"line-number\">6</span>        <span class=\"token property\">\"Exit\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"邯郸\"</span><span class=\"token punctuation\">,</span>\n<span class=\"line-number\">7</span>        <span class=\"token property\">\"Fare\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"110.00\"</span><span class=\"token punctuation\">,</span>\n<span class=\"line-number\">8</span>        <span class=\"token property\">\"InvoiceNum\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"95876669\"</span>\n<span class=\"line-number\">9</span>        <span class=\"token property\">\"City\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"保定\"</span><span class=\"token punctuation\">,</span>\n<span class=\"line-number\">10</span>        <span class=\"token property\">\"Province\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"河北\"</span>\n<span class=\"line-number\">11</span>    <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n<span class=\"line-number\">12</span>    <span class=\"token property\">\"log_id\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"1274932270494384128\"</span><span class=\"token punctuation\">,</span>\n<span class=\"line-number\">13</span>    <span class=\"token property\">\"words_result_num\"</span><span class=\"token operator\">:</span> <span class=\"token number\">7</span>\n<span class=\"line-number\">14</span><span class=\"token punctuation\">}</span></code></pre>\n            </div>\n        </div>\n    </div>\n  ","fields":{"slug":"1mticbu6f","title":"过路过桥费发票识别","date":"2026-09-03","extractedHeadings":[]},"headings":[{"value":"接口描述","depth":2},{"value":"在线调试","depth":2},{"value":"请求说明","depth":2},{"value":"返回说明","depth":2}]}},"pageContext":{"isCreatedByStatefulCreatePages":false,"slug":"1mticbu6f","prev":{"id":"Hmticea5g","name":"汽车票识别","path":"Hmticea5g","filePath":"历史版本/汽车票识别.md","seo":null,"parentIds":["tlc74eycx"],"parents":[{"id":"tlc74eycx","documentId":"755f6adb-da59-4489-93fc-7f04510aa819","name":"历史版本","repoName":"OCR","filePath":"历史版本","disabled":false,"path":"tlc74eycx","lastMergeTime":null,"isApiDoc":null,"httpMethod":null,"seo":null,"sourceOrgName":null,"sourceRepoName":null,"sourceDocumentId":null,"solutionTag":null,"solutionColor":null}]},"next":{"id":"3mtibvwh4","name":"银行单据识别（高级版）","path":"3mtibvwh4","filePath":"历史版本/银行单据识别（高级版）.md","seo":null,"parentIds":["tlc74eycx"],"parents":[{"id":"tlc74eycx","documentId":"755f6adb-da59-4489-93fc-7f04510aa819","name":"历史版本","repoName":"OCR","filePath":"历史版本","disabled":false,"path":"tlc74eycx","lastMergeTime":null,"isApiDoc":null,"httpMethod":null,"seo":null,"sourceOrgName":null,"sourceRepoName":null,"sourceDocumentId":null,"solutionTag":null,"solutionColor":null}]},"parents":[{"id":"tlc74eycx","documentId":"755f6adb-da59-4489-93fc-7f04510aa819","name":"历史版本","repoName":"OCR","filePath":"历史版本","disabled":false,"path":"tlc74eycx","lastMergeTime":null,"isApiDoc":null,"httpMethod":null,"seo":null,"sourceOrgName":null,"sourceRepoName":null,"sourceDocumentId":null,"solutionTag":null,"solutionColor":null}],"specificSeo":null}}}