using System; using System.Collections.Generic; namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models { /// /// 表示 [POST] /combine-transactions/app 接口的请求。 /// public class CreateCombineTransactionAppRequest : WechatTenpayRequest { public static class Types { public class SubOrder { public static class Types { public class Amount { /// /// 获取或设置标价金额(单位:分)。 /// [Newtonsoft.Json.JsonProperty("total_amount")] [System.Text.Json.Serialization.JsonPropertyName("total_amount")] public int Total { get; set; } /// /// 获取或设置标价币种。 /// [Newtonsoft.Json.JsonProperty("currency")] [System.Text.Json.Serialization.JsonPropertyName("currency")] public string Currency { get; set; } = "CNY"; } public class Settlement { /// /// 获取或设置是否指定分账。 /// [Newtonsoft.Json.JsonProperty("profit_sharing")] [System.Text.Json.Serialization.JsonPropertyName("profit_sharing")] public bool? IsProfitSharing { get; set; } /// /// 获取或设置补差金额(单位:分)。 /// [Newtonsoft.Json.JsonProperty("subsidy_amount")] [System.Text.Json.Serialization.JsonPropertyName("subsidy_amount")] public long? SubsidyAmount { get; set; } } } /// /// 获取或设置子单微信商户号。如果不指定将使用合单微信商户号。 /// [Newtonsoft.Json.JsonProperty("mchid")] [System.Text.Json.Serialization.JsonPropertyName("mchid")] public string? MerchantId { get; set; } /// /// 获取或设置子单子商户号。 /// [Newtonsoft.Json.JsonProperty("sub_mchid")] [System.Text.Json.Serialization.JsonPropertyName("sub_mchid")] public string? SubMerchantId { get; set; } /// /// 获取或设置附加数据。 /// [Newtonsoft.Json.JsonProperty("attach")] [System.Text.Json.Serialization.JsonPropertyName("attach")] public string Attachment { get; set; } = string.Empty; /// /// 获取或设置商品描述。 /// [Newtonsoft.Json.JsonProperty("description")] [System.Text.Json.Serialization.JsonPropertyName("description")] public string Description { 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("amount")] [System.Text.Json.Serialization.JsonPropertyName("amount")] public Types.Amount Amount { get; set; } = new Types.Amount(); /// /// 获取或设置结算信息。 /// [Newtonsoft.Json.JsonProperty("settle_info")] [System.Text.Json.Serialization.JsonPropertyName("settle_info")] public Types.Settlement? Settlement { get; set; } /// /// 获取或设置订单优惠标记。 /// [Newtonsoft.Json.JsonProperty("goods_tag")] [System.Text.Json.Serialization.JsonPropertyName("goods_tag")] public string? GoodsTag { get; set; } } public class Payer { /// /// 获取或设置用户唯一标识。 /// [Newtonsoft.Json.JsonProperty("openid")] [System.Text.Json.Serialization.JsonPropertyName("openid")] public string OpenId { get; set; } = string.Empty; } public class Scene { /// /// 获取或设置用户终端 IP。 /// [Newtonsoft.Json.JsonProperty("payer_client_ip")] [System.Text.Json.Serialization.JsonPropertyName("payer_client_ip")] public string ClientIp { get; set; } = string.Empty; /// /// 获取或设置商户端设备号。 /// [Newtonsoft.Json.JsonProperty("device_id")] [System.Text.Json.Serialization.JsonPropertyName("device_id")] public string? DeviceId { get; set; } } } /// /// 获取或设置合单发起方的微信 AppId。 /// [Newtonsoft.Json.JsonProperty("combine_appid")] [System.Text.Json.Serialization.JsonPropertyName("combine_appid")] public string CombineAppId { get; set; } = string.Empty; /// /// 获取或设置合单发起方的微信商户号。如果不指定将使用构造 时的 参数。 /// [Newtonsoft.Json.JsonProperty("combine_mchid")] [System.Text.Json.Serialization.JsonPropertyName("combine_mchid")] public string? CombineMerchantId { get; set; } /// /// 获取或设置合单商户订单号。 /// [Newtonsoft.Json.JsonProperty("combine_out_trade_no")] [System.Text.Json.Serialization.JsonPropertyName("combine_out_trade_no")] public string CombineOutTradeNumber { get; set; } = string.Empty; /// /// 获取或设置交易起始时间。 /// [Newtonsoft.Json.JsonProperty("time_start")] [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RFC3339NullableDateTimeOffsetConverter))] [System.Text.Json.Serialization.JsonPropertyName("time_start")] [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RFC3339NullableDateTimeOffsetConverter))] public DateTimeOffset? StartTime { get; set; } /// /// 获取或设置交易结束时间。 /// [Newtonsoft.Json.JsonProperty("time_expire")] [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RFC3339NullableDateTimeOffsetConverter))] [System.Text.Json.Serialization.JsonPropertyName("time_expire")] [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RFC3339NullableDateTimeOffsetConverter))] public DateTimeOffset? ExpireTime { get; set; } /// /// 获取或设置回调通知地址。 /// [Newtonsoft.Json.JsonProperty("notify_url")] [System.Text.Json.Serialization.JsonPropertyName("notify_url")] public string? NotifyUrl { get; set; } /// /// 获取或设置子单列表。 /// [Newtonsoft.Json.JsonProperty("sub_orders")] [System.Text.Json.Serialization.JsonPropertyName("sub_orders")] public IList SubOrderList { get; set; } = new List(); /// /// 获取或设置支付者信息。 /// [Newtonsoft.Json.JsonProperty("combine_payer_info")] [System.Text.Json.Serialization.JsonPropertyName("combine_payer_info")] public Types.Payer? CombinePayer { get; set; } /// /// 获取或设置场景信息。 /// [Newtonsoft.Json.JsonProperty("scene_info")] [System.Text.Json.Serialization.JsonPropertyName("scene_info")] public Types.Scene? Scene { get; set; } } }