diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/ChannelsEC/EWaybillPushPathEvent.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/ChannelsEC/EWaybillPushPathEvent.cs new file mode 100644 index 00000000..011f6945 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/ChannelsEC/EWaybillPushPathEvent.cs @@ -0,0 +1,64 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Events +{ + /// + /// 表示 EVENT.ewaybill_push_path 事件的数据。 + /// REF: https://developers.weixin.qq.com/doc/channels/API/ewaybill/push_path.html + /// + public class EWaybillPushPathEvent : WechatApiEvent, WechatApiEvent.Serialization.IJsonSerializable, WechatApiEvent.Serialization.IXmlSerializable + { + public static class Types + { + public class Waybill + { + /// + /// 获取或设置电子面单 ID。 + /// + [Newtonsoft.Json.JsonProperty("ewaybill_order_id")] + [System.Text.Json.Serialization.JsonPropertyName("ewaybill_order_id")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))] + [System.Xml.Serialization.XmlElement("ewaybill_order_id")] + public string EWaybillOrderId { get; set; } = default!; + + /// + /// 获取或设置快递单号。 + /// + [Newtonsoft.Json.JsonProperty("waybill_id")] + [System.Text.Json.Serialization.JsonPropertyName("waybill_id")] + [System.Xml.Serialization.XmlElement("waybill_id")] + public string WaybillId { get; set; } = default!; + + /// + /// 获取或设置轨迹状态。 + /// + [Newtonsoft.Json.JsonProperty("status")] + [System.Text.Json.Serialization.JsonPropertyName("status")] + [System.Xml.Serialization.XmlElement("status")] + public int Status { get; set; } + + /// + /// 获取或设置轨迹描述。 + /// + [Newtonsoft.Json.JsonProperty("desc")] + [System.Text.Json.Serialization.JsonPropertyName("desc")] + [System.Xml.Serialization.XmlElement("desc")] + public string Description { get; set; } = default!; + + /// + /// 获取或设置更新时间戳。 + /// + [Newtonsoft.Json.JsonProperty("update_time")] + [System.Text.Json.Serialization.JsonPropertyName("update_time")] + [System.Xml.Serialization.XmlElement("update_time")] + public long UpdateTimestamp { get; set; } + } + } + + /// + /// 获取或设置快递信息。 + /// + [Newtonsoft.Json.JsonProperty("waybill_info")] + [System.Text.Json.Serialization.JsonPropertyName("waybill_info")] + [System.Xml.Serialization.XmlElement("waybill_info")] + public Types.Waybill Waybill { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteChannelsExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteChannelsExtensions.cs index 83baafa9..25c5b286 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteChannelsExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteChannelsExtensions.cs @@ -1709,6 +1709,132 @@ namespace SKIT.FlurlHttpClient.Wechat.Api } #region ECLogistics/EWaybill + #region ECLogistics/EWaybill/Account + /// + /// 异步调用 [POST] /channels/ec/logistics/ewaybill/biz/account/get 接口。 + /// REF: https://developers.weixin.qq.com/doc/channels/API/ewaybill/get_account.html + /// + /// + /// + /// + /// + public static async Task ExecuteChannelsECLogisticsEWaybillAccountGetAsync(this WechatApiClient client, Models.ChannelsECLogisticsEWaybillAccountGetRequest request, CancellationToken cancellationToken = default) + { + if (client is null) throw new ArgumentNullException(nameof(client)); + if (request is null) throw new ArgumentNullException(nameof(request)); + + IFlurlRequest flurlReq = client + .CreateRequest(request, HttpMethod.Post, "channels", "ec", "logistics", "ewaybill", "biz", "account", "get") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + #endregion + + #region ECLogistics/EWaybill/Delivery + /// + /// 异步调用 [POST] /channels/ec/logistics/ewaybill/biz/delivery/get 接口。 + /// REF: https://developers.weixin.qq.com/doc/channels/API/ewaybill/get_acctdeliverylist.html + /// + /// + /// + /// + /// + public static async Task ExecuteChannelsECLogisticsEWaybillDeliveryGetAsync(this WechatApiClient client, Models.ChannelsECLogisticsEWaybillDeliveryGetRequest request, CancellationToken cancellationToken = default) + { + if (client is null) throw new ArgumentNullException(nameof(client)); + if (request is null) throw new ArgumentNullException(nameof(request)); + + IFlurlRequest flurlReq = client + .CreateRequest(request, HttpMethod.Post, "channels", "ec", "logistics", "ewaybill", "biz", "delivery", "get") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + #endregion + + #region ECLogistics/EWaybill/Order + /// + /// 异步调用 [POST] /channels/ec/logistics/ewaybill/biz/order/precreate 接口。 + /// REF: https://developers.weixin.qq.com/doc/channels/API/ewaybill/precreate_order.html + /// + /// + /// + /// + /// + public static async Task ExecuteChannelsECLogisticsEWaybillOrderPrecreateAsync(this WechatApiClient client, Models.ChannelsECLogisticsEWaybillOrderPrecreateRequest request, CancellationToken cancellationToken = default) + { + if (client is null) throw new ArgumentNullException(nameof(client)); + if (request is null) throw new ArgumentNullException(nameof(request)); + + IFlurlRequest flurlReq = client + .CreateRequest(request, HttpMethod.Post, "channels", "ec", "logistics", "ewaybill", "biz", "order", "precreate") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /channels/ec/logistics/ewaybill/biz/order/create 接口。 + /// REF: https://developers.weixin.qq.com/doc/channels/API/ewaybill/create_order.html + /// + /// + /// + /// + /// + public static async Task ExecuteChannelsECLogisticsEWaybillOrderCreateAsync(this WechatApiClient client, Models.ChannelsECLogisticsEWaybillOrderCreateRequest request, CancellationToken cancellationToken = default) + { + if (client is null) throw new ArgumentNullException(nameof(client)); + if (request is null) throw new ArgumentNullException(nameof(request)); + + IFlurlRequest flurlReq = client + .CreateRequest(request, HttpMethod.Post, "channels", "ec", "logistics", "ewaybill", "biz", "order", "create") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /channels/ec/logistics/ewaybill/biz/order/cancel 接口。 + /// REF: https://developers.weixin.qq.com/doc/channels/API/ewaybill/cancel_order.html + /// + /// + /// + /// + /// + public static async Task ExecuteChannelsECLogisticsEWaybillOrderCancelAsync(this WechatApiClient client, Models.ChannelsECLogisticsEWaybillOrderCancelRequest request, CancellationToken cancellationToken = default) + { + if (client is null) throw new ArgumentNullException(nameof(client)); + if (request is null) throw new ArgumentNullException(nameof(request)); + + IFlurlRequest flurlReq = client + .CreateRequest(request, HttpMethod.Post, "channels", "ec", "logistics", "ewaybill", "biz", "order", "cancel") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /channels/ec/logistics/ewaybill/biz/order/get 接口。 + /// REF: https://developers.weixin.qq.com/doc/channels/API/ewaybill/get_order.html + /// + /// + /// + /// + /// + public static async Task ExecuteChannelsECLogisticsEWaybillOrderGetAsync(this WechatApiClient client, Models.ChannelsECLogisticsEWaybillOrderGetRequest request, CancellationToken cancellationToken = default) + { + if (client is null) throw new ArgumentNullException(nameof(client)); + if (request is null) throw new ArgumentNullException(nameof(request)); + + IFlurlRequest flurlReq = client + .CreateRequest(request, HttpMethod.Post, "channels", "ec", "logistics", "ewaybill", "biz", "order", "get") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + #endregion + #region ECLogistics/EWaybill/Template /// /// 异步调用 [POST] /channels/ec/logistics/ewaybill/biz/template/config 接口。 diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECLogistics/EWaybill/Account/ChannelsECLogisticsEWaybillAccountGetRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECLogistics/EWaybill/Account/ChannelsECLogisticsEWaybillAccountGetRequest.cs new file mode 100644 index 00000000..00af1676 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECLogistics/EWaybill/Account/ChannelsECLogisticsEWaybillAccountGetRequest.cs @@ -0,0 +1,51 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /channels/ec/logistics/ewaybill/biz/account/get 接口的请求。 + /// + public class ChannelsECLogisticsEWaybillAccountGetRequest : WechatApiRequest, IInferable + { + /// + /// 获取或设置快递公司 ID。 + /// + [Newtonsoft.Json.JsonProperty("delivery_id")] + [System.Text.Json.Serialization.JsonPropertyName("delivery_id")] + public string? DeliveryId { get; set; } + + /// + /// 获取或设置电子面单账号 ID。 + /// + [Newtonsoft.Json.JsonProperty("acct_id")] + [System.Text.Json.Serialization.JsonPropertyName("acct_id")] + public string? AccountId { get; set; } + + /// + /// 获取或设置状态。 + /// + [Newtonsoft.Json.JsonProperty("status")] + [System.Text.Json.Serialization.JsonPropertyName("status")] + public int? Status { get; set; } + + /// + /// 获取或设置是否需要查询库存。 + /// + [Newtonsoft.Json.JsonProperty("need_balance")] + [System.Text.Json.Serialization.JsonPropertyName("need_balance")] + public bool RequireBalance { get; set; } + + /// + /// 获取或设置分页起始位置。 + /// + [Newtonsoft.Json.JsonProperty("offset")] + [System.Text.Json.Serialization.JsonPropertyName("offset")] + public int? Offset { get; set; } + + /// + /// 获取或设置分页每页数量。 + /// 默认值:10 + /// + [Newtonsoft.Json.JsonProperty("limit")] + [System.Text.Json.Serialization.JsonPropertyName("limit")] + public int Limit { get; set; } = 10; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECLogistics/EWaybill/Account/ChannelsECLogisticsEWaybillAccountGetResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECLogistics/EWaybill/Account/ChannelsECLogisticsEWaybillAccountGetResponse.cs new file mode 100644 index 00000000..c911da6a --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECLogistics/EWaybill/Account/ChannelsECLogisticsEWaybillAccountGetResponse.cs @@ -0,0 +1,378 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /channels/ec/logistics/ewaybill/biz/account/get 接口的响应。 + /// + public class ChannelsECLogisticsEWaybillAccountGetResponse : WechatApiResponse + { + public static class Types + { + public class Account + { + public static class Types + { + public class SiteInfo + { + public static class Types + { + public class Address + { + /// + /// 获取或设置国家编码。 + /// + [Newtonsoft.Json.JsonProperty("country_code")] + [System.Text.Json.Serialization.JsonPropertyName("country_code")] + public string CountryCode { get; set; } = default!; + + /// + /// 获取或设置省份编码。 + /// + [Newtonsoft.Json.JsonProperty("province_code")] + [System.Text.Json.Serialization.JsonPropertyName("province_code")] + public string ProvinceCode { get; set; } = default!; + + /// + /// 获取或设置省份名称。 + /// + [Newtonsoft.Json.JsonProperty("province_name")] + [System.Text.Json.Serialization.JsonPropertyName("province_name")] + public string ProvinceName { get; set; } = default!; + + /// + /// 获取或设置城市编码。 + /// + [Newtonsoft.Json.JsonProperty("city_code")] + [System.Text.Json.Serialization.JsonPropertyName("city_code")] + public string CityCode { get; set; } = default!; + + /// + /// 获取或设置城市名称。 + /// + [Newtonsoft.Json.JsonProperty("city_name")] + [System.Text.Json.Serialization.JsonPropertyName("city_name")] + public string CityName { get; set; } = default!; + + /// + /// 获取或设置区县编码。 + /// + [Newtonsoft.Json.JsonProperty("district_code")] + [System.Text.Json.Serialization.JsonPropertyName("district_code")] + public string DistrictCode { get; set; } = default!; + + /// + /// 获取或设置区县名称。 + /// + [Newtonsoft.Json.JsonProperty("district_name")] + [System.Text.Json.Serialization.JsonPropertyName("district_name")] + public string DistrictName { get; set; } = default!; + + /// + /// 获取或设置街道编码。 + /// + [Newtonsoft.Json.JsonProperty("street_code")] + [System.Text.Json.Serialization.JsonPropertyName("street_code")] + public string StreetCode { get; set; } = default!; + + /// + /// 获取或设置街道名称。 + /// + [Newtonsoft.Json.JsonProperty("street_name")] + [System.Text.Json.Serialization.JsonPropertyName("street_name")] + public string StreetName { get; set; } = default!; + + /// + /// 获取或设置详细地址。 + /// + [Newtonsoft.Json.JsonProperty("detail_address")] + [System.Text.Json.Serialization.JsonPropertyName("detail_address")] + public string DetailAddress { get; set; } = default!; + } + + public class Contact + { + /// + /// 获取或设置联系人。 + /// + [Newtonsoft.Json.JsonProperty("name")] + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } = default!; + + /// + /// 获取或设置手机号码。 + /// + [Newtonsoft.Json.JsonProperty("mobile")] + [System.Text.Json.Serialization.JsonPropertyName("mobile")] + public string MobileNumber { get; set; } = default!; + + /// + /// 获取或设置电话号码。 + /// + [Newtonsoft.Json.JsonProperty("phone")] + [System.Text.Json.Serialization.JsonPropertyName("phone")] + public string PhoneNumber { get; set; } = default!; + } + } + + /// + /// 获取或设置快递公司 ID。 + /// + [Newtonsoft.Json.JsonProperty("delivery_id")] + [System.Text.Json.Serialization.JsonPropertyName("delivery_id")] + public string DeliveryId { get; set; } = default!; + + /// + /// 获取或设置网点运营状态。 + /// + [Newtonsoft.Json.JsonProperty("site_status")] + [System.Text.Json.Serialization.JsonPropertyName("site_status")] + public int SiteStatus { get; set; } + + /// + /// 获取或设置网点编码。 + /// + [Newtonsoft.Json.JsonProperty("site_code")] + [System.Text.Json.Serialization.JsonPropertyName("site_code")] + public string SiteCode { get; set; } = default!; + + /// + /// 获取或设置网点名称。 + /// + [Newtonsoft.Json.JsonProperty("site_name")] + [System.Text.Json.Serialization.JsonPropertyName("site_name")] + public string SiteName { get; set; } = default!; + + /// + /// 获取或设置网点全名。 + /// + [Newtonsoft.Json.JsonProperty("site_fullname")] + [System.Text.Json.Serialization.JsonPropertyName("site_fullname")] + public string SiteFullName { get; set; } = default!; + + /// + /// 获取或设置地址信息。 + /// + [Newtonsoft.Json.JsonProperty("address")] + [System.Text.Json.Serialization.JsonPropertyName("address")] + public Types.Address Address { get; set; } = default!; + + /// + /// 获取或设置联系方式信息。 + /// + [Newtonsoft.Json.JsonProperty("contact")] + [System.Text.Json.Serialization.JsonPropertyName("contact")] + public Types.Contact Contact { get; set; } = default!; + } + + public class ShareInfo + { + /// + /// 获取或设置快递公司 ID。 + /// + [Newtonsoft.Json.JsonProperty("delivery_id")] + [System.Text.Json.Serialization.JsonPropertyName("delivery_id")] + public string DeliveryId { get; set; } = default!; + + /// + /// 获取或设置网点编码。 + /// + [Newtonsoft.Json.JsonProperty("site_code")] + [System.Text.Json.Serialization.JsonPropertyName("site_code")] + public string SiteCode { get; set; } = default!; + + /// + /// 获取或设置网点名称。 + /// + [Newtonsoft.Json.JsonProperty("site_name")] + [System.Text.Json.Serialization.JsonPropertyName("site_name")] + public string SiteName { get; set; } = default!; + + /// + /// 获取或设置共享 ID。 + /// + [Newtonsoft.Json.JsonProperty("share_id")] + [System.Text.Json.Serialization.JsonPropertyName("share_id")] + public string ShareId { get; set; } = default!; + + /// + /// 获取或设置店铺 ID。 + /// + [Newtonsoft.Json.JsonProperty("shop_id")] + [System.Text.Json.Serialization.JsonPropertyName("shop_id")] + public string ShopId { get; set; } = default!; + + /// + /// 获取或设置电子面单账号 ID。 + /// + [Newtonsoft.Json.JsonProperty("acct_id")] + [System.Text.Json.Serialization.JsonPropertyName("acct_id")] + public string AccountId { get; set; } = default!; + + /// + /// 获取或设置发起共享方店铺名。 + /// + [Newtonsoft.Json.JsonProperty("nickname")] + [System.Text.Json.Serialization.JsonPropertyName("nickname")] + public string Nickname { get; set; } = default!; + + /// + /// 获取或设置月结账号。 + /// + [Newtonsoft.Json.JsonProperty("monthly_card")] + [System.Text.Json.Serialization.JsonPropertyName("monthly_card")] + public string? MonthlyCard { get; set; } + + /// + /// 获取或设置更新时间戳。 + /// + [Newtonsoft.Json.JsonProperty("update_time")] + [System.Text.Json.Serialization.JsonPropertyName("update_time")] + public long UpdateTimestamp { get; set; } + } + + public class SenderAddress + { + /// + /// 获取或设置省份。 + /// + [Newtonsoft.Json.JsonProperty("province")] + [System.Text.Json.Serialization.JsonPropertyName("province")] + public string Province { get; set; } = default!; + + /// + /// 获取或设置城市。 + /// + [Newtonsoft.Json.JsonProperty("city")] + [System.Text.Json.Serialization.JsonPropertyName("city")] + public string City { get; set; } = default!; + + /// + /// 获取或设置区县。 + /// + [Newtonsoft.Json.JsonProperty("county")] + [System.Text.Json.Serialization.JsonPropertyName("county")] + public string District { get; set; } = default!; + + /// + /// 获取或设置街道。 + /// + [Newtonsoft.Json.JsonProperty("street")] + [System.Text.Json.Serialization.JsonPropertyName("street")] + public string Street { get; set; } = default!; + + /// + /// 获取或设置详细地址。 + /// + [Newtonsoft.Json.JsonProperty("address")] + [System.Text.Json.Serialization.JsonPropertyName("address")] + public string DetailAddress { get; set; } = default!; + } + } + + /// + /// 获取或设置快递公司 ID。 + /// + [Newtonsoft.Json.JsonProperty("delivery_id")] + [System.Text.Json.Serialization.JsonPropertyName("delivery_id")] + public string DeliveryId { get; set; } = default!; + + /// + /// 获取或设置店铺 ID。 + /// + [Newtonsoft.Json.JsonProperty("shop_id")] + [System.Text.Json.Serialization.JsonPropertyName("shop_id")] + public string ShopId { get; set; } = default!; + + /// + /// 获取或设置电子面单账号 ID。 + /// + [Newtonsoft.Json.JsonProperty("acct_id")] + [System.Text.Json.Serialization.JsonPropertyName("acct_id")] + public string AccountId { get; set; } = default!; + + /// + /// 获取或设置电子面单账号类型。 + /// + [Newtonsoft.Json.JsonProperty("acct_type")] + [System.Text.Json.Serialization.JsonPropertyName("acct_type")] + public int AccountType { get; set; } = default!; + + /// + /// 获取或设置状态。 + /// + [Newtonsoft.Json.JsonProperty("status")] + [System.Text.Json.Serialization.JsonPropertyName("status")] + public int Status { get; set; } + + /// + /// 获取或设置面单余额(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("available")] + [System.Text.Json.Serialization.JsonPropertyName("available")] + public int AvailableBalance { get; set; } + + /// + /// 获取或设置累积已取单。 + /// + [Newtonsoft.Json.JsonProperty("allocated")] + [System.Text.Json.Serialization.JsonPropertyName("allocated")] + public int AllocatedCount { get; set; } + + /// + /// 获取或设置累积已回收。 + /// + [Newtonsoft.Json.JsonProperty("recycled")] + [System.Text.Json.Serialization.JsonPropertyName("recycled")] + public int RecycledCount { get; set; } + + /// + /// 获取或设置累计已取消。 + /// + [Newtonsoft.Json.JsonProperty("cancel")] + [System.Text.Json.Serialization.JsonPropertyName("cancel")] + public int CancelCount { get; set; } + + /// + /// 获取或设置月结账号。 + /// + [Newtonsoft.Json.JsonProperty("monthly_card")] + [System.Text.Json.Serialization.JsonPropertyName("monthly_card")] + public string? MonthlyCard { get; set; } + + /// + /// 获取或设置网点信息。 + /// + [Newtonsoft.Json.JsonProperty("site_info")] + [System.Text.Json.Serialization.JsonPropertyName("site_info")] + public Types.SiteInfo? SiteInfo { get; set; } + + /// + /// 获取或设置共享账号信息。 + /// + [Newtonsoft.Json.JsonProperty("share")] + [System.Text.Json.Serialization.JsonPropertyName("share")] + public Types.ShareInfo? ShareInfo { get; set; } + + /// + /// 获取或设置发货地址信息。 + /// + [Newtonsoft.Json.JsonProperty("sender_address")] + [System.Text.Json.Serialization.JsonPropertyName("sender_address")] + public Types.SenderAddress? SenderAddress { get; set; } + } + } + + /// + /// 获取或设置账号列表。 + /// + [Newtonsoft.Json.JsonProperty("account_list")] + [System.Text.Json.Serialization.JsonPropertyName("account_list")] + public Types.Account[] AccountList { get; set; } = default!; + + /// + /// 获取或设置总数量。 + /// + [Newtonsoft.Json.JsonProperty("total_num")] + [System.Text.Json.Serialization.JsonPropertyName("total_num")] + public int TotalCount { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECLogistics/EWaybill/Delivery/ChannelsECLogisticsEWaybillDeliveryGetRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECLogistics/EWaybill/Delivery/ChannelsECLogisticsEWaybillDeliveryGetRequest.cs new file mode 100644 index 00000000..d3b4b40f --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECLogistics/EWaybill/Delivery/ChannelsECLogisticsEWaybillDeliveryGetRequest.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /channels/ec/logistics/ewaybill/biz/delivery/get 接口的请求。 + /// + public class ChannelsECLogisticsEWaybillDeliveryGetRequest : WechatApiRequest, IInferable + { + /// + /// 获取或设置状态。 + /// + [Newtonsoft.Json.JsonProperty("status")] + [System.Text.Json.Serialization.JsonPropertyName("status")] + public int? Status { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECLogistics/EWaybill/Delivery/ChannelsECLogisticsEWaybillDeliveryGetResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECLogistics/EWaybill/Delivery/ChannelsECLogisticsEWaybillDeliveryGetResponse.cs new file mode 100644 index 00000000..51ef5000 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECLogistics/EWaybill/Delivery/ChannelsECLogisticsEWaybillDeliveryGetResponse.cs @@ -0,0 +1,42 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /channels/ec/logistics/ewaybill/biz/delivery/get 接口的响应。 + /// + public class ChannelsECLogisticsEWaybillDeliveryGetResponse : WechatApiResponse + { + public static class Types + { + public class Delivery + { + /// + /// 获取或设置快递公司 ID。 + /// + [Newtonsoft.Json.JsonProperty("delivery_id")] + [System.Text.Json.Serialization.JsonPropertyName("delivery_id")] + public string DeliveryId { get; set; } = default!; + + /// + /// 获取或设置快递公司名称。 + /// + [Newtonsoft.Json.JsonProperty("delivery_name")] + [System.Text.Json.Serialization.JsonPropertyName("delivery_name")] + public string DeliveryName { get; set; } = default!; + } + } + + /// + /// 获取或设置快递公司列表。 + /// + [Newtonsoft.Json.JsonProperty("list")] + [System.Text.Json.Serialization.JsonPropertyName("list")] + public Types.Delivery[] DeliveryList { get; set; } = default!; + + /// + /// 获取或设置店铺 ID。 + /// + [Newtonsoft.Json.JsonProperty("shop_id")] + [System.Text.Json.Serialization.JsonPropertyName("shop_id")] + public string ShopId { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECLogistics/EWaybill/Order/ChannelsECLogisticsEWaybillOrderCancelRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECLogistics/EWaybill/Order/ChannelsECLogisticsEWaybillOrderCancelRequest.cs new file mode 100644 index 00000000..67af7c17 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECLogistics/EWaybill/Order/ChannelsECLogisticsEWaybillOrderCancelRequest.cs @@ -0,0 +1,31 @@ +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /channels/ec/logistics/ewaybill/biz/order/cancel 接口的请求。 + /// + public class ChannelsECLogisticsEWaybillOrderCancelRequest : WechatApiRequest, IInferable + { + /// + /// 获取或设置快递公司 ID。 + /// + [Newtonsoft.Json.JsonProperty("delivery_id")] + [System.Text.Json.Serialization.JsonPropertyName("delivery_id")] + public string DeliveryId { get; set; } = string.Empty; + + /// + /// 获取或设置电子面单 ID。 + /// + [Newtonsoft.Json.JsonProperty("ewaybill_order_id")] + [System.Text.Json.Serialization.JsonPropertyName("ewaybill_order_id")] + public string EWaybillOrderId { get; set; } = string.Empty; + + /// + /// 获取或设置快递单号。 + /// + [Newtonsoft.Json.JsonProperty("waybill_id")] + [System.Text.Json.Serialization.JsonPropertyName("waybill_id")] + public string WaybillId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECLogistics/EWaybill/Order/ChannelsECLogisticsEWaybillOrderCancelResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECLogistics/EWaybill/Order/ChannelsECLogisticsEWaybillOrderCancelResponse.cs new file mode 100644 index 00000000..9954844b --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECLogistics/EWaybill/Order/ChannelsECLogisticsEWaybillOrderCancelResponse.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /channels/ec/logistics/ewaybill/biz/order/cancel 接口的响应。 + /// + public class ChannelsECLogisticsEWaybillOrderCancelResponse : WechatApiResponse + { + /// + /// 获取或设置快递公司错误信息。 + /// + [Newtonsoft.Json.JsonProperty("delivery_error_msg")] + [System.Text.Json.Serialization.JsonPropertyName("delivery_error_msg")] + public string? DeliveryErrorMessage { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECLogistics/EWaybill/Order/ChannelsECLogisticsEWaybillOrderCreateRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECLogistics/EWaybill/Order/ChannelsECLogisticsEWaybillOrderCreateRequest.cs new file mode 100644 index 00000000..9ed52bc9 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECLogistics/EWaybill/Order/ChannelsECLogisticsEWaybillOrderCreateRequest.cs @@ -0,0 +1,186 @@ +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /channels/ec/logistics/ewaybill/biz/order/create 接口的请求。 + /// + public class ChannelsECLogisticsEWaybillOrderCreateRequest : WechatApiRequest, IInferable + { + public static class Types + { + public class Address : ChannelsECLogisticsEWaybillOrderPrecreateRequest.Types.Address + { + } + + public class Order : ChannelsECLogisticsEWaybillOrderPrecreateRequest.Types.Order + { + public static new class Types + { + public class Goods : ChannelsECLogisticsEWaybillOrderPrecreateRequest.Types.Order.Types.Goods + { + /// + /// 获取或设置商家自定义商品 ID。 + /// + [Newtonsoft.Json.JsonProperty("out_product_id")] + [System.Text.Json.Serialization.JsonPropertyName("out_product_id")] + public string? OutProductId { get; set; } + + /// + /// 获取或设置商家自定义 SKU ID。 + /// + [Newtonsoft.Json.JsonProperty("out_sku_id")] + [System.Text.Json.Serialization.JsonPropertyName("out_sku_id")] + public string? OutSKUId { get; set; } + + /// + /// 获取或设置商家自定义商品详情。 + /// + [Newtonsoft.Json.JsonProperty("out_goods_info")] + [System.Text.Json.Serialization.JsonPropertyName("out_goods_info")] + public string? OutGoodsInfo { get; set; } + } + } + } + + public class OrderVas + { + /// + /// 获取或设置增值服务类型。 + /// + [Newtonsoft.Json.JsonProperty("vas_type")] + [System.Text.Json.Serialization.JsonPropertyName("vas_type")] + public string VasType { get; set; } = string.Empty; + + /// + /// 获取或设置增值服务描述。 + /// + [Newtonsoft.Json.JsonProperty("vas_detail")] + [System.Text.Json.Serialization.JsonPropertyName("vas_detail")] + public string? VasDetail { get; set; } + + /// + /// 获取或设置增值服务值。 + /// + [Newtonsoft.Json.JsonProperty("vas_value")] + [System.Text.Json.Serialization.JsonPropertyName("vas_value")] + public string? VasValue { get; set; } + } + + public class EWaybillExtra + { + /// + /// 获取或设置温层信息类型。 + /// + [Newtonsoft.Json.JsonProperty("temperature_range")] + [System.Text.Json.Serialization.JsonPropertyName("temperature_range")] + public int? TemperatureRangeType { get; set; } + + /// + /// 获取或设置扩展字段。 + /// + [Newtonsoft.Json.JsonExtensionData] + [System.Text.Json.Serialization.JsonExtensionData] + public IDictionary? ExtensionData { get; set; } + } + } + + /// + /// 获取或设置快递公司 ID。 + /// + [Newtonsoft.Json.JsonProperty("delivery_id")] + [System.Text.Json.Serialization.JsonPropertyName("delivery_id")] + public string DeliveryId { get; set; } = string.Empty; + + /// + /// 获取或设置电子面单 ID。 + /// + [Newtonsoft.Json.JsonProperty("ewaybill_order_id")] + [System.Text.Json.Serialization.JsonPropertyName("ewaybill_order_id")] + public string EWaybillOrderId { get; set; } = string.Empty; + + /// + /// 获取或设置网点编码。 + /// + [Newtonsoft.Json.JsonProperty("site_code")] + [System.Text.Json.Serialization.JsonPropertyName("site_code")] + public string? SiteCode { get; set; } + + /// + /// 获取或设置店铺 ID。 + /// + [Newtonsoft.Json.JsonProperty("shop_id")] + [System.Text.Json.Serialization.JsonPropertyName("shop_id")] + public string ShopId { get; set; } = string.Empty; + + /// + /// 获取或设置电子面单账号 ID。 + /// + [Newtonsoft.Json.JsonProperty("ewaybill_acct_id")] + [System.Text.Json.Serialization.JsonPropertyName("ewaybill_acct_id")] + public string AccountId { get; set; } = string.Empty; + + /// + /// 获取或设置面单模板 ID。 + /// + [Newtonsoft.Json.JsonProperty("template_id")] + [System.Text.Json.Serialization.JsonPropertyName("template_id")] + public string? TemplateId { get; set; } + + /// + /// 获取或设置寄件人信息。 + /// + [Newtonsoft.Json.JsonProperty("sender")] + [System.Text.Json.Serialization.JsonPropertyName("sender")] + public Types.Address Sender { get; set; } = new Types.Address(); + + /// + /// 获取或设置收件人信息。 + /// + [Newtonsoft.Json.JsonProperty("receiver")] + [System.Text.Json.Serialization.JsonPropertyName("receiver")] + public Types.Address Receiver { get; set; } = new Types.Address(); + + /// + /// 获取或设置退货地址信息。 + /// + [Newtonsoft.Json.JsonProperty("return_address")] + [System.Text.Json.Serialization.JsonPropertyName("return_address")] + public Types.Address? ReturnAddress { get; set; } + + /// + /// 获取或设置订单列表。 + /// + [Newtonsoft.Json.JsonProperty("ec_order_list")] + [System.Text.Json.Serialization.JsonPropertyName("ec_order_list")] + public IList OrderList { get; set; } = new List(); + + /// + /// 获取或设置备注。 + /// + [Newtonsoft.Json.JsonProperty("remark")] + [System.Text.Json.Serialization.JsonPropertyName("remark")] + public string? Remark { get; set; } + + /// + /// 获取或设置订单类型。 + /// + [Newtonsoft.Json.JsonProperty("order_type")] + [System.Text.Json.Serialization.JsonPropertyName("order_type")] + public int? OrderType { get; set; } + + /// + /// 获取或设置增值服务列表。 + /// + [Newtonsoft.Json.JsonProperty("order_vas_list")] + [System.Text.Json.Serialization.JsonPropertyName("order_vas_list")] + public IList? OrderVasList { get; set; } + + /// + /// 获取或设置面单补充信息。 + /// + [Newtonsoft.Json.JsonProperty("ext_info")] + [System.Text.Json.Serialization.JsonPropertyName("ext_info")] + public Types.EWaybillExtra? EWaybillExtra { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECLogistics/EWaybill/Order/ChannelsECLogisticsEWaybillOrderCreateResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECLogistics/EWaybill/Order/ChannelsECLogisticsEWaybillOrderCreateResponse.cs new file mode 100644 index 00000000..464622b0 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECLogistics/EWaybill/Order/ChannelsECLogisticsEWaybillOrderCreateResponse.cs @@ -0,0 +1,36 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /channels/ec/logistics/ewaybill/biz/order/create 接口的响应。 + /// + public class ChannelsECLogisticsEWaybillOrderCreateResponse : WechatApiResponse + { + /// + /// 获取或设置电子面单 ID。 + /// + [Newtonsoft.Json.JsonProperty("ewaybill_order_id")] + [System.Text.Json.Serialization.JsonPropertyName("ewaybill_order_id")] + public string EWaybillOrderId { get; set; } = default!; + + /// + /// 获取或设置快递单号。 + /// + [Newtonsoft.Json.JsonProperty("waybill_id")] + [System.Text.Json.Serialization.JsonPropertyName("waybill_id")] + public string? WaybillId { get; set; } + + /// + /// 获取或设置快递公司错误信息。 + /// + [Newtonsoft.Json.JsonProperty("delivery_error_msg")] + [System.Text.Json.Serialization.JsonPropertyName("delivery_error_msg")] + public string? DeliveryErrorMessage { get; set; } + + /// + /// 获取或设置打印报文信息。 + /// + [Newtonsoft.Json.JsonProperty("print_info")] + [System.Text.Json.Serialization.JsonPropertyName("print_info")] + public string? PrintInfo { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECLogistics/EWaybill/Order/ChannelsECLogisticsEWaybillOrderGetRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECLogistics/EWaybill/Order/ChannelsECLogisticsEWaybillOrderGetRequest.cs new file mode 100644 index 00000000..04e830cf --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECLogistics/EWaybill/Order/ChannelsECLogisticsEWaybillOrderGetRequest.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /channels/ec/logistics/ewaybill/biz/order/get 接口的请求。 + /// + public class ChannelsECLogisticsEWaybillOrderGetRequest : WechatApiRequest, IInferable + { + /// + /// 获取或设置电子面单 ID。 + /// + [Newtonsoft.Json.JsonProperty("ewaybill_order_id")] + [System.Text.Json.Serialization.JsonPropertyName("ewaybill_order_id")] + public string EWaybillOrderId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECLogistics/EWaybill/Order/ChannelsECLogisticsEWaybillOrderGetResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECLogistics/EWaybill/Order/ChannelsECLogisticsEWaybillOrderGetResponse.cs new file mode 100644 index 00000000..60bb46c1 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECLogistics/EWaybill/Order/ChannelsECLogisticsEWaybillOrderGetResponse.cs @@ -0,0 +1,250 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /channels/ec/logistics/ewaybill/biz/order/get 接口的响应。 + /// + public class ChannelsECLogisticsEWaybillOrderGetResponse : WechatApiResponse + { + public static class Types + { + public class EWaybillOrder + { + public static class Types + { + public class Address + { + /// + /// 获取或设置省份。 + /// + [Newtonsoft.Json.JsonProperty("province")] + [System.Text.Json.Serialization.JsonPropertyName("province")] + public string Province { get; set; } = default!; + + /// + /// 获取或设置城市。 + /// + [Newtonsoft.Json.JsonProperty("city")] + [System.Text.Json.Serialization.JsonPropertyName("city")] + public string City { get; set; } = default!; + + /// + /// 获取或设置区县。 + /// + [Newtonsoft.Json.JsonProperty("county")] + [System.Text.Json.Serialization.JsonPropertyName("county")] + public string District { get; set; } = default!; + + /// + /// 获取或设置街道。 + /// + [Newtonsoft.Json.JsonProperty("street")] + [System.Text.Json.Serialization.JsonPropertyName("street")] + public string? Street { get; set; } + + /// + /// 获取或设置详细地址。 + /// + [Newtonsoft.Json.JsonProperty("address")] + [System.Text.Json.Serialization.JsonPropertyName("address")] + public string DetailAddress { get; set; } = default!; + + /// + /// 获取或设置联系人。 + /// + [Newtonsoft.Json.JsonProperty("name")] + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } = default!; + + /// + /// 获取或设置联系电话。 + /// + [Newtonsoft.Json.JsonProperty("mobile")] + [System.Text.Json.Serialization.JsonPropertyName("mobile")] + public string MobileNumber { get; set; } = default!; + } + + public class Order + { + public static class Types + { + public class Goods + { + /// + /// 获取或设置商品 ID。 + /// + [Newtonsoft.Json.JsonProperty("product_id")] + [System.Text.Json.Serialization.JsonPropertyName("product_id")] + public long? ProductId { get; set; } + + /// + /// 获取或设置 SKU ID。 + /// + [Newtonsoft.Json.JsonProperty("sku_id")] + [System.Text.Json.Serialization.JsonPropertyName("sku_id")] + public long? SKUId { get; set; } + + /// + /// 获取或设置商品名。 + /// + [Newtonsoft.Json.JsonProperty("good_name")] + [System.Text.Json.Serialization.JsonPropertyName("good_name")] + public string GoodsName { get; set; } = default!; + + /// + /// 获取或设置商品个数。 + /// + [Newtonsoft.Json.JsonProperty("good_count")] + [System.Text.Json.Serialization.JsonPropertyName("good_count")] + public int GoodsCount { get; set; } + } + } + + /// + /// 获取或设置订单 ID。 + /// + [Newtonsoft.Json.JsonProperty("ec_order_id")] + [System.Text.Json.Serialization.JsonPropertyName("ec_order_id")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))] + public string? OrderId { get; set; } + + /// + /// 获取或设置商品列表。 + /// + [Newtonsoft.Json.JsonProperty("goods_list")] + [System.Text.Json.Serialization.JsonPropertyName("goods_list")] + public Types.Goods[] GoodsList { get; set; } = default!; + + /// + /// 获取或设置代发的订单密文。 + /// + [Newtonsoft.Json.JsonProperty("ewaybill_order_code")] + [System.Text.Json.Serialization.JsonPropertyName("ewaybill_order_code")] + public string? EWaybillOrderCode { get; set; } + + /// + /// 获取或设置代发的订单所属店铺 AppId。 + /// + [Newtonsoft.Json.JsonProperty("ewaybill_order_appid")] + [System.Text.Json.Serialization.JsonPropertyName("ewaybill_order_appid")] + public string? EWaybillOrderAppId { get; set; } + } + + public class Path + { + /// + /// 获取或设置轨迹状态。 + /// + [Newtonsoft.Json.JsonProperty("status")] + [System.Text.Json.Serialization.JsonPropertyName("status")] + public int Status { get; set; } + + /// + /// 获取或设置轨迹描述。 + /// + [Newtonsoft.Json.JsonProperty("desc")] + [System.Text.Json.Serialization.JsonPropertyName("desc")] + public string Description { get; set; } = default!; + + /// + /// 获取或设置更新时间戳。 + /// + [Newtonsoft.Json.JsonProperty("update_time")] + [System.Text.Json.Serialization.JsonPropertyName("update_time")] + public long UpdateTimestamp { get; set; } + } + } + + /// + /// 获取或设置快递公司 ID。 + /// + [Newtonsoft.Json.JsonProperty("delivery_id")] + [System.Text.Json.Serialization.JsonPropertyName("delivery_id")] + public string DeliveryId { get; set; } = default!; + + /// + /// 获取或设置电子面单 ID。 + /// + [Newtonsoft.Json.JsonProperty("ewaybill_order_id")] + [System.Text.Json.Serialization.JsonPropertyName("ewaybill_order_id")] + public string EWaybillOrderId { get; set; } = default!; + + /// + /// 获取或设置快递单号。 + /// + [Newtonsoft.Json.JsonProperty("waybill_id")] + [System.Text.Json.Serialization.JsonPropertyName("waybill_id")] + public string WaybillId { get; set; } = default!; + + /// + /// 获取或设置网点编码。 + /// + [Newtonsoft.Json.JsonProperty("site_code")] + [System.Text.Json.Serialization.JsonPropertyName("site_code")] + public string? SiteCode { get; set; } + + /// + /// 获取或设置店铺 ID。 + /// + [Newtonsoft.Json.JsonProperty("shop_id")] + [System.Text.Json.Serialization.JsonPropertyName("shop_id")] + public string ShopId { get; set; } = default!; + + /// + /// 获取或设置电子面单账号 ID。 + /// + [Newtonsoft.Json.JsonProperty("ewaybill_acct_id")] + [System.Text.Json.Serialization.JsonPropertyName("ewaybill_acct_id")] + public string AccountId { get; set; } = default!; + + /// + /// 获取或设置寄件人信息。 + /// + [Newtonsoft.Json.JsonProperty("sender")] + [System.Text.Json.Serialization.JsonPropertyName("sender")] + public Types.Address Sender { get; set; } = default!; + + /// + /// 获取或设置收件人信息。 + /// + [Newtonsoft.Json.JsonProperty("receiver")] + [System.Text.Json.Serialization.JsonPropertyName("receiver")] + public Types.Address Receiver { get; set; } = default!; + + /// + /// 获取或设置订单列表。 + /// + [Newtonsoft.Json.JsonProperty("ec_order_list")] + [System.Text.Json.Serialization.JsonPropertyName("ec_order_list")] + public Types.Order[] OrderList { get; set; } = default!; + + /// + /// 获取或设置备注。 + /// + [Newtonsoft.Json.JsonProperty("remark")] + [System.Text.Json.Serialization.JsonPropertyName("remark")] + public string? Remark { get; set; } + + /// + /// 获取或设置网点编码。 + /// + [Newtonsoft.Json.JsonProperty("status")] + [System.Text.Json.Serialization.JsonPropertyName("status")] + public int Status { get; set; } + + /// + /// 获取或设置轨迹列表。 + /// + [Newtonsoft.Json.JsonProperty("path_info")] + [System.Text.Json.Serialization.JsonPropertyName("path_info")] + public Types.Path[] PathList { get; set; } = default!; + } + } + + /// + /// 获取或设置电子面单信息。 + /// + [Newtonsoft.Json.JsonProperty("order_info")] + [System.Text.Json.Serialization.JsonPropertyName("order_info")] + public Types.EWaybillOrder EWaybillOrder { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECLogistics/EWaybill/Order/ChannelsECLogisticsEWaybillOrderPrecreateRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECLogistics/EWaybill/Order/ChannelsECLogisticsEWaybillOrderPrecreateRequest.cs new file mode 100644 index 00000000..f1b4f757 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECLogistics/EWaybill/Order/ChannelsECLogisticsEWaybillOrderPrecreateRequest.cs @@ -0,0 +1,188 @@ +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /channels/ec/logistics/ewaybill/biz/order/precreate 接口的请求。 + /// + public class ChannelsECLogisticsEWaybillOrderPrecreateRequest : WechatApiRequest, IInferable + { + public static class Types + { + public class Address + { + /// + /// 获取或设置省份。 + /// + [Newtonsoft.Json.JsonProperty("province")] + [System.Text.Json.Serialization.JsonPropertyName("province")] + public string Province { get; set; } = string.Empty; + + /// + /// 获取或设置城市。 + /// + [Newtonsoft.Json.JsonProperty("city")] + [System.Text.Json.Serialization.JsonPropertyName("city")] + public string City { get; set; } = string.Empty; + + /// + /// 获取或设置区县。 + /// + [Newtonsoft.Json.JsonProperty("county")] + [System.Text.Json.Serialization.JsonPropertyName("county")] + public string District { get; set; } = string.Empty; + + /// + /// 获取或设置街道。 + /// + [Newtonsoft.Json.JsonProperty("street")] + [System.Text.Json.Serialization.JsonPropertyName("street")] + public string? Street { get; set; } + + /// + /// 获取或设置详细地址。 + /// + [Newtonsoft.Json.JsonProperty("address")] + [System.Text.Json.Serialization.JsonPropertyName("address")] + public string DetailAddress { get; set; } = string.Empty; + + /// + /// 获取或设置联系人。 + /// + [Newtonsoft.Json.JsonProperty("name")] + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } = string.Empty; + + /// + /// 获取或设置联系电话。 + /// + [Newtonsoft.Json.JsonProperty("mobile")] + [System.Text.Json.Serialization.JsonPropertyName("mobile")] + public string MobileNumber { get; set; } = string.Empty; + } + + public class Order + { + public static class Types + { + public class Goods + { + /// + /// 获取或设置商品 ID。 + /// + [Newtonsoft.Json.JsonProperty("product_id")] + [System.Text.Json.Serialization.JsonPropertyName("product_id")] + public long? ProductId { get; set; } + + /// + /// 获取或设置 SKU ID。 + /// + [Newtonsoft.Json.JsonProperty("sku_id")] + [System.Text.Json.Serialization.JsonPropertyName("sku_id")] + public long? SKUId { get; set; } + + /// + /// 获取或设置商品名。 + /// + [Newtonsoft.Json.JsonProperty("good_name")] + [System.Text.Json.Serialization.JsonPropertyName("good_name")] + public string GoodsName { get; set; } = string.Empty; + + /// + /// 获取或设置商品个数。 + /// + [Newtonsoft.Json.JsonProperty("good_count")] + [System.Text.Json.Serialization.JsonPropertyName("good_count")] + public int GoodsCount { get; set; } + } + } + + /// + /// 获取或设置订单 ID。 + /// + [Newtonsoft.Json.JsonProperty("ec_order_id")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumericalStringConverter))] + [System.Text.Json.Serialization.JsonPropertyName("ec_order_id")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringConverter))] + public string? OrderId { get; set; } + + /// + /// 获取或设置商品列表。 + /// + [Newtonsoft.Json.JsonProperty("goods_list")] + [System.Text.Json.Serialization.JsonPropertyName("goods_list")] + public IList GoodsList { get; set; } = new List(); + + /// + /// 获取或设置代发的订单密文。 + /// + [Newtonsoft.Json.JsonProperty("ewaybill_order_code")] + [System.Text.Json.Serialization.JsonPropertyName("ewaybill_order_code")] + public string? EWaybillOrderCode { get; set; } + + /// + /// 获取或设置代发的订单所属店铺 AppId。 + /// + [Newtonsoft.Json.JsonProperty("ewaybill_order_appid")] + [System.Text.Json.Serialization.JsonPropertyName("ewaybill_order_appid")] + public string? EWaybillOrderAppId { get; set; } + } + } + + /// + /// 获取或设置快递公司 ID。 + /// + [Newtonsoft.Json.JsonProperty("delivery_id")] + [System.Text.Json.Serialization.JsonPropertyName("delivery_id")] + public string DeliveryId { get; set; } = string.Empty; + + /// + /// 获取或设置网点编码。 + /// + [Newtonsoft.Json.JsonProperty("site_code")] + [System.Text.Json.Serialization.JsonPropertyName("site_code")] + public string? SiteCode { get; set; } + + /// + /// 获取或设置店铺 ID。 + /// + [Newtonsoft.Json.JsonProperty("shop_id")] + [System.Text.Json.Serialization.JsonPropertyName("shop_id")] + public string ShopId { get; set; } = string.Empty; + + /// + /// 获取或设置电子面单账号 ID。 + /// + [Newtonsoft.Json.JsonProperty("ewaybill_acct_id")] + [System.Text.Json.Serialization.JsonPropertyName("ewaybill_acct_id")] + public string AccountId { get; set; } = string.Empty; + + /// + /// 获取或设置寄件人信息。 + /// + [Newtonsoft.Json.JsonProperty("sender")] + [System.Text.Json.Serialization.JsonPropertyName("sender")] + public Types.Address Sender { get; set; } = new Types.Address(); + + /// + /// 获取或设置收件人信息。 + /// + [Newtonsoft.Json.JsonProperty("receiver")] + [System.Text.Json.Serialization.JsonPropertyName("receiver")] + public Types.Address Receiver { get; set; } = new Types.Address(); + + /// + /// 获取或设置订单列表。 + /// + [Newtonsoft.Json.JsonProperty("ec_order_list")] + [System.Text.Json.Serialization.JsonPropertyName("ec_order_list")] + public IList OrderList { get; set; } = new List(); + + /// + /// 获取或设置备注。 + /// + [Newtonsoft.Json.JsonProperty("remark")] + [System.Text.Json.Serialization.JsonPropertyName("remark")] + public string? Remark { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECLogistics/EWaybill/Order/ChannelsECLogisticsEWaybillOrderPrecreateResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECLogistics/EWaybill/Order/ChannelsECLogisticsEWaybillOrderPrecreateResponse.cs new file mode 100644 index 00000000..7f6be6b0 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECLogistics/EWaybill/Order/ChannelsECLogisticsEWaybillOrderPrecreateResponse.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /channels/ec/logistics/ewaybill/biz/order/precreate 接口的响应。 + /// + public class ChannelsECLogisticsEWaybillOrderPrecreateResponse : WechatApiResponse + { + /// + /// 获取或设置电子面单 ID。 + /// + [Newtonsoft.Json.JsonProperty("ewaybill_order_id")] + [System.Text.Json.Serialization.JsonPropertyName("ewaybill_order_id")] + public string EWaybillOrderId { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOrder/ChannelsECOrderGetResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOrder/ChannelsECOrderGetResponse.cs index 4955f830..c7087553 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOrder/ChannelsECOrderGetResponse.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOrder/ChannelsECOrderGetResponse.cs @@ -1,4 +1,4 @@ -namespace SKIT.FlurlHttpClient.Wechat.Api.Models +namespace SKIT.FlurlHttpClient.Wechat.Api.Models { /// /// 表示 [POST] /channels/ec/order/get 接口的响应。 diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/ChannelsEC/EWaybillPushPathEvent.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/ChannelsEC/EWaybillPushPathEvent.json new file mode 100644 index 00000000..82f09617 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/ChannelsEC/EWaybillPushPathEvent.json @@ -0,0 +1,14 @@ +{ + "ToUserName": "gh_*", + "FromUserName": "OpenID", + "CreateTime": 1662480000, + "MsgType": "event", + "Event": "ewaybill_push_path", + "waybill_info": { + "ewaybill_order_id": 123123123123123, + "waybill_id": "xxxx", + "update_time": 1231231, + "status": 1, + "desc": "您的快件已签收" + } +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECLogistics/EWaybill/Account/ChannelsECLogisticsEWaybillAccountGetRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECLogistics/EWaybill/Account/ChannelsECLogisticsEWaybillAccountGetRequest.json new file mode 100644 index 00000000..7a317112 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECLogistics/EWaybill/Account/ChannelsECLogisticsEWaybillAccountGetRequest.json @@ -0,0 +1,4 @@ +{ + "need_balance": true, + "limit": 10 +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECLogistics/EWaybill/Account/ChannelsECLogisticsEWaybillAccountGetResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECLogistics/EWaybill/Account/ChannelsECLogisticsEWaybillAccountGetResponse.json new file mode 100644 index 00000000..4811f8d0 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECLogistics/EWaybill/Account/ChannelsECLogisticsEWaybillAccountGetResponse.json @@ -0,0 +1,40 @@ +{ + "errcode": 0, + "errmsg": "ok", + "total_num": 1, + "account_list": [ + { + "delivery_id": "JTSD", + "shop_id": "5xxxxxxxxx8", + "acct_id": "6xxxxxxxxx6", + "status": 3, + "available": 0, + "allocated": 0, + "recycled": 0, + "cancel": 0, + "site_info": { + "delivery_id": "JTSD", + "site_status": 1, + "site_code": "2100002", + "site_name": "测试网点02", + "address": { + "city_code": "310100000", + "city_name": "上海市", + "detail_address": "上海上海市青浦区华新镇华隆路1777号", + "district_code": "310118000", + "district_name": "青浦区", + "province_code": "310000000", + "province_name": "上海", + "street_code": "", + "street_name": "" + }, + "contact": { + "mobile": "15xxxxxxxxx", + "name": "测试团队", + "phone": "15xxxxxxxxx" + }, + "site_fullname": "测试网点02" + } + } + ] +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECLogistics/EWaybill/Delivery/ChannelsECLogisticsEWaybillDeliveryGetRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECLogistics/EWaybill/Delivery/ChannelsECLogisticsEWaybillDeliveryGetRequest.json new file mode 100644 index 00000000..cb7f059a --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECLogistics/EWaybill/Delivery/ChannelsECLogisticsEWaybillDeliveryGetRequest.json @@ -0,0 +1,3 @@ +{ + "status": 3 +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECLogistics/EWaybill/Delivery/ChannelsECLogisticsEWaybillDeliveryGetResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECLogistics/EWaybill/Delivery/ChannelsECLogisticsEWaybillDeliveryGetResponse.json new file mode 100644 index 00000000..df9d7442 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECLogistics/EWaybill/Delivery/ChannelsECLogisticsEWaybillDeliveryGetResponse.json @@ -0,0 +1,48 @@ +{ + "errcode": 0, + "errmsg": "ok", + "shop_id": "50xxxxxxxx18", + "list": [ + { + "delivery_id": "JTSD", + "delivery_name": "极兔速递" + }, + { + "delivery_id": "STO", + "delivery_name": "申通快递" + }, + { + "delivery_id": "YTO", + "delivery_name": "圆通速递" + }, + { + "delivery_id": "YUNDA", + "delivery_name": "韵达速递" + }, + { + "delivery_id": "ZTO", + "delivery_name": "中通快递" + }, + { + "delivery_id": "SF", + "delivery_name": "顺丰速运" + }, + { + "delivery_id": "JD", + "delivery_name": "京东" + }, + { + "delivery_id": "EMS", + "delivery_name": "中国邮政" + }, + { + "delivery_id": "CNSD", + "delivery_name": "菜鸟速递(丹鸟)" + }, + { + "delivery_id": "DBKD", + "delivery_name": "德邦快递" + } + + ] +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECLogistics/EWaybill/Order/ChannelsECLogisticsEWaybillOrderCancelRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECLogistics/EWaybill/Order/ChannelsECLogisticsEWaybillOrderCancelRequest.json new file mode 100644 index 00000000..dcbc5bc9 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECLogistics/EWaybill/Order/ChannelsECLogisticsEWaybillOrderCancelRequest.json @@ -0,0 +1,5 @@ +{ + "ewaybill_order_id": "1212", + "delivery_id": "xxx", + "waybill_id": "xxxx" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECLogistics/EWaybill/Order/ChannelsECLogisticsEWaybillOrderCancelResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECLogistics/EWaybill/Order/ChannelsECLogisticsEWaybillOrderCancelResponse.json new file mode 100644 index 00000000..06c959c6 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECLogistics/EWaybill/Order/ChannelsECLogisticsEWaybillOrderCancelResponse.json @@ -0,0 +1,5 @@ +{ + "errcode": 0, + "errmsg": "ok", + "delivery_error_msg": "xxxx" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECLogistics/EWaybill/Order/ChannelsECLogisticsEWaybillOrderCreateRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECLogistics/EWaybill/Order/ChannelsECLogisticsEWaybillOrderCreateRequest.json new file mode 100644 index 00000000..76630394 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECLogistics/EWaybill/Order/ChannelsECLogisticsEWaybillOrderCreateRequest.json @@ -0,0 +1,49 @@ +{ + "ewaybill_order_id": "1111", + "delivery_id": "xxxx", + "site_code": "1111", + "ewaybill_acct_id": "1111", + "template_id": "xxx", + "sender": { + "name": "test", + "mobile": "1111", + "province": "静安区", + "city": "上海市", + "county": "静安区", + "street": "xxxxx", + "address": "xxxxxx" + }, + "receiver": { + "name": "test", + "mobile": "11111", + "province": "上海市", + "city": "上海市", + "county": "青浦区", + "street": "xxxx", + "address": "xxxxxxx" + }, + "ec_order_list": [ + { + "ec_order_id": 1111, + "goods_list": [ + { + "good_name": "电子资料书,", + "good_count": 1, + "product_id": 111, + "sku_id": 11 + } + ] + } + ], + "remark": "test", + "shop_id": "xxxx", + "return_address": { + "name": "test", + "mobile": "13212778355", + "province": "上海市", + "city": "上海市", + "county": "青浦区", + "street": "xxxx", + "address": "xxxxx" + } +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECLogistics/EWaybill/Order/ChannelsECLogisticsEWaybillOrderCreateResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECLogistics/EWaybill/Order/ChannelsECLogisticsEWaybillOrderCreateResponse.json new file mode 100644 index 00000000..15793c74 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECLogistics/EWaybill/Order/ChannelsECLogisticsEWaybillOrderCreateResponse.json @@ -0,0 +1,7 @@ +{ + "errcode": 0, + "errmsg": "ok", + "ewaybill_order_id": "111", + "waybill_id": "1212xzcxz", + "delivery_error_msg": "xxxx" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECLogistics/EWaybill/Order/ChannelsECLogisticsEWaybillOrderGetRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECLogistics/EWaybill/Order/ChannelsECLogisticsEWaybillOrderGetRequest.json new file mode 100644 index 00000000..e5ad6228 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECLogistics/EWaybill/Order/ChannelsECLogisticsEWaybillOrderGetRequest.json @@ -0,0 +1,3 @@ +{ + "ewaybill_order_id": "11111" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECLogistics/EWaybill/Order/ChannelsECLogisticsEWaybillOrderGetResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECLogistics/EWaybill/Order/ChannelsECLogisticsEWaybillOrderGetResponse.json new file mode 100644 index 00000000..4c2a9627 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECLogistics/EWaybill/Order/ChannelsECLogisticsEWaybillOrderGetResponse.json @@ -0,0 +1,52 @@ +{ + "errcode": 0, + "errmsg": "ok", + "order_info": { + "ewaybill_order_id": "1111", + "delivery_id": "xxxx", + "site_code": "1111", + "ewaybill_acct_id": "1111", + "sender": { + "name": "test", + "mobile": "1111", + "province": "静安区", + "city": "上海市", + "county": "静安区", + "street": "xxxxx", + "address": "xxxxxx" + }, + "receiver": { + "name": "test", + "mobile": "11111", + "province": "上海市", + "city": "上海市", + "county": "青浦区", + "street": "xxxx", + "address": "xxxxxxx" + }, + "ec_order_list": [ + { + "ec_order_id": 1111, + "goods_list": [ + { + "good_name": "电子资料书,", + "good_count": 1, + "product_id": 111, + "sku_id": 11 + } + ] + } + ], + "remark": "test", + "shop_id": "xxxx", + "waybill_id": "xxxx", + "status": 2, + "path_info": [ + { + "update_time": 11, + "status": 1, + "desc": "xxxx" + } + ] + } +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECLogistics/EWaybill/Order/ChannelsECLogisticsEWaybillOrderPrecreateRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECLogistics/EWaybill/Order/ChannelsECLogisticsEWaybillOrderPrecreateRequest.json new file mode 100644 index 00000000..2ebc1c78 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECLogistics/EWaybill/Order/ChannelsECLogisticsEWaybillOrderPrecreateRequest.json @@ -0,0 +1,38 @@ +{ + "delivery_id": "xxxx", + "site_code": "1111", + "ewaybill_acct_id": "1111", + "sender": { + "name": "test", + "mobile": "1111", + "province": "静安区", + "city": "上海市", + "county": "静安区", + "street": "xxxxx", + "address": "xxxxxx" + }, + "receiver": { + "name": "test", + "mobile": "11111", + "province": "上海市", + "city": "上海市", + "county": "青浦区", + "street": "xxxx", + "address": "xxxxxxx" + }, + "ec_order_list": [ + { + "ec_order_id": 1111, + "goods_list": [ + { + "good_name": "电子资料书,", + "good_count": 1, + "product_id": 111, + "sku_id": 11 + } + ] + } + ], + "remark": "test", + "shop_id": "xxxx" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECLogistics/EWaybill/Order/ChannelsECLogisticsEWaybillOrderPrecreateResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECLogistics/EWaybill/Order/ChannelsECLogisticsEWaybillOrderPrecreateResponse.json new file mode 100644 index 00000000..07215bf0 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECLogistics/EWaybill/Order/ChannelsECLogisticsEWaybillOrderPrecreateResponse.json @@ -0,0 +1,5 @@ +{ + "errcode": 0, + "errmsg": "ok", + "ewaybill_order_id": "111" +}