using System; using System.Collections.Generic; namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models { /// /// 表示 [POST] /pay/micropay 接口的请求。 /// public class CreatePayMicroPayRequest : WechatTenpaySignableRequest { public static class Types { public class Detail { public static class Types { public class GoodsDetail { /// /// 获取或设置商户侧商品编码。 /// [Newtonsoft.Json.JsonProperty("goods_id")] [System.Text.Json.Serialization.JsonPropertyName("goods_id")] public string MerchantGoodsId { get; set; } = string.Empty; /// /// 获取或设置微信侧商品编码。 /// [Newtonsoft.Json.JsonProperty("wxpay_goods_id")] [System.Text.Json.Serialization.JsonPropertyName("wxpay_goods_id")] public string? WechatpayGoodsId { get; set; } /// /// 获取或设置商品分类。 /// [Newtonsoft.Json.JsonProperty("goods_category")] [System.Text.Json.Serialization.JsonPropertyName("goods_category")] public string? GoodsCategory { get; set; } /// /// 获取或设置商品名称。 /// [Newtonsoft.Json.JsonProperty("goods_name")] [System.Text.Json.Serialization.JsonPropertyName("goods_name")] public string? GoodsName { get; set; } /// /// 获取或设置商品数量。 /// [Newtonsoft.Json.JsonProperty("quantity")] [System.Text.Json.Serialization.JsonPropertyName("quantity")] public int Quantity { get; set; } /// /// 获取或设置商品单价(单位:分)。 /// [Newtonsoft.Json.JsonProperty("price")] [System.Text.Json.Serialization.JsonPropertyName("price")] public int Price { get; set; } /// /// 获取或设置商品描述。 /// [Newtonsoft.Json.JsonProperty("body")] [System.Text.Json.Serialization.JsonPropertyName("body")] public string? Body { get; set; } } } /// /// 获取或设置订单原价(单位:分)。 /// [Newtonsoft.Json.JsonProperty("cost_price")] [System.Text.Json.Serialization.JsonPropertyName("cost_price")] public int? CostPrice { get; set; } /// /// 获取或设置商品小票 ID。 /// [Newtonsoft.Json.JsonProperty("receipt_id")] [System.Text.Json.Serialization.JsonPropertyName("receipt_id")] public string? ReceiptId { get; set; } /// /// 获取或设置单品列表。 /// [Newtonsoft.Json.JsonProperty("goods_detail")] [System.Text.Json.Serialization.JsonPropertyName("goods_detail")] public List? GoodsList { get; set; } } public class Scene { /// /// 获取或设置门店编号。 /// [Newtonsoft.Json.JsonProperty("id")] [System.Text.Json.Serialization.JsonPropertyName("id")] public string StoreId { get; set; } = string.Empty; /// /// 获取或设置门店名称。 /// [Newtonsoft.Json.JsonProperty("name")] [System.Text.Json.Serialization.JsonPropertyName("name")] public string? StoreName { get; set; } /// /// 获取或设置地区编码。 /// [Newtonsoft.Json.JsonProperty("area_code")] [System.Text.Json.Serialization.JsonPropertyName("area_code")] public string? StoreAreaCode { get; set; } /// /// 获取或设置详细地址。 /// [Newtonsoft.Json.JsonProperty("address")] [System.Text.Json.Serialization.JsonPropertyName("address")] public string? StoreAddress { get; set; } } } internal static class Converters { internal class ResponsePropertyDetailNewtonsoftJsonConverter : Newtonsoft.Json.Converters.TextualObjectInJsonFormatConverterBase { } internal class ResponsePropertyDetailSystemTextJsonConverter : System.Text.Json.Converters.TextualObjectInJsonFormatConverterBase { } internal class ResponsePropertySceneNewtonsoftJsonConverter : Newtonsoft.Json.Converters.TextualObjectInJsonFormatConverterBase { } internal class ResponsePropertySceneSystemTextJsonConverter : System.Text.Json.Converters.TextualObjectInJsonFormatConverterBase { } } /// /// 获取或设置接口版本号。 /// [Newtonsoft.Json.JsonProperty("version")] [System.Text.Json.Serialization.JsonPropertyName("version")] public string? Version { get; set; } /// /// 获取或设置子商户号。 /// [Newtonsoft.Json.JsonProperty("sub_mch_id")] [System.Text.Json.Serialization.JsonPropertyName("sub_mch_id")] public string? SubMerchantId { get; set; } /// /// 获取或设置子商户 AppId。 /// [Newtonsoft.Json.JsonProperty("sub_appid")] [System.Text.Json.Serialization.JsonPropertyName("sub_appid")] public string? SubAppId { get; set; } /// /// 获取或设置商品描述。 /// [Newtonsoft.Json.JsonProperty("body")] [System.Text.Json.Serialization.JsonPropertyName("body")] public string Body { get; set; } = string.Empty; /// /// 获取或设置商户订单号。 /// [Newtonsoft.Json.JsonProperty("out_trade_no")] [System.Text.Json.Serialization.JsonPropertyName("out_trade_no")] public string OutTradeNumber { get; set; } = string.Empty; /// /// 获取或设置订单金额(单位:分)。 /// [Newtonsoft.Json.JsonProperty("total_fee")] [System.Text.Json.Serialization.JsonPropertyName("total_fee")] public int TotalFee { get; set; } /// /// 获取或设置货币类型。 /// [Newtonsoft.Json.JsonProperty("fee_type")] [System.Text.Json.Serialization.JsonPropertyName("fee_type")] public string? FeeType { get; set; } /// /// 获取或设置付款码。 /// [Newtonsoft.Json.JsonProperty("auth_code")] [System.Text.Json.Serialization.JsonPropertyName("auth_code")] public string AuthCode { get; set; } = string.Empty; /// /// 获取或设置附加数据。 /// [Newtonsoft.Json.JsonProperty("attach")] [System.Text.Json.Serialization.JsonPropertyName("attach")] public string? Attachment { get; set; } /// /// 获取或设置终端设备号。 /// [Newtonsoft.Json.JsonProperty("device_info")] [System.Text.Json.Serialization.JsonPropertyName("device_info")] public string? DeviceInfo { get; set; } /// /// 获取或设置用户终端 IP。 /// [Newtonsoft.Json.JsonProperty("spbill_create_ip")] [System.Text.Json.Serialization.JsonPropertyName("spbill_create_ip")] public string ClientIp { get; set; } = string.Empty; /// /// 获取或设置订单优惠标记。 /// [Newtonsoft.Json.JsonProperty("goods_tag")] [System.Text.Json.Serialization.JsonPropertyName("goods_tag")] public string? GoodsTag { get; set; } /// /// 获取或设置指定付款方式编码。 /// [Newtonsoft.Json.JsonProperty("limit_pay")] [System.Text.Json.Serialization.JsonPropertyName("limit_pay")] public string? LimitPayCode { get; set; } /// /// 获取或设置交易起始时间。 /// [Newtonsoft.Json.JsonProperty("time_start")] [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.PureDigitalTextNullableDateTimeOffsetConverter))] [System.Text.Json.Serialization.JsonPropertyName("time_start")] [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.PureDigitalTextNullableDateTimeOffsetConverter))] public DateTimeOffset? StartTime { get; set; } /// /// 获取或设置交易结束时间。 /// [Newtonsoft.Json.JsonProperty("time_expire")] [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.PureDigitalTextNullableDateTimeOffsetConverter))] [System.Text.Json.Serialization.JsonPropertyName("time_expire")] [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.PureDigitalTextNullableDateTimeOffsetConverter))] public DateTimeOffset? ExpireTime { get; set; } /// /// 获取或设置商品信息。 /// [Newtonsoft.Json.JsonProperty("detail")] [Newtonsoft.Json.JsonConverter(typeof(Converters.ResponsePropertyDetailNewtonsoftJsonConverter))] [System.Text.Json.Serialization.JsonPropertyName("detail")] [System.Text.Json.Serialization.JsonConverter(typeof(Converters.ResponsePropertyDetailSystemTextJsonConverter))] public Types.Detail? Detail { get; set; } /// /// 获取或设置场景信息。 /// [Newtonsoft.Json.JsonProperty("scene_info")] [Newtonsoft.Json.JsonConverter(typeof(Converters.ResponsePropertySceneNewtonsoftJsonConverter))] [System.Text.Json.Serialization.JsonPropertyName("scene_info")] [System.Text.Json.Serialization.JsonConverter(typeof(Converters.ResponsePropertySceneSystemTextJsonConverter))] public Types.Scene? Scene { get; set; } /// /// 获取或设置是否分账。 /// [Newtonsoft.Json.JsonProperty("profit_sharing")] [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.YesOrNoNullableBooleanConverter))] [System.Text.Json.Serialization.JsonPropertyName("profit_sharing")] [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.YesOrNoNullableBooleanConverter))] public bool? IsProfitSharing { get; set; } /// /// 获取或设置是否开放电子发票入口。 /// [Newtonsoft.Json.JsonProperty("receipt")] [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.YesOrNoNullableBooleanConverter))] [System.Text.Json.Serialization.JsonPropertyName("receipt")] [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.YesOrNoNullableBooleanConverter))] public bool? IsReceiptOpen { get; set; } } }