123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237 |
- package com.idea.invoice.tool;
- import com.baiwang.bop.client.IBopClient;
- import com.baiwang.bop.client.impl.BopRestClient;
- import com.baiwang.bop.request.impl.bizinfo.CompanySearchRequest;
- import com.baiwang.bop.request.impl.invoice.common.InvoiceDetails;
- import com.baiwang.bop.request.impl.invoice.impl.FormatfileBuildRequest;
- import com.baiwang.bop.request.impl.invoice.impl.FormatfileQueryRequest;
- import com.baiwang.bop.request.impl.invoice.impl.InvoiceOpenRequest;
- import com.baiwang.bop.respose.entity.FormatfileBuildResponse;
- import com.baiwang.bop.respose.entity.FormatfileQueryResponse;
- import com.baiwang.bop.respose.entity.InvoiceOpenResponse;
- import com.baiwang.bop.respose.entity.bizinfo.CompanySearchResponse;
- import com.baiwang.bop.respose.entity.bizinfo.CompanySearchResult;
- import com.baiwang.bop.utils.ToolUtils;
- import java.util.ArrayList;
- import java.util.List;
- // 发票工具
- public class InvoiceTool {
- // 授权信息
- private static String url = "http://sandbox-openapi.baiwang.com/router/rest"; //接口地址
- private static String appKey = "1000886"; //appKey
- private static String appSecret = "739df182-8ced-454e-8a89-ebacc0a1d0c5"; //appScrect
- private static String userSalt = "e6dcfccba146417b828ef8c075c66234"; //用户盐值
- private static String username = "admin_3000000139924";//开发者账号用户名
- private static String password = "Aa123456";//开发者账号密码
- // 云抬头 获取
- public static List<CompanySearchResult> companySearch(String companyName) {
- try {
- String token = ToolUtils.getToken(url, appKey, appSecret, username, password, userSalt);
- CompanySearchRequest request = new CompanySearchRequest();
- request.setCompanyName(companyName);//沙箱环境只能获取“百望股份”相关信息
- request.setAccuracy("");
- request.setSort("{\"frequency\": 0}");
- IBopClient client = new BopRestClient(url, appKey, appSecret);
- CompanySearchResponse response = client.execute(request, token, CompanySearchResponse.class);
- return response.getResult();
- }
- catch (Exception e) {
- System.out.println(e);
- }
- return null;
- }
- // 版式文件生成
- public static void formatfileBuild(String invoiceCode, String invoiceNo, String buyerEmail) {
- try {
- String token = ToolUtils.getToken(url, appKey, appSecret, username, password, userSalt);
- FormatfileBuildRequest request = new FormatfileBuildRequest();
- // request.setSellerTaxNo("913202146816282140");
- request.setSellerTaxNo("91500000747150430A");
- request.setSerialNo("");
- // request.setInvoiceCode("050003521106");
- // request.setInvoiceNo("54092179");
- request.setInvoiceCode(invoiceCode);
- request.setInvoiceNo(invoiceNo);
- request.setPushType("1");
- request.setBuyerPhone("");
- // request.setBuyerEmail("comma.liu@qq.com");
- request.setBuyerEmail(buyerEmail);
- //同步请求
- IBopClient client = new BopRestClient(url, appKey, appSecret);
- FormatfileBuildResponse response = client.execute(request, token, FormatfileBuildResponse.class);
- }
- catch (Exception e) {
- System.out.println(e);
- }
- }
- // 版式文件查询
- public static void invoiceFormatQuery(){
- try {
- String token = ToolUtils.getToken(url, appKey, appSecret, username, password, userSalt);
- FormatfileQueryRequest request = new FormatfileQueryRequest();
- request.setInvoiceQueryType("0");
- request.setSellerTaxNo("91500000747150430A");
- request.setSerialNo("");
- request.setInvoiceCode("011000100011");
- request.setInvoiceNo("00203622");
- request.setReturnType("3");//返回H5发票提取链接
- //同步请求
- IBopClient client = new BopRestClient(url, appKey, appSecret);
- FormatfileQueryResponse response = client.execute(request, token, FormatfileQueryResponse.class);
- System.out.println(response.toString());
- } catch (Exception e) {
- System.out.println(e);
- }
- }
- //企业资料:销方参数
- private static String sellerTaxNo = "91500000747150430A";//91500000747150430A
- private static String deviceType = "1";//设备类型固定值税盘/核心板/uk
- private static String serialNo = "wuxi-"+System.currentTimeMillis()+"-001";//请求流水号,全局唯一
- private static String invoiceTypeCode = "026";//票种代码,纸质专票004,纸质普票007,电子普票026,电子专票028
- // private static String invoiceTerminalCode = "410123456730";//设备终端代码
- private static String invoiceTerminalCode = "410123456730";//设备终端代码
- // 发票开具
- public static InvoiceOpenResponse invoiceOpenTax(InvoiceModel model){
- String token = "";
- try {
- //获取token
- token = ToolUtils.getToken(url, appKey, appSecret, username, password, userSalt);
- InvoiceOpenRequest request = new InvoiceOpenRequest();
- //销方资料
- request.setSellerTaxNo(sellerTaxNo);
- //接口信息初始化
- request.setSerialNo(serialNo);
- request.setDeviceType(deviceType);
- request.setOrganizationCode("");
- request.setInvoiceSpecialMark("00");//特殊票种标记:00普通发票
- request.setInvoiceTypeCode(invoiceTypeCode);
- request.setInvoiceTerminalCode(invoiceTerminalCode);
- //购方资料
- // request.setBuyerTaxNo("91320213MA1TBCFU9A");
- // request.setBuyerName("无锡全新百旺");
- // request.setBuyerAddressPhone("深圳市福田区香蜜湖街道东海社区红荔西路8089号深业中城6号楼A单元34010755-61886688");
- // request.setBuyerBankAccount("中国银行无锡南长街支行123456789987654321");
- request.setBuyerTaxNo(model.getBuyerTaxNo());
- request.setBuyerName(model.getBuyerName());
- request.setBuyerAddressPhone(model.getBuyerAddressPhone());
- request.setBuyerBankAccount(model.getBuyerBankAccount());
- //根据企业财务规定设置,备注字段限制180字符,6行
- request.setDrawer("赶企网络信息技术");
- request.setChecker("");
- // request.setPayee("收款人");
- request.setPayee(model.getPayeeUser());
- // NANJING/TAICANG-PARANAGUA/MANZANILLO/SANTOS//NKAB20054900//NKAB20056600/NKAB20056601/NKAB20056602/NKAB20056800//NKAB20056801/NKAB20056802/NKAB20056803/GAL00135438//GAL00135709
- request.setRemarks("");//备注行
- //发票性质设置:保留
- request.setInvoiceType("0");//发票类型:0蓝字;1红字
- request.setInvoiceListMark("0");//清单标志:0无清单;1带清单
- request.setTaxationMode("0");
- request.setSignatureParameter("0000004282000000");
- request.setTaxDiskNo("");
- request.setTaxDiskKey("");
- request.setTaxDiskPassword("");
- request.setGoodsCodeVersion("");
- request.setConsolidatedTaxRate("");
- request.setNotificationNo("");
- request.setRedInfoNo("");
- request.setOriginalInvoiceCode("");
- request.setOriginalInvoiceNo("");
- request.setDeductibleAmount("");
- //根据发票行明细自动计算
- //request.setInvoiceTotalPrice("28.57");//商品合计金额
- //request.setInvoiceTotalTax("1.43");//商品合计税额
- //request.setInvoiceTotalPriceTax("30.00");//商品价税合计
- //request.setAutoSplit(true); /** AutoSplit=true时,返回为list,见下方Response示例 **/
- //商品明细列表,票面显示8行,超过8行显示“详见清单”
- List<InvoiceDetails> invoiceDetailsList = new ArrayList<InvoiceDetails>();
- //========================第一行明细,按简征收==============================
- InvoiceDetails invoiceDetails1 = new InvoiceDetails();
- invoiceDetails1.setGoodsLineNo("1");//明细行号,依次递增,票面显示8行明细,超出8行开具清单发票
- invoiceDetails1.setGoodsLineNature("0");//发票行性质
- invoiceDetails1.setGoodsCode("304050202020000000001");//税收编码
- invoiceDetails1.setGoodsExtendCode("");
- // invoiceDetails1.setGoodsName("停车费");//商品名称
- invoiceDetails1.setGoodsName(model.getGoodsName());
- invoiceDetails1.setGoodsTaxItem("");
- invoiceDetails1.setGoodsSpecification("");//规格型号
- invoiceDetails1.setGoodsUnit("人");//计量单位
- invoiceDetails1.setGoodsQuantity("");//数量
- invoiceDetails1.setGoodsPrice("");//商品单价
- // invoiceDetails1.setGoodsTotalPrice("30");//商品金额:30
- invoiceDetails1.setGoodsTotalPrice(model.getGoodsTotalPrice());
- //invoiceDetails1.setGoodsTotalTax("");//商品税额:1.43,含税模式下,自动计算
- invoiceDetails1.setGoodsTaxRate("0.05");//税率
- invoiceDetails1.setGoodsDiscountLineNo("");
- invoiceDetails1.setPriceTaxMark("1");//0不含税;1含税
- //商品行税收分类编码设置:由企业财务和百望公司共同确定
- invoiceDetails1.setPreferentialMark("1");//是否使用优惠政策
- invoiceDetails1.setVatSpecialManagement("按5%简易征收");//特殊征收方式字段
- invoiceDetails1.setFreeTaxMark("");//零税率标识
- //附加封装好的明细行
- invoiceDetailsList.add(invoiceDetails1);
- //========================第二行明细,正常税率==============================
- // InvoiceDetails invoiceDetails2 = new InvoiceDetails();
- // invoiceDetails2.setGoodsLineNo("2");//明细行号,依次递增,票面显示8行明细,超出8行开具清单发票
- // invoiceDetails2.setGoodsLineNature("0");//发票行性质
- // invoiceDetails2.setGoodsCode("307020102000000000001");//税收编码
- // invoiceDetails2.setGoodsExtendCode("");
- // invoiceDetails2.setGoodsName("报名费");//商品名称
- // invoiceDetails2.setGoodsTaxItem("");
- // invoiceDetails2.setGoodsSpecification("");//规格型号
- // invoiceDetails2.setGoodsUnit("单位");//计量单位
- // invoiceDetails2.setGoodsQuantity("1");//数量
- // invoiceDetails2.setGoodsPrice("880");//商品单价
- // invoiceDetails2.setGoodsTotalPrice("880");//商品金额:30
- // //invoiceDetails2.setGoodsTotalTax("");//商品税额:1.43
- // invoiceDetails2.setGoodsTaxRate("0.03");//税率
- // invoiceDetails2.setGoodsDiscountLineNo("");
- // invoiceDetails2.setPriceTaxMark("1");//0不含税;1含税
- // //商品行税收分类编码设置:由企业财务和百望公司共同确定
- // invoiceDetails2.setPreferentialMark("0");//是否使用优惠政策
- // invoiceDetails2.setVatSpecialManagement("");//特殊征收方式字段
- // invoiceDetails2.setFreeTaxMark("");//零税率标识
- // invoiceDetailsList.add(invoiceDetails2);
- // //========================第三行明细,免税商品==============================
- // InvoiceDetails invoiceDetails3 = new InvoiceDetails();
- // invoiceDetails3.setGoodsLineNo("1");//明细行号,依次递增,票面显示8行明细,超出8行开具清单发票
- // invoiceDetails3.setGoodsLineNature("0");//发票行性质
- // invoiceDetails3.setGoodsCode("3079900000000000000");//税收编码
- // invoiceDetails3.setGoodsExtendCode("");
- // invoiceDetails3.setGoodsName("物业管理费");//商品名称
- // invoiceDetails3.setGoodsTaxItem("");
- // invoiceDetails3.setGoodsSpecification("");//规格型号
- // invoiceDetails3.setGoodsUnit("");//计量单位
- // invoiceDetails3.setGoodsQuantity("");//数量
- // invoiceDetails3.setGoodsPrice("");//商品单价
- // invoiceDetails3.setGoodsTotalPrice("1");//商品金额:30
- // //invoiceDetails3.setGoodsTotalTax("");//商品税额:1.43
- // invoiceDetails3.setGoodsTaxRate("0");//税率
- // invoiceDetails3.setGoodsDiscountLineNo("");
- // invoiceDetails3.setPriceTaxMark("1");//0不含税;1含税
- // //商品行税收分类编码设置:由企业财务和百望公司共同确定
- // invoiceDetails3.setPreferentialMark("1");//是否使用优惠政策
- // invoiceDetails3.setVatSpecialManagement("免税");//特殊征收方式字段
- // invoiceDetails3.setFreeTaxMark("1");//零税率标识
- // invoiceDetailsList.add(invoiceDetails3);
- //
- request.setInvoiceDetailsList(invoiceDetailsList);
- IBopClient client = new BopRestClient(url, appKey, appSecret);
- InvoiceOpenResponse response = client.execute(request, token, InvoiceOpenResponse.class);
- System.out.println("我是返回"+response.toString());
- return response;
- } catch (Exception e) {
- System.out.println(e);
- }
- return null;
- }
- }
|