一:前言
在数字化时代,API(应用程序编程接口)已成为软件开发不可或缺的一部分。TextIn的 API提供了一个强大的文本处理平台,使开发者能够轻松集成各种文本分析和处理功能。本文将分享我们团队的使用心得,探讨这个API如何在我们的项目中发挥作用。
二:合合信息介绍
合合TextIn - 合合信息旗下OCR云服务产品
https://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
以下是通用识别票据的使用
// 定义一个函数用于识别票据
recognizeBill:function() {
const appId = ''//此处自己填写
const secretCode = ''//此处自己填写
const url = 'https://api.textin.com/robot/v1.0/api/bills_crop'
// 调用微信小程序的选择图片接口
wx.chooseMedia({
count: 1,
mediaType: ['image'],
sourceType: ['album', 'camera'],
camera: 'back',
success:res=> {
if(res.tempFiles.length>0)
{
res.tempFiles.forEach(tempFile=>{
firstImageEncoding=wx.getFileSystemManager().readFileSync(tempFile.tempFilePath)
filePath=tempFile.tempFilePath
})
console.log(firstImageEncoding)
wx.request({
url: 'https://api.textin.com/robot/v1.0/api/bills_crop',
method: 'POST',
header: {
'content-type': 'application/octet-stream', // 指定内容类型为二进制流
'x-ti-app-id': appId, // 自定义请求头部
'x-ti-secret-code': secretCode
},
data: firstImageEncoding, // 读取文件二进制流作为请求体
success:res=> {
result_1 = res.data.result; // 将结果存储在变量中
console.log(result_1); // 请求成功的回调函数
wx.showModal({
title: '提示',
content: '照片已经成功识别,是否要保存?',
showCancel: true,
cancelText: '取消',
confirmText: '确认',
success(res) {
if (res.confirm) {
wx.cloud.uploadFile({
// 指定上传到的云路径
cloudPath: 'my-photo.png_'+count,
// 指定要上传的文件的小程序临时文件路径
filePath: filePath,
// 成功回调
success: res => {
filePath=res.fileID
wx.showModal({
title: '提示',
content: '选择收入还是支出',
confirmText: '收入',
cancelText: '支出',
complete: (res) => {
if (res.cancel) {
flag=false
}
if (res.confirm) {
flag=true
}
}
}),
console.log(result_1.object_list[0].type)
/**
* 以下为票据的共有属性
*
* @param {String} date -发票时间,若没有则为null
* @param {String} type -票据类型
* @param {String} type_description -票据类型中文描述
* @param {String} money -价税合计小写
* @param {String} number -发票号码
* @param {String} code -发票代码,若没有则为null
* @param {String} buyer_id -纳税人识别号或购买人身份信息,若没有则为null
* @param {boolean} income_or_expenses -布尔值,标记收入或支出,取值于flag,true为收入,false为支出
*/
var i;//循环变量
var item;//循环临时容器
if (result_1.object_list[0].type=='blockchain_electronic_invoiceblockchain_electronic_invoice'||
result_1.object_list[0].type=='machine_printed_invoice'||
result_1.object_list[0].type=='vat_common_invoice'||
result_1.object_list[0].type=='vat_electronic_invoice'||
result_1.object_list[0].type=='vat_electronic_special_invoice'||
result_1.object_list[0].type=='vat_electronic_toll_invoice'||
result_1.object_list[0].type=='vat_electronic_invoice_new'||
result_1.object_list[0].type=='vat_electronic_special_invoice_new'||
result_1.object_list[0].type=='vat_special_invoice') {
/*
blockchain_electronic_invoice 区块链电子发票
machine_printed_invoice 机打发票
vat_common_invoice 增值税普通发票
vat_electronic_invoice 增值税电子普通发票
vat_electronic_special_invoice 增值税电子专用发票
vat_electronic_toll_invoice 增值税电子普通发票(通行费)
vat_electronic_invoice_new 电子发票(普通发票)
vat_electronic_special_invoice_new 电子发票(增值税专用发票)
vat_special_invoice 增值税专用发票
*/
var date;
var money;
var vat_invoice_goods_list;
var number;
var code;
var buyer_id;
var vat_invoice_haoma_large_size;
var vat_invoice_tax_total;
var vat_invoice_drawer;
for (i=0; i<result_1.object_list[0].item_list.length; i++) {
item = result_1.object_list[0].item_list[i];
if (item.key=='vat_invoice_issue_date_print') {
date = item.value;//开票日期
}
else if (item.key=='vat_invoice_total_cover_tax_digits') {
money = item.value;//价税合计小写
}
else if (item.key=='vat_invoice_goods_list') {
vat_invoice_goods_list = item.value;//货物或服务名称
}
else if (item.key=='vat_invoice_haoma') {
number = item.value;//发票号码
}
else if (item.key=='vat_invoice_daima') {
code = item.value;//发票代码
}
else if (item.key=='vat_invoice_rate_payer_id') {
buyer_id = item.value;//纳税人识别号
}
else if (item.key=='vat_invoice_haoma_large_size') {
vat_invoice_haoma_large_size = item.value;//增值税发票No号码
}
else if (item.key=='vat_invoice_tax_total') {
vat_invoice_tax_total = item.value;//税额合计
}
else if (item.key=='vat_invoice_drawer') {
vat_invoice_drawer = item.value;//开票人
}
}
db_1.add({
data:{
type_:true,
image:filePath,
date:date,//开票日期
type:result_1.object_list[0].type,//票据类型
type_description:result_1.object_list[0].type_description,//票据类型中文描述
money:money,//价税合计小写
vat_invoice_goods_list:vat_invoice_goods_list,//货物或服务名称
number:number,//发票号码
code:code,//发票代码
buyer_id:buyer_id,//纳税人识别号
vat_invoice_haoma_large_size:vat_invoice_haoma_large_size,//增值税发票No号码
vat_invoice_tax_total:vat_invoice_tax_total,//税额合计
vat_invoice_drawer:vat_invoice_drawer,//开票人
income_or_expenses:flag,//
}
})
}
else if(result_1.object_list[0].type=='motor_vehicle_sale_invoice') {
/*
motor_vehicle_sale_invoice 机动车销售统一发票
*/
var date;
var money;
var vehicle_invoice_vehicle_type;
var number;
var code;
var buyer_id;
var tax;
for (i=0; i<result_1.object_list[0].item_list.length; i++) {
item = result_1.object_list[0].item_list[i];
if (item.key=='vehicle_invoice_issue_date') {
date = item.value;//开票日期
}
else if (item.key=='vehicle_invoice_total_price_digits') {
money = item.value;//价税合计小写
}
else if (item.key=='vehicle_invoice_vehicle_type') {
vehicle_invoice_vehicle_type = item.value;//车辆类型
}
else if (item.key=='vehicle_invoice_haoma') {
number = item.value;//发票号码
}
else if (item.key=='vehicle_invoice_daima') {
code = item.value;//发票代码
}
else if (item.key=='vehicle_invoice_buyer_tax_id') {
buyer_id = item.value;//购方纳税人识别号
}
else if (item.key=='vehicle_invoice_tax_amount') {
tax = item.value;//增值税税额
}
}
db_1.add({
data:{
type_:false,
image:filePath,
type:result_1.object_list[0].type,//票据类型
type_description:result_1.object_list[0].type_description,//票据类型中文描述
money:money,//价税合计小写
date:date,//开票日期
vehicle_invoice_vehicle_type:vehicle_invoice_vehicle_type,//车辆类型
code:code,//发票代码
number:number,//发票号码
buyer_id:buyer_id,//购方纳税人识别号
tax:tax,//增值税税额
income_or_expenses:flag,//
}
})
}
else if(result_1.object_list[0].type=='used_car_purchase_invoice') {
/*
used_car_purchase_invoice 二手车销售统一发票
*/
var date;
var money;
var vehicle_invoice_vehicle_type;
var number;
var code;
var buyer_id;
for (i=0; i<result_1.object_list[0].item_list.length; i++) {
item = result_1.object_list[0].item_list[i];
if (item.key=='vehicle_invoice_issue_date') {
date = item.value;//开票日期
}
else if (item.key=='vehicle_invoice_total_price_digits') {
money = item.value;//价税合计小写
}
else if (item.key=='vehicle_invoice_vehicle_type') {
vehicle_invoice_vehicle_type = item.value;//车辆类型
}
else if (item.key=='vehicle_invoice_haoma') {
number = item.value;//发票号码
}
else if (item.key=='vehicle_invoice_daima') {
code = item.value;//发票代码
}
else if (item.key=='vehicle_invoice_buyer_id') {
buyer_id = item.value;//购买身份证号码/组织机构代码
}
}
db_1.add({
data:{
type_:false,
image:filePath,
type:result_1.object_list[0].type,//票据类型
type_description:result_1.object_list[0].type_description,//票据类型中文描述
money:money,//价税合计小写
date:date,//开票日期
vehicle_invoice_vehicle_type:vehicle_invoice_vehicle_type,//车辆类型
code:code,//发票代码
number:number,//购车发票号码
buyer_id:buyer_id,//购买身份证号码/组织机构代码
income_or_expenses:flag,//
}
})
}
else if(result_1.object_list[0].type=='vat_roll_invoice') {
/*
vat_roll_invoice 增值税普通发票(卷票)
*/
var date;
var money;
var goods_name_list;
var number;
var code;
var buyer_id;
for (i=0; i<result_1.object_list[0].item_list.length; i++) {
item = result_1.object_list[0].item_list[i];
if (item.key=='date_of_invoice') {
date = item.value;//开票日期
}
else if (item.key=='total_money') {
money = item.value;//合计金额(小写)
}
else if (item.key=='goods_name_list') {
goods_name_list = item.value;//项目名称明细
}
else if (item.key=='invoice_number') {
number = item.value;//发票号码
}
else if (item.key=='invoice_code') {
code = item.value;//发票代码
}
else if (item.key=='buy_tax_number') {
buyer_id = item.value;//购方纳税人识别号
}
}
db_1.add({
data:{
type_:false,
image:filePath,
type:result_1.object_list[0].type,//票据类型
type_description:result_1.object_list[0].type_description,//票据类型中文描述
date:date,//开票日期
money:money,//合计金额(小写)
goods_name_list:goods_name_list,//项目名称明细
code:code,//发票代码
number:number,//发票号码
buyer_id:buyer_id,//购方纳税人识别号
income_or_expenses:flag,//
}
})
}
else if(result_1.object_list[0].type=='vehicle_toll') {
/*
vehicle_toll 过路过桥费发票
*/
var date;
var money;
var number;
var code;
for (i=0; i<result_1.object_list[0].item_list.length; i++) {
item = result_1.object_list[0].item_list[i];
if (item.key=='date') {
date = item.value;//收费时间
}
else if (item.key=='money') {
money = item.value;//收费金额
}
else if (item.key=='toll_number') {
number = item.value;//车辆通行费号码
}
else if (item.key=='toll_code') {
code = item.value;//发票代码
}
}
db_1.add({
data:{
image:filePath,
type_:false,
type:result_1.object_list[0].type,//票据类型
type_description:result_1.object_list[0].type_description,//票据类型中文描述
date:date,//收费时间
money:money,//收费金额
code:code,//发票代码
number:number,//车辆通行费号码
buyer_id:null,//
income_or_expenses:flag,//
}
})
}
else if(result_1.object_list[0].type=='quota_invoice') {
/*
quota_invoice 通用定额发票
*/
var money;
var number;
var code;
for (i=0; i<result_1.object_list[0].item_list.length; i++) {
item = result_1.object_list[0].item_list[i];
if (item.key=='money_small') {
money = item.value;//金额(小写)
}
else if (item.key=='quota_invoice_number') {
number = item.value;//发票号码
}
else if (item.key=='quota_invoice_code') {
code = item.value;//发票代码
}
}
db_1.add({
data:{
type_:false,
image:filePath,
type:result_1.object_list[0].type,//票据类型
type_description:result_1.object_list[0].type_description,//票据类型中文描述
date:null,//
money:money,//金额(小写)
code:code,//发票代码
number:number,//发票号码
buyer_id:null,//
income_or_expenses:flag,//
}
})
}
else if(result_1.object_list[0].type=='taxi_ticket') {
/*
taxi_ticket 出租车发票
*/
var date;
var money;
var number;
var code;
var buyer_id;
for (i=0; i<result_1.object_list[0].item_list.length; i++) {
item = result_1.object_list[0].item_list[i];
if (item.key=='date') {
date = item.value;//日期
}
else if (item.key=='sum') {
money = item.value;//总计金额
}
else if (item.key=='invoice_no') {
number = item.value;//发票号码
}
else if (item.key=='invoice_code') {
code = item.value;//发票代码
}
else if (item.key=='invoice_no') {
buyer_id = item.value;//发票号码
}
}
db_1.add({
data:{
type_:false,
image:filePath,
type:result_1.object_list[0].type,//票据类型
type_description:result_1.object_list[0].type_description,//票据类型中文描述
date:date,//日期
money:money,//总计金额
code:code,//发票代码
number:number,//发票号码
buyer_id:null,//
income_or_expenses:flag,//
}
})
}
else if(result_1.object_list[0].type=='air_transport') {
/*
air_transport 行程单
*/
var date;
var money;
var number;
var code;
var buyer_id;
for (i=0; i<result_1.object_list[0].item_list.length; i++) {
item = result_1.object_list[0].item_list[i];
if (item.key=='issued_date') {
date = item.value;//填开日期
}
else if (item.key=='total') {
money = item.value;//合计金额
}
else if (item.key=='e_ticket_no') {
number = item.value;//电子客票号码
}
else if (item.key=='agentcode') {
code = item.value;//销售单位代号
}
else if (item.key=='id_no') {
buyer_id = item.value;//身份证件号码
}
}
db_1.add({
data:{
type_:false,
image:filePath,
type:result_1.object_list[0].type,//票据类型
type_description:result_1.object_list[0].type_description,//票据类型中文描述
date:date,//填开日期
money:money,//合计金额
code:code,//销售单位代号
number:number,//电子客票号码
buyer_id:buyer_id,//身份证件号码
income_or_expenses:flag,//
}
})
}
else if(result_1.object_list[0].type=='train_ticket') {
/*
train_ticket 火车票
*/
var date;
var money;
var number;
var code;
var buyer_id;
for (i=0; i<result_1.object_list[0].item_list.length; i++) {
item = result_1.object_list[0].item_list[i];
if (item.key=='departure_date') {
date = item.value;//乘车时间
}
else if (item.key=='price') {
money = item.value;//价格
}
else if (item.key=='ticket_id') {
number = item.value;//火车票ID
}
else if (item.key=='code') {
code = item.value;//发票代码
}
else if (item.key=='passenger_id') {
buyer_id = item.value;//乘客身份证
}
}
db_1.add({
data:{
type_:false,
image:filePath,
type:result_1.object_list[0].type,//票据类型
type_description:result_1.object_list[0].type_description,//票据类型中文描述
date:date,//乘车时间
money:money,//价格
code:code,//发票代码
number:number,//火车票ID
buyer_id:buyer_id,//乘客身份证
income_or_expenses:flag,//
}
})
}
else if(result_1.object_list[0].type=='general_machine_invoice') {
/*
general_machine_invoice 通用机打发票
*/
var date;
var money;
var number;
var code;
var buyer_id;
var seller_tax_id;
for (i=0; i<result_1.object_list[0].item_list.length; i++) {
item = result_1.object_list[0].item_list[i];
if (item.key=='date') {
date = item.value;//日期
}
else if (item.key=='money') {
money = item.value;//金额
}
else if (item.key=='invoice_number') {
number = item.value;//发票号码
}
else if (item.key=='invoice_code') {
code = item.value;//发票代码
}
else if (item.key=='buyer_tax_id') {
buyer_id = item.value;//付款方证件号
}
else if (item.key=='seller_tax_id') {
seller_tax_id = item.value;//收款方证件号
}
}
db_1.add({
data:{
type_:false,
image:filePath,
type:result_1.object_list[0].type,//票据类型
type_description:result_1.object_list[0].type_description,//票据类型中文描述
date:date,//日期
money:money,//金额
code:code,//发票代码
number:number,//发票号码
buyer_id:buyer_id,//付款方证件号
seller_id:seller_tax_id,//收款方证件号
income_or_expenses:flag,//
}
})
}
else if(result_1.object_list[0].type=='shipping_invoice') {
/*
shipping_invoice 船运客票
*/
var date;
var money;
var number;
var code;
var buyer_id;
for (i=0; i<result_1.object_list[0].item_list.length; i++) {
item = result_1.object_list[0].item_list[i];
if (item.key=='date') {
date = item.value;//日期
}
else if (item.key=='money') {
money = item.value;//金额
}
else if (item.key=='invoice_number') {
number = item.value;//发票号码
}
else if (item.key=='invoice_code') {
code = item.value;//发票代码
}
else if (item.key=='passenger') {
buyer_id = item.value;//乘船人
}
}
db_1.add({
data:{
type_:false,
image:filePath,
type:result_1.object_list[0].type,//票据类型
type_description:result_1.object_list[0].type_description,//票据类型中文描述
date:date,//日期
money:money,//金额
code:code,//发票代码
number:number,//发票号码
buyer_id:buyer_id,//乘船人
income_or_expenses:flag,//
}
})
}
else if(result_1.object_list[0].type=='highway_passenger_invoice'||
result_1.object_list[0].type=='passenger_transport_invoice') {
/*
highway_passenger_invoice 公路客运发票
passenger_transport_invoice 旅客运输普票
*/
var date;
var money;
var number;
var code;
var buyer_id;
for (i=0; i<result_1.object_list[0].item_list.length; i++) {
item = result_1.object_list[0].item_list[i];
if (item.key=='date') {
date = item.value;//日期
}
else if (item.key=='money') {
money = item.value;//金额
}
else if (item.key=='invoice_number') {
number = item.value;//发票号码
}
else if (item.key=='invoice_code') {
code = item.value;//发票代码
}
else if (item.key=='passenger_id') {
buyer_id = item.value;//乘客身份证号码
}
}
db_1.add({
data:{
type_:false,
image:filePath,
type:result_1.object_list[0].type,//票据类型
type_description:result_1.object_list[0].type_description,//票据类型中文描述
date:date,//日期
money:money,//金额
code:code,//发票代码
number:number,//发票号码
buyer_id:buyer_id,//乘客身份证号码
income_or_expenses:flag,//
}
})
}
else if(result_1.object_list[0].type=='parking_invoice') {
/*
parking_invoice 停车费发票
*/
var money;
var number;
for (i=0; i<result_1.object_list[0].item_list.length; i++) {
item = result_1.object_list[0].item_list[i];
if (item.key=='money') {
money = item.value;//金额
}
else if (item.key=='invoice_number') {
number = item.value;//发票号码
}
}
db_1.add({
data:{
type_:false,
image:filePath,
date:null,//
type:result_1.object_list[0].type,//票据类型
type_description:result_1.object_list[0].type_description,//票据类型中文描述
money:money,//金额
code:null,//
number:number,//发票号码
buyer_id:null,//
income_or_expenses:flag,//
}
})
}
else if(result_1.object_list[0].type=='vat_invoice_sales_list') {
/*
vat_invoice_sales_list 增值税销货清单
*/
var date;
var money;
var number;
var code;
var buyer_id;
for (i=0; i<result_1.object_list[0].item_list.length; i++) {
item = result_1.object_list[0].item_list[i];
if (item.key=='issued_date') {
date = item.value;//填开日期
}
else if (item.key=='total') {
money = item.value;//合计金额
}
else if (item.key=='invoice_number') {
number = item.value;//发票号码
}
else if (item.key=='invoice_code') {
code = item.value;//发票代码
}
else if (item.key=='purchaser_name') {
buyer_id = item.value;//购买方名称
}
}
db_1.add({
data:{
type_:false,
image:filePath,
type:result_1.object_list[0].type,//票据类型
type_description:result_1.object_list[0].type_description,//票据类型中文描述
date:date,//填开日期
money:money,//合计金额
code:code,//发票代码
number:number,//发票号码
buyer_id:buyer_id,//购买方名称
income_or_expenses:flag,//
}
})
}
else if(result_1.object_list[0].type=='shop_receipt') {
/*
shop_receipt 商户小票
*/
var date;
var money;
var number;
var buyer_id;
for (i=0; i<result_1.object_list[0].item_list.length; i++) {
item = result_1.object_list[0].item_list[i];
if (item.key=='date') {
date = item.value;//日期
}
else if (item.key=='money') {
money = item.value;//金额
}
else if (item.key=='no') {
number = item.value;//单号
}
else if (item.key=='shop') {
buyer_id = item.value;//商户
}
}
db_1.add({
data:{
type_:false,
image:filePath,
type:result_1.object_list[0].type,//票据类型
type_description:result_1.object_list[0].type_description,//票据类型中文描述
date:date,//日期
money:money,//金额
code:null,//
number:number,//单号
buyer_id:buyer_id,//商户
income_or_expenses:flag,//
}
})
}
else if(result_1.object_list[0].type=='medical_receipt') {
/*
medical_receipt 医疗费收据
*/
var money;
var number;
var code;
var buyer_id;
for (i=0; i<result_1.object_list[0].item_list.length; i++) {
item = result_1.object_list[0].item_list[i];
if (item.key=='amount_small') {
money = item.value;//小写合计
}
else if (item.key=='invoice_number') {
number = item.value;//票据编号
}
else if (item.key=='invoice_bar_code') {
code = item.value;//票据条码
}
else if (item.key=='social_security_number') {
buyer_id = item.value;//社会保障卡号
}
}
db_1.add({
data:{
type_:false,
image:filePath,
date:null,//
type:result_1.object_list[0].type,//票据类型
type_description:result_1.object_list[0].type_description,//票据类型中文描述
money:money,//小写合计
code:code,//票据条码
number:number,//票据编号
buyer_id:buyer_id,//社会保障卡号
income_or_expenses:flag,//
}
})
}
else if(result_1.object_list[0].type=='travel_transport') {
/*
travel_transport 出行行程单
*/
var date;
var money;
var buyer_id;
for (i=0; i<result_1.object_list[0].item_list.length; i++) {
item = result_1.object_list[0].item_list[i];
if (item.key=='apply_date') {
date = item.value;//申请日期
}
else if (item.key=='total_money') {
money = item.value;//合计金额
}
else if (item.key=='phone_number') {
buyer_id = item.value;//行程人手机号
}
}
db_1.add({
data:{
type_:false,
image:filePath,
type:result_1.object_list[0].type,//票据类型
type_description:result_1.object_list[0].type_description,//票据类型中文描述
date:date,//申请日期
money:money,//合计金额
code:null,//
number:null,//发票号码
buyer_id:buyer_id,//行程人手机号
income_or_expenses:flag,//
}
})
}
else if(result_1.object_list[0].type=='non_tax_income_unified_bill') {
/*
non_tax_income_unified_bill 非税收入票据
*/
var date;
var money;
var number;
var code;
var buyer_id;
var ItemName;
for (i=0; i<result_1.object_list[0].item_list.length; i++) {
item = result_1.object_list[0].item_list[i];
if (item.key=='IssuedDate') {
date = item.value;//开票日期
}
else if (item.key=='TotalAmount') {
money = item.value;//总金额
}
else if (item.key=='EInvoiceNumber') {
number = item.value;//电子票据号码
}
else if (item.key=='EInvoiceCode') {
code = item.value;//电子票据代码
}
else if (item.key=='PayerPartyCode') {
buyer_id = item.value;//交款人代码
}
else if (item.key=='ItemName') {
buyer_id = item.value;//项目名称
}
}
db_1.add({
data:{
type_:false,
image:filePath,
type:result_1.object_list[0].type,//票据类型
type_description:result_1.object_list[0].type_description,//票据类型中文描述
date:date,//开票日期
money:money,//总金额
ItemName:ItemName,//项目名称
code:code,//电子票据代码
number:number,//电子票据号码
buyer_id:buyer_id,//交款人代码
income_or_expenses:flag,//
}
})
}
count++;
wx.setStorageSync('count', count);
console.log('上传成功', res)
},
})
// 用户点击了确认按钮
// 在这里可以添加保存操作的逻辑
} else if (res.cancel) {
// 用户点击了取消按钮
// 在这里可以添加取消操作的逻辑
}
}
})
},
fail(err) {
console.error(err); // 请求失败的回调函数
}
});
// wx.request({
// url: url, // 替换为你的服务器地址
// method: 'POST',
// header: {
// 'content-type': 'application/octet-stream' ,// 根据服务器的要求设置 content-type
// 'x-ti-app-id': appId, // 可以添加其他表单数据
// 'x-ti-secret-code': secretCode
// },
// data: {
// image: firstImageEncoding, // 将图片的 Base64 编码作为请求的参数
// },
// success:res=> {
// console.log(res.data); // 上传成功后的响应数据
// },
// fail(error) {
// console.error("上传文件失败:", error);
// }
// });
}
else{
console.log("未传输照片")
}
}
})
},
以下是发票验真的使用
formSubmit: function(e) {
const formData = e.detail.value;
wx.request({
url: 'https://api.textin.com/robot/v1.0/api/verify_vat',
method: 'POST',
header: {
'Content-Type': 'application/json',
'x-ti-app-id': '',//此处自己填写
'x-ti-secret-code': ''//此处自己填写
},
data: {
"invoice_code": "",
"invoice_no": formData.number,
"invoice_date": formData.date,
"invoice_sum": "",
"verify_code": ""
},
success: function(res) {
if (res.data.result.data.cyjgxx=='') {
wx.showModal({
title: '提示',
content: '输入的信息有误',
showCancel: false, // 不显示取消按钮
success(res) {
if (res.confirm) {
console.log('用户点击了确定按钮');
// 在这里可以执行相应的操作
}
}
})
}
else
{
wx.showModal({
title: '提示',
content: res.data.result.data.cyjgxx,
showCancel: false, // 不显示取消按钮
success(res) {
if (res.confirm) {
console.log('用户点击了确定按钮');
// 在这里可以执行相应的操作
}
}
})
}
// 请求成功的处理逻辑
console.log(res.data);
},
fail: function(error) {
// 请求失败的处理逻辑
console.error(error);
}
})
// 这里可以处理表单提交后的逻辑
},
五:使用心得
TextIn以其强大的功能、简便的集成和卓越的性能,成为了我们本次项目中不可或缺的工具。它不仅加快了我们的开发进程,还为我们提供了深入分析文本数据的能力。无论是初创公司还是大型企业,TextIn都是一个值得信赖的选择。