Skip to content

Commit 7fd8eff

Browse files
committed
feat: 完善服务商电子发票接口
1 parent c274ac8 commit 7fd8eff

18 files changed

Lines changed: 428 additions & 0 deletions
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package com.github.binarywang.wxpay.bean.invoice;
2+
import com.google.gson.annotations.SerializedName;
3+
import lombok.Data;
4+
import java.io.Serializable;
5+
/** 电子发票购买方抬头信息。敏感字段 phone、email 由调用方按支付文档加密。 */
6+
@Data public class BuyerInformation implements Serializable {
7+
private static final long serialVersionUID = 1L;
8+
private String type;
9+
private String name;
10+
@SerializedName("taxpayer_id") private String taxpayerId;
11+
private String address;
12+
private String telephone;
13+
@SerializedName("bank_name") private String bankName;
14+
@SerializedName("bank_account") private String bankAccount;
15+
private String phone;
16+
private String email;
17+
private Integer amount;
18+
@SerializedName("out_trade_no") private String outTradeNo;
19+
@SerializedName("fapiao_bill_type") private String fapiaoBillType;
20+
@SerializedName("user_apply_message") private String userApplyMessage;
21+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package com.github.binarywang.wxpay.bean.invoice;
2+
3+
import com.google.gson.annotations.SerializedName;
4+
import lombok.Data;
5+
import java.io.Serializable;
6+
7+
/** 创建电子发票卡券模板请求。 */
8+
@Data
9+
public class CardTemplateRequest implements Serializable {
10+
private static final long serialVersionUID = 1L;
11+
@SerializedName("sub_mchid") private String subMchid;
12+
@SerializedName("card_appid") private String cardAppid;
13+
@SerializedName("card_template_information") private TemplateInformation cardTemplateInformation;
14+
@Data public static class TemplateInformation implements Serializable {
15+
private static final long serialVersionUID = 1L;
16+
@SerializedName("payee_name") private String payeeName;
17+
@SerializedName("logo_url") private String logoUrl;
18+
@SerializedName("custom_cell") private CustomCell customCell;
19+
}
20+
@Data public static class CustomCell implements Serializable {
21+
private static final long serialVersionUID = 1L;
22+
private String words;
23+
private String description;
24+
@SerializedName("jump_url") private String jumpUrl;
25+
@SerializedName("miniprogram_user_name") private String miniprogramUserName;
26+
@SerializedName("miniprogram_path") private String miniprogramPath;
27+
}
28+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package com.github.binarywang.wxpay.bean.invoice;
2+
import com.google.gson.annotations.SerializedName;
3+
import lombok.Data;
4+
import java.io.Serializable;
5+
/** 电子发票卡券模板结果。 */
6+
@Data public class CardTemplateResult implements Serializable {
7+
private static final long serialVersionUID = 1L;
8+
@SerializedName("card_appid") private String cardAppid;
9+
@SerializedName("card_id") private String cardId;
10+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package com.github.binarywang.wxpay.bean.invoice;
2+
import com.google.gson.annotations.SerializedName;
3+
import lombok.Data;
4+
import java.io.Serializable;
5+
/** 服务商电子发票开发配置请求。 */
6+
@Data public class DevelopmentConfigRequest implements Serializable {
7+
private static final long serialVersionUID = 1L;
8+
@SerializedName("callback_url") private String callbackUrl;
9+
@SerializedName("sub_mch_code") private String subMchCode;
10+
@SerializedName("show_fapiao_cell") private Boolean showFapiaoCell;
11+
@SerializedName("support_vat_fapiao") private Boolean supportVatFapiao;
12+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package com.github.binarywang.wxpay.bean.invoice;
2+
import com.google.gson.annotations.SerializedName;
3+
import lombok.Data;
4+
import java.io.Serializable;
5+
/** 服务商电子发票开发配置结果。 */
6+
@Data public class DevelopmentConfigResult implements Serializable {
7+
private static final long serialVersionUID = 1L;
8+
@SerializedName("callback_url") private String callbackUrl;
9+
@SerializedName("show_fapiao_cell") private Boolean showFapiaoCell;
10+
@SerializedName("support_vat_fapiao") private Boolean supportVatFapiao;
11+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package com.github.binarywang.wxpay.bean.invoice;
2+
import com.google.gson.annotations.SerializedName;
3+
import lombok.Data;
4+
import java.io.Serializable;
5+
/** 行业电子发票请求;fapiaoInformation 对应不动产租赁或成品油官方请求对象。 */
6+
@Data public class IndustryInvoiceRequest implements Serializable {
7+
private static final long serialVersionUID = 1L;
8+
@SerializedName("sub_mchid") private String subMchid;
9+
@SerializedName("fapiao_apply_id") private String fapiaoApplyId;
10+
@SerializedName("buyer_information") private BuyerInformation buyerInformation;
11+
@SerializedName("fapiao_information") private Object fapiaoInformation;
12+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.github.binarywang.wxpay.bean.invoice;
2+
import com.google.gson.annotations.SerializedName;
3+
import lombok.Data;
4+
import java.io.Serializable;
5+
import java.util.List;
6+
/** 将电子发票插入微信用户卡包请求。 */
7+
@Data public class InsertCardRequest implements Serializable {
8+
private static final long serialVersionUID = 1L;
9+
@SerializedName("sub_mchid") private String subMchid;
10+
private String scene;
11+
@SerializedName("fapiao_apply_id") private String fapiaoApplyId;
12+
@SerializedName("buyer_information") private BuyerInformation buyerInformation;
13+
@SerializedName("fapiao_card_information") private List<Object> fapiaoCardInformation;
14+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package com.github.binarywang.wxpay.bean.invoice;
2+
import lombok.Data;
3+
import java.io.Serializable;
4+
/** 查询服务商邀请开通电子发票能力的商户条件。 */
5+
@Data public class InviteMerchantQuery implements Serializable {
6+
private static final long serialVersionUID = 1L;
7+
private String queryTimeStart;
8+
private String queryTimeEnd;
9+
private Integer offset;
10+
private Integer limit;
11+
private String inviteCode;
12+
private String mchInviteStatus;
13+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package com.github.binarywang.wxpay.bean.invoice;
2+
import com.google.gson.annotations.SerializedName;
3+
import lombok.Data;
4+
import java.io.Serializable;
5+
import java.util.List;
6+
/** 服务商邀请商户查询结果。 */
7+
@Data public class InviteMerchantResult implements Serializable {
8+
private static final long serialVersionUID = 1L;
9+
@SerializedName("total_count") private Integer totalCount;
10+
private Integer offset;
11+
private Integer limit;
12+
@SerializedName("mch_invite_result_list") private List<Merchant> mchInviteResultList;
13+
@Data public static class Merchant implements Serializable {
14+
private static final long serialVersionUID = 1L;
15+
@SerializedName("sub_mchid") private String subMchid;
16+
@SerializedName("mch_invite_status") private String mchInviteStatus;
17+
@SerializedName("ep_name") private String epName;
18+
@SerializedName("tax_id") private String taxId;
19+
@SerializedName("invite_code") private String inviteCode;
20+
@SerializedName("operate_time") private String operateTime;
21+
@SerializedName("invite_failed_code") private String inviteFailedCode;
22+
@SerializedName("invite_failed_reason") private String inviteFailedReason;
23+
}
24+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.github.binarywang.wxpay.bean.invoice;
2+
import com.google.gson.annotations.SerializedName;
3+
import lombok.Data;
4+
import java.io.File;
5+
import java.io.Serializable;
6+
/** 上传电子发票 PDF 文件请求。digest 为官方要求的 SM3 十六进制摘要。 */
7+
@Data public class InvoiceFileUploadRequest implements Serializable {
8+
private static final long serialVersionUID = 1L;
9+
private File file;
10+
@SerializedName("sub_mchid") private String subMchid;
11+
@SerializedName("file_type") private String fileType = "PDF";
12+
@SerializedName("digest_alogrithm") private String digestAlogrithm = "SM3";
13+
private String digest;
14+
}

0 commit comments

Comments
 (0)