百度增值税发票调用示例

百度增值税发票调用示例程序

public class GeneralCall {
    public static void main(String[] arrs) {
        //api返回的json对象
        JSONObject jsonObject=new JSONObject();
        //以token信息创建api调用对象
        AipOcr aipOcr=new AipOcr("10728591", "k1qEDIj16cfpEQU1FUGYEXIG", "NGZqqvWlaoS8Ydqfz0EtLYKu7ebkiQMW");
        //定义装图片信息的byte数组
        byte[] img=null;
        //图片本地地址
        String path="E:/business/recognition/财务系统票据识别/Finace_Rec/票据图片/Image_00003.jpg";
        //转换为byte数组
        img=image2byte(path);
        //调用Api可选参数,把返回文字外接多边形顶点位置设为true
        HashMap<String, String> options=new HashMap<String, String>();
        options.put("vertexes_location", "true");
        
        //请求百度接口识别图片
        jsonObject=aipOcr.general(img,null);
//      int logid=jsonObject.getInt("log_id");
//      System.out.println("log_id"+logid);
        JSONArray jsonArray=jsonObject.getJSONArray("words_result");
        for(int i=0;i<jsonArray.length();i++) {
             JSONObject object = (JSONObject) jsonArray.get(i);
             String words=object.getString("words");
             JSONObject location=(JSONObject) object.get("location");
             System.out.println("words  "+words);
             System.out.println("location"+location);
        }
    }
    public static byte[] image2byte(String path){
         byte[] data = null;
         FileImageInputStream input = null;
         try {
             //图片输入
             input = new FileImageInputStream(new File(path));
             ByteArrayOutputStream output = new ByteArrayOutputStream();
             byte[] buf = new byte[1024];
             int numBytesRead = 0;
             while ((numBytesRead = input.read(buf)) != -1) {
                  output.write(buf, 0, numBytesRead);
                  }
                  data = output.toByteArray();
                  output.close();
                  input.close();
              
        }  catch (FileNotFoundException ex1) {
              ex1.printStackTrace();
        }
        catch (IOException ex1) {
          ex1.printStackTrace();
        }
        return data;
    }
}

### 使用.NET生成增值税发票 为了在.NET环境中生成增值税发票,通常会涉及到几个关键步骤和技术栈的选择。对于中国市场的增值税专用发票(VAT Invoice),可以考虑使用第三方库和服务来简化开发流程。 #### 选择合适的工具和框架 针对中国的增值税发票需求,可以选择如下方案: - **全电发票平台接口**:利用国家税务总局提供的官方API接口进行发票的创建、查询等功能[^1]。 - **商业级解决方案**:如FastReport VCL可用于从Delphi应用程序中创建发票,虽然这不是专门面向.NET的技术栈,但是其理念同样适用——即通过专业的报表生成组件加速开发进程[^2]。 然而,在实际应用中更常见的是采用专门为.NET设计的服务或类库来进行电子发票的操作。例如,`ZUGFeRD-csharp`虽然是为适应欧洲市场而生,但它展示了如何在一个具体的编程环境下高效地处理复杂的XML结构化数据,这对于理解和实现国内类似的规范也有借鉴意义[^3]。 #### 示例代码:基于Web API调用生成增值税发票 下面是一个简单的例子,展示如何通过HTTP POST请求向某个假设的支持全电发票的标准RESTful Web Service发送JSON格式的数据以获取一张新的增值税发票记录。 ```csharp using System; using System.Net.Http; using System.Text; using Newtonsoft.Json; public class VATInvoiceRequest { public string CompanyName { get; set; } public decimal Amount { get; set; } public DateTime DateOfIssue { get; set; } } class Program { static async Task Main(string[] args) { var client = new HttpClient(); // 设置目标URL string url = "https://example.com/api/vat-invoice"; // 准备要提交的信息 var invoiceData = new VATInvoiceRequest{ CompanyName = "Example Co., Ltd.", Amount = 9876.54m, DateOfIssue = DateTime.Now }; // 将对象序列化成Json字符串 string jsonContent = JsonConvert.SerializeObject(invoiceData); // 创建Http Content实例并将json放入其中 HttpContent content = new StringContent(jsonContent, Encoding.UTF8, "application/json"); try { HttpResponseMessage response = await client.PostAsync(url, content); if (response.IsSuccessStatusCode){ Console.WriteLine("成功创建了一张增值税发票!"); // 处理响应体中的信息... } else { Console.WriteLine($"失败: HTTP错误码{response.StatusCode}"); } } catch(Exception ex){ Console.WriteLine(ex.Message); } } } ``` 这段代码仅作为一个概念验证,并未涉及真实的业务逻辑细节以及安全措施等方面的要求。真实世界的应用程序应当更加严谨地对待这些方面。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值