
com.yunzhanghu.example.Invoice Maven / Gradle / Ivy
package com.yunzhanghu.example;
import com.yunzhanghu.example.config.Config;
import com.yunzhanghu.example.utils.BaseUtil;
import com.yunzhanghu.sdk.base.YzhConfig;
import com.yunzhanghu.sdk.base.YzhRequest;
import com.yunzhanghu.sdk.base.YzhResponse;
import com.yunzhanghu.sdk.invoice.InvoiceClient;
import com.yunzhanghu.sdk.invoice.domain.ApplyInvoiceRequest;
import com.yunzhanghu.sdk.invoice.domain.ApplyInvoiceResponse;
import com.yunzhanghu.sdk.invoice.domain.GetInvoiceAmountRequest;
import com.yunzhanghu.sdk.invoice.domain.GetInvoiceAmountResponse;
import com.yunzhanghu.sdk.invoice.domain.GetInvoiceFileRequest;
import com.yunzhanghu.sdk.invoice.domain.GetInvoiceFileResponse;
import com.yunzhanghu.sdk.invoice.domain.GetInvoiceInformationRequest;
import com.yunzhanghu.sdk.invoice.domain.GetInvoiceInformationResponse;
import com.yunzhanghu.sdk.invoice.domain.GetInvoiceStatRequest;
import com.yunzhanghu.sdk.invoice.domain.GetInvoiceStatResponse;
import com.yunzhanghu.sdk.invoice.domain.GetInvoiceStatusRequest;
import com.yunzhanghu.sdk.invoice.domain.GetInvoiceStatusResponse;
import com.yunzhanghu.sdk.invoice.domain.SendReminderEmailRequest;
import com.yunzhanghu.sdk.invoice.domain.SendReminderEmailResponse;
// 发票开具
public class Invoice {
private static YzhConfig config = Config.getYzhConfig();
private static InvoiceClient client = new InvoiceClient(config);
public static void main(String[] args) {
// 查询平台企业已开具和待开具发票金额
getInvoiceStat();
// 查询可开具发票额度和发票开具信息
getInvoiceAmount();
// 发票开具申请
applyInvoice();
// 查询发票开具申请状态
getInvoiceStatus();
// 查询发票信息
getInvoiceInformation();
// 下载 PDF 版发票
getInvoiceFile();
// 发送发票扫描件压缩包下载链接邮件
sendReminderEmail();
}
// 查询平台企业已开具和待开具发票金额
private static void getInvoiceStat() {
GetInvoiceStatRequest request = new GetInvoiceStatRequest();
request.setDealerId("");
request.setBrokerId("");
request.setYear(2022);
YzhResponse response = null;
try {
// request-id:每次请求的唯一标识
// 强烈建议平台企业自定义 request-id 并记录在日志中,如遇异常请求,便于使用 request-id 追踪问题
// 如未自定义则使用 SDK 中的 UUID 方法自动生成,注意:UUID 方法不能保证全局唯一,可能会出现 ID 重复,推荐自行实现全局唯一 ID
response = client.getInvoiceStat(YzhRequest.build(BaseUtil.getRandomStr("requestId"), request));
if (response.isSuccess()) {// 请求成功
GetInvoiceStatResponse data = response.getData();
System.out.println("请求成功:" + data);
} else {
System.out.println("HTTP Status Code:" + response.getHttpCode());
System.out.println("发生异常:" + response.getCode() + response.getMessage());
}
} catch (Exception e) {
e.printStackTrace();
}
}
// 查询可开具发票额度和发票开具信息
private static void getInvoiceAmount() {
GetInvoiceAmountRequest request = new GetInvoiceAmountRequest();
request.setDealerId("");
request.setBrokerId("");
YzhResponse response = null;
try {
// request-id:每次请求的唯一标识
// 强烈建议平台企业自定义 request-id 并记录在日志中,如遇异常请求,便于使用 request-id 追踪问题
// 如未自定义则使用 SDK 中的 UUID 方法自动生成,注意:UUID 方法不能保证全局唯一,可能会出现 ID 重复,推荐自行实现全局唯一 ID
response = client.getInvoiceAmount(YzhRequest.build(BaseUtil.getRandomStr("requestId"), request));
if (response.isSuccess()) {// 请求成功
GetInvoiceAmountResponse data = response.getData();
System.out.println("请求成功:" + data);
} else {
System.out.println("HTTP Status Code:" + response.getHttpCode());
System.out.println("发生异常:" + response.getCode() + response.getMessage());
}
} catch (Exception e) {
e.printStackTrace();
}
}
// 发票开具申请
private static void applyInvoice() {
ApplyInvoiceRequest request = new ApplyInvoiceRequest();
request.setInvoiceApplyId("");
request.setDealerId("");
request.setBrokerId("");
request.setAmount("");
request.setInvoiceType("1");
request.setBankNameAccount("");
request.setGoodsServicesName("");
request.setRemark(null);
YzhResponse response = null;
try {
// request-id:每次请求的唯一标识
// 强烈建议平台企业自定义 request-id 并记录在日志中,如遇异常请求,便于使用 request-id 追踪问题
// 如未自定义则使用 SDK 中的 UUID 方法自动生成,注意:UUID 方法不能保证全局唯一,可能会出现 ID 重复,推荐自行实现全局唯一 ID
response = client.applyInvoice(YzhRequest.build(BaseUtil.getRandomStr("requestId"), request));
if (response.isSuccess()) {// 请求成功
ApplyInvoiceResponse data = response.getData();
System.out.println("请求成功:" + data);
} else {
System.out.println("HTTP Status Code:" + response.getHttpCode());
System.out.println("发生异常:" + response.getCode() + response.getMessage());
}
} catch (Exception e) {
e.printStackTrace();
}
}
// 查询发票开具申请状态
private static void getInvoiceStatus() {
GetInvoiceStatusRequest request = new GetInvoiceStatusRequest();
request.setInvoiceApplyId("");
request.setApplicationId("");
YzhResponse response = null;
try {
// request-id:每次请求的唯一标识
// 强烈建议平台企业自定义 request-id 并记录在日志中,如遇异常请求,便于使用 request-id 追踪问题
// 如未自定义则使用 SDK 中的 UUID 方法自动生成,注意:UUID 方法不能保证全局唯一,可能会出现 ID 重复,推荐自行实现全局唯一 ID
response = client.getInvoiceStatus(YzhRequest.build(BaseUtil.getRandomStr("requestId"), request));
if (response.isSuccess()) {// 请求成功
GetInvoiceStatusResponse data = response.getData();
System.out.println("请求成功:" + data);
} else {
System.out.println("HTTP Status Code:" + response.getHttpCode());
System.out.println("发生异常:" + response.getCode() + response.getMessage());
}
} catch (Exception e) {
e.printStackTrace();
}
}
// 查询发票信息
private static void getInvoiceInformation() {
GetInvoiceInformationRequest request = new GetInvoiceInformationRequest();
request.setInvoiceApplyId("");
request.setApplicationId("");
YzhResponse response = null;
try {
// request-id:每次请求的唯一标识
// 强烈建议平台企业自定义 request-id 并记录在日志中,如遇异常请求,便于使用 request-id 追踪问题
// 如未自定义则使用 SDK 中的 UUID 方法自动生成,注意:UUID 方法不能保证全局唯一,可能会出现 ID 重复,推荐自行实现全局唯一 ID
response = client.getInvoiceInformation(YzhRequest.build(BaseUtil.getRandomStr("requestId"), request));
if (response.isSuccess()) {// 请求成功
GetInvoiceInformationResponse data = response.getData();
System.out.println("请求成功:" + data);
} else {
System.out.println("HTTP Status Code:" + response.getHttpCode());
System.out.println("发生异常:" + response.getCode() + response.getMessage());
}
} catch (Exception e) {
e.printStackTrace();
}
}
// 下载 PDF 版发票
private static void getInvoiceFile() {
GetInvoiceFileRequest request = new GetInvoiceFileRequest();
request.setInvoiceApplyId("");
request.setApplicationId("");
YzhResponse response = null;
try {
// request-id:每次请求的唯一标识
// 强烈建议平台企业自定义 request-id 并记录在日志中,如遇异常请求,便于使用 request-id 追踪问题
// 如未自定义则使用 SDK 中的 UUID 方法自动生成,注意:UUID 方法不能保证全局唯一,可能会出现 ID 重复,推荐自行实现全局唯一 ID
response = client.getInvoiceFile(YzhRequest.build(BaseUtil.getRandomStr("requestId"), request));
if (response.isSuccess()) {// 请求成功
GetInvoiceFileResponse data = response.getData();
System.out.println("请求成功:" + data);
} else {
System.out.println("HTTP Status Code:" + response.getHttpCode());
System.out.println("发生异常:" + response.getCode() + response.getMessage());
}
} catch (Exception e) {
e.printStackTrace();
}
}
// 发送发票扫描件压缩包下载链接邮件
private static void sendReminderEmail() {
SendReminderEmailRequest request = new SendReminderEmailRequest();
request.setInvoiceApplyId("");
request.setApplicationId("");
YzhResponse response = null;
try {
// request-id:每次请求的唯一标识
// 强烈建议平台企业自定义 request-id 并记录在日志中,如遇异常请求,便于使用 request-id 追踪问题
// 如未自定义则使用 SDK 中的 UUID 方法自动生成,注意:UUID 方法不能保证全局唯一,可能会出现 ID 重复,推荐自行实现全局唯一 ID
response = client.sendReminderEmail(YzhRequest.build(BaseUtil.getRandomStr("requestId"), request));
if (response.isSuccess()) {// 请求成功
SendReminderEmailResponse data = response.getData();
System.out.println("请求成功:" + data);
} else {
System.out.println("HTTP Status Code:" + response.getHttpCode());
System.out.println("发生异常:" + response.getCode() + response.getMessage());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy