123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292 |
- /*----------------------------------------------------------------
- Copyright (C) 2019 Senparc
-
- 文件名:InvoicePlatformData.cs
- 文件功能描述:开票平台接口post数据
-
-
- 创建标识:Senparc - 20180930
- ----------------------------------------------------------------*/
- using System.Collections.Generic;
- using Senparc.Weixin.MP.AdvancedAPIs.GroupMessage;
- namespace Senparc.Weixin.MP.AdvancedAPIs
- {
- /// <summary>
- /// 发票模板对象
- /// </summary>
- public class InvoiceInfo
- {
- /// <summary>
- /// 发票卡券模板基础信息
- /// </summary>
- public InvoiceBaseInfo base_info { get; set; }
- /// <summary>
- /// 收款方(开票方)全称,显示在发票详情内。故建议一个收款方对应一个发票卡券模板
- /// </summary>
- public string payee { get; set; }
- /// <summary>
- /// 发票类型
- /// </summary>
- public string type { get; set; }
- }
- /// <summary>
- /// 发票卡券模板基础信息
- /// </summary>
- public class InvoiceBaseInfo
- {
- /// <summary>
- /// 发票商家 LOGO
- /// </summary>
- public string logo_url { get; set; }
- /// <summary>
- /// 收款方(显示在列表),上限为 9 个汉字,建议填入商户简称
- /// </summary>
- public string title { get; set; }
- /// <summary>
- /// 开票平台自定义入口名称,与 custom_url 字段共同使用,长度限制在 5 个汉字内
- /// </summary>
- public string custom_url_name { get; set; }
- /// <summary>
- /// 开票平台自定义入口跳转外链的地址链接 , 发票外跳的链接会带有发票参数,用于标识是从哪张发票跳出的链接
- /// </summary>
- public string custom_url { get; set; }
- /// <summary>
- /// 显示在入口右侧的 tips ,长度限制在 6 个汉字内
- /// </summary>
- public string custom_url_sub_title { get; set; }
- /// <summary>
- /// 营销场景的自定义入口
- /// </summary>
- public string promotion_url_name { get; set; }
- /// <summary>
- /// 入口跳转外链的地址链接,发票外跳的链接会带有发票参数,用于标识是从那张发票跳出的链接
- /// </summary>
- public string promotion_url { get; set; }
- /// <summary>
- /// 显示在入口右侧的 tips ,长度限制在 6 个汉字内
- /// </summary>
- public string promotion_url_sub_title { get; set; }
- }
- /// <summary>
- /// 将电子发票卡券插入用户卡包数据
- /// </summary>
- public class InsertCardToBagData
- {
- /// <summary>
- /// 发票order_id,既商户给用户授权开票的订单号
- /// </summary>
- public string order_id { get; set; }
- /// <summary>
- /// 发票card_id
- /// </summary>
- public string card_id { get; set; }
- /// <summary>
- /// 该订单号授权时使用的appid,一般为商户appid
- /// </summary>
- public string appid { get; set; }
- /// <summary>
- /// 发票具体内容
- /// </summary>
- public CardExtInfo card_ext { get; set; }
- }
- /// <summary>
- /// 发票具体内容
- /// </summary>
- public class CardExtInfo
- {
- /// <summary>
- /// 随机字符串,防止重复
- /// </summary>
- public string nonce_str { get; set; }
- /// <summary>
- /// 用户信息结构体
- /// </summary>
- public UserCard user_card { get; set; }
- }
- /// <summary>
- /// 用户信息结构体
- /// </summary>
- public class UserCard
- {
- public InvoicePlatformUserData invoice_user_data { get; set; }
- }
- /// <summary>
- /// 发票信息基础公用信息(开票平台,报销方)
- /// </summary>
- public abstract class InvoiceBaseUseData
- {
- /// <summary>
- /// 发票的金额,以分为单位
- /// </summary>
- public int fee { get; set; }
- /// <summary>
- /// 发票的抬头
- /// </summary>
- public string title { get; set; }
- /// <summary>
- /// 发票的开票时间,为10位时间戳
- /// </summary>
- public int billing_time { get; set; }
- /// <summary>
- /// 发票的发票代码
- /// </summary>
- public string billing_no { get; set; }
- /// <summary>
- /// 发票的发票号码
- /// </summary>
- public string billing_code { get; set; }
- /// <summary>
- /// 商品详情结构
- /// </summary>
- public List<ProjectInfo> info { get; set; }
- /// <summary>
- /// 不含税金额,以分为单位
- /// </summary>
- public int fee_without_tax { get; set; }
- /// <summary>
- /// 税额,以分为单位
- /// </summary>
- public int tax { get; set; }
- /// <summary>
- /// 校验码,发票pdf右上角,开票日期下的校验码
- /// </summary>
- public string check_code { get; set; }
- /// <summary>
- /// 购买方纳税人识别号
- /// </summary>
- public string buyer_number { get; set; }
- /// <summary>
- /// 购买方地址、电话
- /// </summary>
- public string buyer_address_and_phone { get; set; }
- /// <summary>
- /// 购买方开户行及账号
- /// </summary>
- public string buyer_bank_account { get; set; }
- /// <summary>
- /// 销售方纳税人识别号
- /// </summary>
- public string seller_number { get; set; }
- /// <summary>
- /// 销售方地址、电话
- /// </summary>
- public string seller_address_and_phone { get; set; }
- /// <summary>
- /// 销售方开户行及账号
- /// </summary>
- public string seller_bank_account { get; set; }
- /// <summary>
- /// 备注,发票右下角处
- /// </summary>
- public string remarks { get; set; }
- /// <summary>
- /// 收款人,发票左下角处
- /// </summary>
- public string cashier { get; set; }
- /// <summary>
- /// 开票人,发票下方处
- /// </summary>
- public string maker { get; set; }
- }
- /// <summary>
- /// 开票平台将电子发票卡券插入用户卡包时的发票信息
- /// </summary>
- public class InvoicePlatformUserData: InvoiceBaseUseData
- {
- /// <summary>
- /// 发票pdf文件上传到微信发票平台后,会生成一个发票
- /// </summary>
- public string s_pdf_media_id { get; set; }
- /// <summary>
- /// 其它消费附件的PDF
- /// </summary>
- public string s_trip_pdf_media_id { get; set; }
- }
- /// <summary>
- /// 报销方查询报销发票时的发票信息
- /// </summary>
- public class InvoiceReimburseUserData : InvoiceBaseUseData
- {
- /// <summary>
- /// 这张发票对应的PDF_URL
- /// </summary>
- public string pdf_url { get; set; }
- /// <summary>
- /// 其它消费凭证附件对应的URL,如行程单、水单等
- /// </summary>
- public string trip_pdf_url { get; set; }
- /// <summary>
- /// 发票报销状态,与<see cref="Reimburse_Status"/>对应
- /// </summary>
- public string reimburse_status { get; set; }
- /// <summary>
- /// 尝试转换<see cref="reimburse_status"/>为对应枚举,如果转换失败,则返回null
- /// </summary>
- public Reimburse_Status? Status
- {
- get
- {
- #if !NET35
- if (System.Enum.TryParse(this.reimburse_status, out Reimburse_Status status))
- {
- return status;
- }
- #else
- try
- {
- return (Reimburse_Status)System.Enum.Parse(typeof(Reimburse_Status), this.reimburse_status);
- }
- catch { }
- #endif
- return null;
- }
- }
- }
- /// <summary>
- /// 商品详情结构
- /// </summary>
- public class ProjectInfo
- {
- /// <summary>
- /// 项目的名称
- /// </summary>
- public string name { get; set; }
- /// <summary>
- /// 项目的数量
- /// </summary>
- public int num { get; set; }
- /// <summary>
- /// 项目的单位
- /// </summary>
- public string unit { get; set; }
- /// <summary>
- /// 项目的单价
- /// </summary>
- public int price { get; set; }
- }
- /// <summary>
- /// 单张发票
- /// </summary>
- public class InvoiceItem
- {
- /// <summary>
- /// 发票卡券的 card_id
- /// </summary>
- public string card_id { get; set; }
- /// <summary>
- /// 发票卡券的加密 code ,和 card_id 共同构成一张发票卡券的唯一标识
- /// </summary>
- public string encrypt_code { get; set; }
- }
- }
|