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