当前位置:   article > 正文

TextIn:打造智能文本处理的完美体验_textin rool

textin rool

 一:前言

在数字化时代,API(应用程序编程接口)已成为软件开发不可或缺的一部分。TextIn的 API提供了一个强大的文本处理平台,使开发者能够轻松集成各种文本分析和处理功能。本文将分享我们团队的使用心得,探讨这个API如何在我们的项目中发挥作用。

 二:合合信息介绍
合合TextIn - 合合信息旗下OCR云服务产品icon-default.png?t=N7T8https://www.textin.com/

上海合合信息科技股份有限公司是一家人工智能及大数据科技企业,专注于智能文字识别、图像处理、自然语言处理(NLP)、知识图谱、大数据挖掘等技术。基于自主研发的智能文字识别及商业大数据核心技术,为全球C端用户和多元行业B端客户提供数字化、智能化的产品及服务。

TextIn是合合信息旗下智能文字识别产品,拥有智能文字识别技术和企业服务经验,产品提供公有云API、SDK及私有化部署多种部署方式,为金融、物流、制造、移动互联网、智慧政务、智慧社区等行业提供行业个性化智能文字识别解决方案。致力于为企业、开发者及个人用户提供一站式智能文字识别服务。TextIn智能文字识别引擎可以从图像和PDF文档中提取印刷、手写、印章、公式、表格、图片等富文本信息,支持50+多语言识别,众多文档类型,包括商业文件、发票、账单、收据、名片和海报。

在本次项目开发中,我们团队使用了发票验真和通用票据识别的API。

三:API的使用

1.登录或注册账号进入工作台

 2.在市场中选择需要调用的API

3.学习如何使用API

TextIn的API的集成过程非常简洁。它提供了清晰的文档和示例代码,让我们能够快速理解如何调用API。通过简单的HTTP请求,我就可以访问到强大的文本处理功能,这让我们省去了大量的开发时间。

它还提供了清晰易懂的错误信息,供开发者们及时纠正错误。

 它对小白开发者也是极为友好,提供了各种语言的示例代码供开发者参考。

它还提供了在线使用和在线调试功能,非常方便快捷。

四:通用票据识别API

在使用时,我们注意到它的响应速度非常快,即使是处理大量文本数据也不例外。这种高效的性能对于需要实时分析的应用来说至关重要。我们可以依赖它来提供快速准确的结果,这让我们对TextIn充满信心。

识别结果清晰,详细,准确无差错。

返回的JSON 结果

我们团队在本次项目中使用了 通用票据识别和发票验真api

以下是通用识别票据的使用

  1. // 定义一个函数用于识别票据
  2. recognizeBill:function() {
  3. const appId = ''//此处自己填写
  4. const secretCode = ''//此处自己填写
  5. const url = 'https://api.textin.com/robot/v1.0/api/bills_crop'
  6. // 调用微信小程序的选择图片接口
  7. wx.chooseMedia({
  8. count: 1,
  9. mediaType: ['image'],
  10. sourceType: ['album', 'camera'],
  11. camera: 'back',
  12. success:res=> {
  13. if(res.tempFiles.length>0)
  14. {
  15. res.tempFiles.forEach(tempFile=>{
  16. firstImageEncoding=wx.getFileSystemManager().readFileSync(tempFile.tempFilePath)
  17. filePath=tempFile.tempFilePath
  18. })
  19. console.log(firstImageEncoding)
  20. wx.request({
  21. url: 'https://api.textin.com/robot/v1.0/api/bills_crop',
  22. method: 'POST',
  23. header: {
  24. 'content-type': 'application/octet-stream', // 指定内容类型为二进制流
  25. 'x-ti-app-id': appId, // 自定义请求头部
  26. 'x-ti-secret-code': secretCode
  27. },
  28. data: firstImageEncoding, // 读取文件二进制流作为请求体
  29. success:res=> {
  30. result_1 = res.data.result; // 将结果存储在变量中
  31. console.log(result_1); // 请求成功的回调函数
  32. wx.showModal({
  33. title: '提示',
  34. content: '照片已经成功识别,是否要保存?',
  35. showCancel: true,
  36. cancelText: '取消',
  37. confirmText: '确认',
  38. success(res) {
  39. if (res.confirm) {
  40. wx.cloud.uploadFile({
  41. // 指定上传到的云路径
  42. cloudPath: 'my-photo.png_'+count,
  43. // 指定要上传的文件的小程序临时文件路径
  44. filePath: filePath,
  45. // 成功回调
  46. success: res => {
  47. filePath=res.fileID
  48. wx.showModal({
  49. title: '提示',
  50. content: '选择收入还是支出',
  51. confirmText: '收入',
  52. cancelText: '支出',
  53. complete: (res) => {
  54. if (res.cancel) {
  55. flag=false
  56. }
  57. if (res.confirm) {
  58. flag=true
  59. }
  60. }
  61. }),
  62. console.log(result_1.object_list[0].type)
  63. /**
  64. * 以下为票据的共有属性
  65. *
  66. * @param {String} date -发票时间,若没有则为null
  67. * @param {String} type -票据类型
  68. * @param {String} type_description -票据类型中文描述
  69. * @param {String} money -价税合计小写
  70. * @param {String} number -发票号码
  71. * @param {String} code -发票代码,若没有则为null
  72. * @param {String} buyer_id -纳税人识别号或购买人身份信息,若没有则为null
  73. * @param {boolean} income_or_expenses -布尔值,标记收入或支出,取值于flag,true为收入,false为支出
  74. */
  75. var i;//循环变量
  76. var item;//循环临时容器
  77. if (result_1.object_list[0].type=='blockchain_electronic_invoiceblockchain_electronic_invoice'||
  78. result_1.object_list[0].type=='machine_printed_invoice'||
  79. result_1.object_list[0].type=='vat_common_invoice'||
  80. result_1.object_list[0].type=='vat_electronic_invoice'||
  81. result_1.object_list[0].type=='vat_electronic_special_invoice'||
  82. result_1.object_list[0].type=='vat_electronic_toll_invoice'||
  83. result_1.object_list[0].type=='vat_electronic_invoice_new'||
  84. result_1.object_list[0].type=='vat_electronic_special_invoice_new'||
  85. result_1.object_list[0].type=='vat_special_invoice') {
  86. /*
  87. blockchain_electronic_invoice 区块链电子发票
  88. machine_printed_invoice 机打发票
  89. vat_common_invoice 增值税普通发票
  90. vat_electronic_invoice 增值税电子普通发票
  91. vat_electronic_special_invoice 增值税电子专用发票
  92. vat_electronic_toll_invoice 增值税电子普通发票(通行费)
  93. vat_electronic_invoice_new 电子发票(普通发票)
  94. vat_electronic_special_invoice_new 电子发票(增值税专用发票)
  95. vat_special_invoice 增值税专用发票
  96. */
  97. var date;
  98. var money;
  99. var vat_invoice_goods_list;
  100. var number;
  101. var code;
  102. var buyer_id;
  103. var vat_invoice_haoma_large_size;
  104. var vat_invoice_tax_total;
  105. var vat_invoice_drawer;
  106. for (i=0; i<result_1.object_list[0].item_list.length; i++) {
  107. item = result_1.object_list[0].item_list[i];
  108. if (item.key=='vat_invoice_issue_date_print') {
  109. date = item.value;//开票日期
  110. }
  111. else if (item.key=='vat_invoice_total_cover_tax_digits') {
  112. money = item.value;//价税合计小写
  113. }
  114. else if (item.key=='vat_invoice_goods_list') {
  115. vat_invoice_goods_list = item.value;//货物或服务名称
  116. }
  117. else if (item.key=='vat_invoice_haoma') {
  118. number = item.value;//发票号码
  119. }
  120. else if (item.key=='vat_invoice_daima') {
  121. code = item.value;//发票代码
  122. }
  123. else if (item.key=='vat_invoice_rate_payer_id') {
  124. buyer_id = item.value;//纳税人识别号
  125. }
  126. else if (item.key=='vat_invoice_haoma_large_size') {
  127. vat_invoice_haoma_large_size = item.value;//增值税发票No号码
  128. }
  129. else if (item.key=='vat_invoice_tax_total') {
  130. vat_invoice_tax_total = item.value;//税额合计
  131. }
  132. else if (item.key=='vat_invoice_drawer') {
  133. vat_invoice_drawer = item.value;//开票人
  134. }
  135. }
  136. db_1.add({
  137. data:{
  138. type_:true,
  139. image:filePath,
  140. date:date,//开票日期
  141. type:result_1.object_list[0].type,//票据类型
  142. type_description:result_1.object_list[0].type_description,//票据类型中文描述
  143. money:money,//价税合计小写
  144. vat_invoice_goods_list:vat_invoice_goods_list,//货物或服务名称
  145. number:number,//发票号码
  146. code:code,//发票代码
  147. buyer_id:buyer_id,//纳税人识别号
  148. vat_invoice_haoma_large_size:vat_invoice_haoma_large_size,//增值税发票No号码
  149. vat_invoice_tax_total:vat_invoice_tax_total,//税额合计
  150. vat_invoice_drawer:vat_invoice_drawer,//开票人
  151. income_or_expenses:flag,//
  152. }
  153. })
  154. }
  155. else if(result_1.object_list[0].type=='motor_vehicle_sale_invoice') {
  156. /*
  157. motor_vehicle_sale_invoice 机动车销售统一发票
  158. */
  159. var date;
  160. var money;
  161. var vehicle_invoice_vehicle_type;
  162. var number;
  163. var code;
  164. var buyer_id;
  165. var tax;
  166. for (i=0; i<result_1.object_list[0].item_list.length; i++) {
  167. item = result_1.object_list[0].item_list[i];
  168. if (item.key=='vehicle_invoice_issue_date') {
  169. date = item.value;//开票日期
  170. }
  171. else if (item.key=='vehicle_invoice_total_price_digits') {
  172. money = item.value;//价税合计小写
  173. }
  174. else if (item.key=='vehicle_invoice_vehicle_type') {
  175. vehicle_invoice_vehicle_type = item.value;//车辆类型
  176. }
  177. else if (item.key=='vehicle_invoice_haoma') {
  178. number = item.value;//发票号码
  179. }
  180. else if (item.key=='vehicle_invoice_daima') {
  181. code = item.value;//发票代码
  182. }
  183. else if (item.key=='vehicle_invoice_buyer_tax_id') {
  184. buyer_id = item.value;//购方纳税人识别号
  185. }
  186. else if (item.key=='vehicle_invoice_tax_amount') {
  187. tax = item.value;//增值税税额
  188. }
  189. }
  190. db_1.add({
  191. data:{
  192. type_:false,
  193. image:filePath,
  194. type:result_1.object_list[0].type,//票据类型
  195. type_description:result_1.object_list[0].type_description,//票据类型中文描述
  196. money:money,//价税合计小写
  197. date:date,//开票日期
  198. vehicle_invoice_vehicle_type:vehicle_invoice_vehicle_type,//车辆类型
  199. code:code,//发票代码
  200. number:number,//发票号码
  201. buyer_id:buyer_id,//购方纳税人识别号
  202. tax:tax,//增值税税额
  203. income_or_expenses:flag,//
  204. }
  205. })
  206. }
  207. else if(result_1.object_list[0].type=='used_car_purchase_invoice') {
  208. /*
  209. used_car_purchase_invoice 二手车销售统一发票
  210. */
  211. var date;
  212. var money;
  213. var vehicle_invoice_vehicle_type;
  214. var number;
  215. var code;
  216. var buyer_id;
  217. for (i=0; i<result_1.object_list[0].item_list.length; i++) {
  218. item = result_1.object_list[0].item_list[i];
  219. if (item.key=='vehicle_invoice_issue_date') {
  220. date = item.value;//开票日期
  221. }
  222. else if (item.key=='vehicle_invoice_total_price_digits') {
  223. money = item.value;//价税合计小写
  224. }
  225. else if (item.key=='vehicle_invoice_vehicle_type') {
  226. vehicle_invoice_vehicle_type = item.value;//车辆类型
  227. }
  228. else if (item.key=='vehicle_invoice_haoma') {
  229. number = item.value;//发票号码
  230. }
  231. else if (item.key=='vehicle_invoice_daima') {
  232. code = item.value;//发票代码
  233. }
  234. else if (item.key=='vehicle_invoice_buyer_id') {
  235. buyer_id = item.value;//购买身份证号码/组织机构代码
  236. }
  237. }
  238. db_1.add({
  239. data:{
  240. type_:false,
  241. image:filePath,
  242. type:result_1.object_list[0].type,//票据类型
  243. type_description:result_1.object_list[0].type_description,//票据类型中文描述
  244. money:money,//价税合计小写
  245. date:date,//开票日期
  246. vehicle_invoice_vehicle_type:vehicle_invoice_vehicle_type,//车辆类型
  247. code:code,//发票代码
  248. number:number,//购车发票号码
  249. buyer_id:buyer_id,//购买身份证号码/组织机构代码
  250. income_or_expenses:flag,//
  251. }
  252. })
  253. }
  254. else if(result_1.object_list[0].type=='vat_roll_invoice') {
  255. /*
  256. vat_roll_invoice 增值税普通发票(卷票)
  257. */
  258. var date;
  259. var money;
  260. var goods_name_list;
  261. var number;
  262. var code;
  263. var buyer_id;
  264. for (i=0; i<result_1.object_list[0].item_list.length; i++) {
  265. item = result_1.object_list[0].item_list[i];
  266. if (item.key=='date_of_invoice') {
  267. date = item.value;//开票日期
  268. }
  269. else if (item.key=='total_money') {
  270. money = item.value;//合计金额(小写)
  271. }
  272. else if (item.key=='goods_name_list') {
  273. goods_name_list = item.value;//项目名称明细
  274. }
  275. else if (item.key=='invoice_number') {
  276. number = item.value;//发票号码
  277. }
  278. else if (item.key=='invoice_code') {
  279. code = item.value;//发票代码
  280. }
  281. else if (item.key=='buy_tax_number') {
  282. buyer_id = item.value;//购方纳税人识别号
  283. }
  284. }
  285. db_1.add({
  286. data:{
  287. type_:false,
  288. image:filePath,
  289. type:result_1.object_list[0].type,//票据类型
  290. type_description:result_1.object_list[0].type_description,//票据类型中文描述
  291. date:date,//开票日期
  292. money:money,//合计金额(小写)
  293. goods_name_list:goods_name_list,//项目名称明细
  294. code:code,//发票代码
  295. number:number,//发票号码
  296. buyer_id:buyer_id,//购方纳税人识别号
  297. income_or_expenses:flag,//
  298. }
  299. })
  300. }
  301. else if(result_1.object_list[0].type=='vehicle_toll') {
  302. /*
  303. vehicle_toll 过路过桥费发票
  304. */
  305. var date;
  306. var money;
  307. var number;
  308. var code;
  309. for (i=0; i<result_1.object_list[0].item_list.length; i++) {
  310. item = result_1.object_list[0].item_list[i];
  311. if (item.key=='date') {
  312. date = item.value;//收费时间
  313. }
  314. else if (item.key=='money') {
  315. money = item.value;//收费金额
  316. }
  317. else if (item.key=='toll_number') {
  318. number = item.value;//车辆通行费号码
  319. }
  320. else if (item.key=='toll_code') {
  321. code = item.value;//发票代码
  322. }
  323. }
  324. db_1.add({
  325. data:{
  326. image:filePath,
  327. type_:false,
  328. type:result_1.object_list[0].type,//票据类型
  329. type_description:result_1.object_list[0].type_description,//票据类型中文描述
  330. date:date,//收费时间
  331. money:money,//收费金额
  332. code:code,//发票代码
  333. number:number,//车辆通行费号码
  334. buyer_id:null,//
  335. income_or_expenses:flag,//
  336. }
  337. })
  338. }
  339. else if(result_1.object_list[0].type=='quota_invoice') {
  340. /*
  341. quota_invoice 通用定额发票
  342. */
  343. var money;
  344. var number;
  345. var code;
  346. for (i=0; i<result_1.object_list[0].item_list.length; i++) {
  347. item = result_1.object_list[0].item_list[i];
  348. if (item.key=='money_small') {
  349. money = item.value;//金额(小写)
  350. }
  351. else if (item.key=='quota_invoice_number') {
  352. number = item.value;//发票号码
  353. }
  354. else if (item.key=='quota_invoice_code') {
  355. code = item.value;//发票代码
  356. }
  357. }
  358. db_1.add({
  359. data:{
  360. type_:false,
  361. image:filePath,
  362. type:result_1.object_list[0].type,//票据类型
  363. type_description:result_1.object_list[0].type_description,//票据类型中文描述
  364. date:null,//
  365. money:money,//金额(小写)
  366. code:code,//发票代码
  367. number:number,//发票号码
  368. buyer_id:null,//
  369. income_or_expenses:flag,//
  370. }
  371. })
  372. }
  373. else if(result_1.object_list[0].type=='taxi_ticket') {
  374. /*
  375. taxi_ticket 出租车发票
  376. */
  377. var date;
  378. var money;
  379. var number;
  380. var code;
  381. var buyer_id;
  382. for (i=0; i<result_1.object_list[0].item_list.length; i++) {
  383. item = result_1.object_list[0].item_list[i];
  384. if (item.key=='date') {
  385. date = item.value;//日期
  386. }
  387. else if (item.key=='sum') {
  388. money = item.value;//总计金额
  389. }
  390. else if (item.key=='invoice_no') {
  391. number = item.value;//发票号码
  392. }
  393. else if (item.key=='invoice_code') {
  394. code = item.value;//发票代码
  395. }
  396. else if (item.key=='invoice_no') {
  397. buyer_id = item.value;//发票号码
  398. }
  399. }
  400. db_1.add({
  401. data:{
  402. type_:false,
  403. image:filePath,
  404. type:result_1.object_list[0].type,//票据类型
  405. type_description:result_1.object_list[0].type_description,//票据类型中文描述
  406. date:date,//日期
  407. money:money,//总计金额
  408. code:code,//发票代码
  409. number:number,//发票号码
  410. buyer_id:null,//
  411. income_or_expenses:flag,//
  412. }
  413. })
  414. }
  415. else if(result_1.object_list[0].type=='air_transport') {
  416. /*
  417. air_transport 行程单
  418. */
  419. var date;
  420. var money;
  421. var number;
  422. var code;
  423. var buyer_id;
  424. for (i=0; i<result_1.object_list[0].item_list.length; i++) {
  425. item = result_1.object_list[0].item_list[i];
  426. if (item.key=='issued_date') {
  427. date = item.value;//填开日期
  428. }
  429. else if (item.key=='total') {
  430. money = item.value;//合计金额
  431. }
  432. else if (item.key=='e_ticket_no') {
  433. number = item.value;//电子客票号码
  434. }
  435. else if (item.key=='agentcode') {
  436. code = item.value;//销售单位代号
  437. }
  438. else if (item.key=='id_no') {
  439. buyer_id = item.value;//身份证件号码
  440. }
  441. }
  442. db_1.add({
  443. data:{
  444. type_:false,
  445. image:filePath,
  446. type:result_1.object_list[0].type,//票据类型
  447. type_description:result_1.object_list[0].type_description,//票据类型中文描述
  448. date:date,//填开日期
  449. money:money,//合计金额
  450. code:code,//销售单位代号
  451. number:number,//电子客票号码
  452. buyer_id:buyer_id,//身份证件号码
  453. income_or_expenses:flag,//
  454. }
  455. })
  456. }
  457. else if(result_1.object_list[0].type=='train_ticket') {
  458. /*
  459. train_ticket 火车票
  460. */
  461. var date;
  462. var money;
  463. var number;
  464. var code;
  465. var buyer_id;
  466. for (i=0; i<result_1.object_list[0].item_list.length; i++) {
  467. item = result_1.object_list[0].item_list[i];
  468. if (item.key=='departure_date') {
  469. date = item.value;//乘车时间
  470. }
  471. else if (item.key=='price') {
  472. money = item.value;//价格
  473. }
  474. else if (item.key=='ticket_id') {
  475. number = item.value;//火车票ID
  476. }
  477. else if (item.key=='code') {
  478. code = item.value;//发票代码
  479. }
  480. else if (item.key=='passenger_id') {
  481. buyer_id = item.value;//乘客身份证
  482. }
  483. }
  484. db_1.add({
  485. data:{
  486. type_:false,
  487. image:filePath,
  488. type:result_1.object_list[0].type,//票据类型
  489. type_description:result_1.object_list[0].type_description,//票据类型中文描述
  490. date:date,//乘车时间
  491. money:money,//价格
  492. code:code,//发票代码
  493. number:number,//火车票ID
  494. buyer_id:buyer_id,//乘客身份证
  495. income_or_expenses:flag,//
  496. }
  497. })
  498. }
  499. else if(result_1.object_list[0].type=='general_machine_invoice') {
  500. /*
  501. general_machine_invoice 通用机打发票
  502. */
  503. var date;
  504. var money;
  505. var number;
  506. var code;
  507. var buyer_id;
  508. var seller_tax_id;
  509. for (i=0; i<result_1.object_list[0].item_list.length; i++) {
  510. item = result_1.object_list[0].item_list[i];
  511. if (item.key=='date') {
  512. date = item.value;//日期
  513. }
  514. else if (item.key=='money') {
  515. money = item.value;//金额
  516. }
  517. else if (item.key=='invoice_number') {
  518. number = item.value;//发票号码
  519. }
  520. else if (item.key=='invoice_code') {
  521. code = item.value;//发票代码
  522. }
  523. else if (item.key=='buyer_tax_id') {
  524. buyer_id = item.value;//付款方证件号
  525. }
  526. else if (item.key=='seller_tax_id') {
  527. seller_tax_id = item.value;//收款方证件号
  528. }
  529. }
  530. db_1.add({
  531. data:{
  532. type_:false,
  533. image:filePath,
  534. type:result_1.object_list[0].type,//票据类型
  535. type_description:result_1.object_list[0].type_description,//票据类型中文描述
  536. date:date,//日期
  537. money:money,//金额
  538. code:code,//发票代码
  539. number:number,//发票号码
  540. buyer_id:buyer_id,//付款方证件号
  541. seller_id:seller_tax_id,//收款方证件号
  542. income_or_expenses:flag,//
  543. }
  544. })
  545. }
  546. else if(result_1.object_list[0].type=='shipping_invoice') {
  547. /*
  548. shipping_invoice 船运客票
  549. */
  550. var date;
  551. var money;
  552. var number;
  553. var code;
  554. var buyer_id;
  555. for (i=0; i<result_1.object_list[0].item_list.length; i++) {
  556. item = result_1.object_list[0].item_list[i];
  557. if (item.key=='date') {
  558. date = item.value;//日期
  559. }
  560. else if (item.key=='money') {
  561. money = item.value;//金额
  562. }
  563. else if (item.key=='invoice_number') {
  564. number = item.value;//发票号码
  565. }
  566. else if (item.key=='invoice_code') {
  567. code = item.value;//发票代码
  568. }
  569. else if (item.key=='passenger') {
  570. buyer_id = item.value;//乘船人
  571. }
  572. }
  573. db_1.add({
  574. data:{
  575. type_:false,
  576. image:filePath,
  577. type:result_1.object_list[0].type,//票据类型
  578. type_description:result_1.object_list[0].type_description,//票据类型中文描述
  579. date:date,//日期
  580. money:money,//金额
  581. code:code,//发票代码
  582. number:number,//发票号码
  583. buyer_id:buyer_id,//乘船人
  584. income_or_expenses:flag,//
  585. }
  586. })
  587. }
  588. else if(result_1.object_list[0].type=='highway_passenger_invoice'||
  589. result_1.object_list[0].type=='passenger_transport_invoice') {
  590. /*
  591. highway_passenger_invoice 公路客运发票
  592. passenger_transport_invoice 旅客运输普票
  593. */
  594. var date;
  595. var money;
  596. var number;
  597. var code;
  598. var buyer_id;
  599. for (i=0; i<result_1.object_list[0].item_list.length; i++) {
  600. item = result_1.object_list[0].item_list[i];
  601. if (item.key=='date') {
  602. date = item.value;//日期
  603. }
  604. else if (item.key=='money') {
  605. money = item.value;//金额
  606. }
  607. else if (item.key=='invoice_number') {
  608. number = item.value;//发票号码
  609. }
  610. else if (item.key=='invoice_code') {
  611. code = item.value;//发票代码
  612. }
  613. else if (item.key=='passenger_id') {
  614. buyer_id = item.value;//乘客身份证号码
  615. }
  616. }
  617. db_1.add({
  618. data:{
  619. type_:false,
  620. image:filePath,
  621. type:result_1.object_list[0].type,//票据类型
  622. type_description:result_1.object_list[0].type_description,//票据类型中文描述
  623. date:date,//日期
  624. money:money,//金额
  625. code:code,//发票代码
  626. number:number,//发票号码
  627. buyer_id:buyer_id,//乘客身份证号码
  628. income_or_expenses:flag,//
  629. }
  630. })
  631. }
  632. else if(result_1.object_list[0].type=='parking_invoice') {
  633. /*
  634. parking_invoice 停车费发票
  635. */
  636. var money;
  637. var number;
  638. for (i=0; i<result_1.object_list[0].item_list.length; i++) {
  639. item = result_1.object_list[0].item_list[i];
  640. if (item.key=='money') {
  641. money = item.value;//金额
  642. }
  643. else if (item.key=='invoice_number') {
  644. number = item.value;//发票号码
  645. }
  646. }
  647. db_1.add({
  648. data:{
  649. type_:false,
  650. image:filePath,
  651. date:null,//
  652. type:result_1.object_list[0].type,//票据类型
  653. type_description:result_1.object_list[0].type_description,//票据类型中文描述
  654. money:money,//金额
  655. code:null,//
  656. number:number,//发票号码
  657. buyer_id:null,//
  658. income_or_expenses:flag,//
  659. }
  660. })
  661. }
  662. else if(result_1.object_list[0].type=='vat_invoice_sales_list') {
  663. /*
  664. vat_invoice_sales_list 增值税销货清单
  665. */
  666. var date;
  667. var money;
  668. var number;
  669. var code;
  670. var buyer_id;
  671. for (i=0; i<result_1.object_list[0].item_list.length; i++) {
  672. item = result_1.object_list[0].item_list[i];
  673. if (item.key=='issued_date') {
  674. date = item.value;//填开日期
  675. }
  676. else if (item.key=='total') {
  677. money = item.value;//合计金额
  678. }
  679. else if (item.key=='invoice_number') {
  680. number = item.value;//发票号码
  681. }
  682. else if (item.key=='invoice_code') {
  683. code = item.value;//发票代码
  684. }
  685. else if (item.key=='purchaser_name') {
  686. buyer_id = item.value;//购买方名称
  687. }
  688. }
  689. db_1.add({
  690. data:{
  691. type_:false,
  692. image:filePath,
  693. type:result_1.object_list[0].type,//票据类型
  694. type_description:result_1.object_list[0].type_description,//票据类型中文描述
  695. date:date,//填开日期
  696. money:money,//合计金额
  697. code:code,//发票代码
  698. number:number,//发票号码
  699. buyer_id:buyer_id,//购买方名称
  700. income_or_expenses:flag,//
  701. }
  702. })
  703. }
  704. else if(result_1.object_list[0].type=='shop_receipt') {
  705. /*
  706. shop_receipt 商户小票
  707. */
  708. var date;
  709. var money;
  710. var number;
  711. var buyer_id;
  712. for (i=0; i<result_1.object_list[0].item_list.length; i++) {
  713. item = result_1.object_list[0].item_list[i];
  714. if (item.key=='date') {
  715. date = item.value;//日期
  716. }
  717. else if (item.key=='money') {
  718. money = item.value;//金额
  719. }
  720. else if (item.key=='no') {
  721. number = item.value;//单号
  722. }
  723. else if (item.key=='shop') {
  724. buyer_id = item.value;//商户
  725. }
  726. }
  727. db_1.add({
  728. data:{
  729. type_:false,
  730. image:filePath,
  731. type:result_1.object_list[0].type,//票据类型
  732. type_description:result_1.object_list[0].type_description,//票据类型中文描述
  733. date:date,//日期
  734. money:money,//金额
  735. code:null,//
  736. number:number,//单号
  737. buyer_id:buyer_id,//商户
  738. income_or_expenses:flag,//
  739. }
  740. })
  741. }
  742. else if(result_1.object_list[0].type=='medical_receipt') {
  743. /*
  744. medical_receipt 医疗费收据
  745. */
  746. var money;
  747. var number;
  748. var code;
  749. var buyer_id;
  750. for (i=0; i<result_1.object_list[0].item_list.length; i++) {
  751. item = result_1.object_list[0].item_list[i];
  752. if (item.key=='amount_small') {
  753. money = item.value;//小写合计
  754. }
  755. else if (item.key=='invoice_number') {
  756. number = item.value;//票据编号
  757. }
  758. else if (item.key=='invoice_bar_code') {
  759. code = item.value;//票据条码
  760. }
  761. else if (item.key=='social_security_number') {
  762. buyer_id = item.value;//社会保障卡号
  763. }
  764. }
  765. db_1.add({
  766. data:{
  767. type_:false,
  768. image:filePath,
  769. date:null,//
  770. type:result_1.object_list[0].type,//票据类型
  771. type_description:result_1.object_list[0].type_description,//票据类型中文描述
  772. money:money,//小写合计
  773. code:code,//票据条码
  774. number:number,//票据编号
  775. buyer_id:buyer_id,//社会保障卡号
  776. income_or_expenses:flag,//
  777. }
  778. })
  779. }
  780. else if(result_1.object_list[0].type=='travel_transport') {
  781. /*
  782. travel_transport 出行行程单
  783. */
  784. var date;
  785. var money;
  786. var buyer_id;
  787. for (i=0; i<result_1.object_list[0].item_list.length; i++) {
  788. item = result_1.object_list[0].item_list[i];
  789. if (item.key=='apply_date') {
  790. date = item.value;//申请日期
  791. }
  792. else if (item.key=='total_money') {
  793. money = item.value;//合计金额
  794. }
  795. else if (item.key=='phone_number') {
  796. buyer_id = item.value;//行程人手机号
  797. }
  798. }
  799. db_1.add({
  800. data:{
  801. type_:false,
  802. image:filePath,
  803. type:result_1.object_list[0].type,//票据类型
  804. type_description:result_1.object_list[0].type_description,//票据类型中文描述
  805. date:date,//申请日期
  806. money:money,//合计金额
  807. code:null,//
  808. number:null,//发票号码
  809. buyer_id:buyer_id,//行程人手机号
  810. income_or_expenses:flag,//
  811. }
  812. })
  813. }
  814. else if(result_1.object_list[0].type=='non_tax_income_unified_bill') {
  815. /*
  816. non_tax_income_unified_bill 非税收入票据
  817. */
  818. var date;
  819. var money;
  820. var number;
  821. var code;
  822. var buyer_id;
  823. var ItemName;
  824. for (i=0; i<result_1.object_list[0].item_list.length; i++) {
  825. item = result_1.object_list[0].item_list[i];
  826. if (item.key=='IssuedDate') {
  827. date = item.value;//开票日期
  828. }
  829. else if (item.key=='TotalAmount') {
  830. money = item.value;//总金额
  831. }
  832. else if (item.key=='EInvoiceNumber') {
  833. number = item.value;//电子票据号码
  834. }
  835. else if (item.key=='EInvoiceCode') {
  836. code = item.value;//电子票据代码
  837. }
  838. else if (item.key=='PayerPartyCode') {
  839. buyer_id = item.value;//交款人代码
  840. }
  841. else if (item.key=='ItemName') {
  842. buyer_id = item.value;//项目名称
  843. }
  844. }
  845. db_1.add({
  846. data:{
  847. type_:false,
  848. image:filePath,
  849. type:result_1.object_list[0].type,//票据类型
  850. type_description:result_1.object_list[0].type_description,//票据类型中文描述
  851. date:date,//开票日期
  852. money:money,//总金额
  853. ItemName:ItemName,//项目名称
  854. code:code,//电子票据代码
  855. number:number,//电子票据号码
  856. buyer_id:buyer_id,//交款人代码
  857. income_or_expenses:flag,//
  858. }
  859. })
  860. }
  861. count++;
  862. wx.setStorageSync('count', count);
  863. console.log('上传成功', res)
  864. },
  865. })
  866. // 用户点击了确认按钮
  867. // 在这里可以添加保存操作的逻辑
  868. } else if (res.cancel) {
  869. // 用户点击了取消按钮
  870. // 在这里可以添加取消操作的逻辑
  871. }
  872. }
  873. })
  874. },
  875. fail(err) {
  876. console.error(err); // 请求失败的回调函数
  877. }
  878. });
  879. // wx.request({
  880. // url: url, // 替换为你的服务器地址
  881. // method: 'POST',
  882. // header: {
  883. // 'content-type': 'application/octet-stream' ,// 根据服务器的要求设置 content-type
  884. // 'x-ti-app-id': appId, // 可以添加其他表单数据
  885. // 'x-ti-secret-code': secretCode
  886. // },
  887. // data: {
  888. // image: firstImageEncoding, // 将图片的 Base64 编码作为请求的参数
  889. // },
  890. // success:res=> {
  891. // console.log(res.data); // 上传成功后的响应数据
  892. // },
  893. // fail(error) {
  894. // console.error("上传文件失败:", error);
  895. // }
  896. // });
  897. }
  898. else{
  899. console.log("未传输照片")
  900. }
  901. }
  902. })
  903. },

以下是发票验真的使用

  1. formSubmit: function(e) {
  2. const formData = e.detail.value;
  3. wx.request({
  4. url: 'https://api.textin.com/robot/v1.0/api/verify_vat',
  5. method: 'POST',
  6. header: {
  7. 'Content-Type': 'application/json',
  8. 'x-ti-app-id': '',//此处自己填写
  9. 'x-ti-secret-code': ''//此处自己填写
  10. },
  11. data: {
  12. "invoice_code": "",
  13. "invoice_no": formData.number,
  14. "invoice_date": formData.date,
  15. "invoice_sum": "",
  16. "verify_code": ""
  17. },
  18. success: function(res) {
  19. if (res.data.result.data.cyjgxx=='') {
  20. wx.showModal({
  21. title: '提示',
  22. content: '输入的信息有误',
  23. showCancel: false, // 不显示取消按钮
  24. success(res) {
  25. if (res.confirm) {
  26. console.log('用户点击了确定按钮');
  27. // 在这里可以执行相应的操作
  28. }
  29. }
  30. })
  31. }
  32. else
  33. {
  34. wx.showModal({
  35. title: '提示',
  36. content: res.data.result.data.cyjgxx,
  37. showCancel: false, // 不显示取消按钮
  38. success(res) {
  39. if (res.confirm) {
  40. console.log('用户点击了确定按钮');
  41. // 在这里可以执行相应的操作
  42. }
  43. }
  44. })
  45. }
  46. // 请求成功的处理逻辑
  47. console.log(res.data);
  48. },
  49. fail: function(error) {
  50. // 请求失败的处理逻辑
  51. console.error(error);
  52. }
  53. })
  54. // 这里可以处理表单提交后的逻辑
  55. },

 

五:使用心得

TextIn以其强大的功能、简便的集成和卓越的性能,成为了我们本次项目中不可或缺的工具。它不仅加快了我们的开发进程,还为我们提供了深入分析文本数据的能力。无论是初创公司还是大型企业,TextIn都是一个值得信赖的选择。 

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/喵喵爱编程/article/detail/866049
推荐阅读
相关标签
  

闽ICP备14008679号