diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteChannelsExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteChannelsExtensions.cs index 72abbe1c..f7566814 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteChannelsExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteChannelsExtensions.cs @@ -3024,6 +3024,100 @@ namespace SKIT.FlurlHttpClient.Wechat.Api #endregion #endregion + #region ECQIC + /// + /// 异步调用 [GET] /channels/ec/qic/inspect/config/get 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteChannelsECQICInspectConfigGetAsync(this WechatApiClient client, Models.ChannelsECQICInspectConfigGetRequest 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 + .CreateFlurlRequest(request, HttpMethod.Get, "channels", "ec", "qic", "inspect", "config", "get") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + } + + /// + /// 异步调用 [GET] /channels/ec/qic/inspect/submitconfig/get 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteChannelsECQICInspectSubmitConfigGetAsync(this WechatApiClient client, Models.ChannelsECQICInspectSubmitConfigGetRequest 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 + .CreateFlurlRequest(request, HttpMethod.Get, "channels", "ec", "qic", "inspect", "submitconfig", "get") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + } + + /// + /// 异步调用 [POST] /channels/ec/qic/inspect/code/print 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteChannelsECQICInspectCodePrintAsync(this WechatApiClient client, Models.ChannelsECQICInspectCodePrintRequest 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 + .CreateFlurlRequest(request, HttpMethod.Post, "channels", "ec", "qic", "inspect", "code", "print") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + } + + /// + /// 异步调用 [POST] /channels/ec/qic/inspect/submit 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteChannelsECQICInspectSubmitAsync(this WechatApiClient client, Models.ChannelsECQICInspectSubmitRequest 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 + .CreateFlurlRequest(request, HttpMethod.Post, "channels", "ec", "qic", "inspect", "submit") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + } + #endregion + #region ECSharer /// /// 异步调用 [POST] /channels/ec/sharer/bind 接口。 diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECQIC/ChannelsECQICInspectCodePrintRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECQIC/ChannelsECQICInspectCodePrintRequest.cs new file mode 100644 index 00000000..8e3d82a8 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECQIC/ChannelsECQICInspectCodePrintRequest.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /channels/ec/qic/inspect/code/print 接口的请求。 + /// + public class ChannelsECQICInspectCodePrintRequest : WechatApiRequest, IInferable + { + /// + /// 获取或设置订单 ID。 + /// + [Newtonsoft.Json.JsonProperty("order_id")] + [System.Text.Json.Serialization.JsonPropertyName("order_id")] + public string OrderId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECQIC/ChannelsECQICInspectCodePrintResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECQIC/ChannelsECQICInspectCodePrintResponse.cs new file mode 100644 index 00000000..03ec2e07 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECQIC/ChannelsECQICInspectCodePrintResponse.cs @@ -0,0 +1,209 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /channels/ec/qic/inspect/code/print 接口的响应。 + /// + public class ChannelsECQICInspectCodePrintResponse : WechatApiResponse + { + public static class Types + { + public class Data + { + public static class Types + { + public class Box + { + /// + /// 获取或设置包装盒 ID。 + /// + [Newtonsoft.Json.JsonProperty("boxId")] + [System.Text.Json.Serialization.JsonPropertyName("boxId")] + public int Id { get; set; } + + /// + /// 获取或设置包装盒名称。 + /// + [Newtonsoft.Json.JsonProperty("boxName")] + [System.Text.Json.Serialization.JsonPropertyName("boxName")] + public string Name { get; set; } = default!; + + /// + /// 获取或设置包装盒数量。 + /// + [Newtonsoft.Json.JsonProperty("boxNum")] + [System.Text.Json.Serialization.JsonPropertyName("boxNum")] + public int Count { get; set; } + } + } + + /// + /// 获取或设置视频号店铺 AppId。 + /// + [Newtonsoft.Json.JsonProperty("channelAppId")] + [System.Text.Json.Serialization.JsonPropertyName("channelAppId")] + public string ChannelAppId { get; set; } = default!; + + /// + /// 获取或设置商家名称。 + /// + [Newtonsoft.Json.JsonProperty("merchantName")] + [System.Text.Json.Serialization.JsonPropertyName("merchantName")] + public string MerchantName { get; set; } = default!; + + /// + /// 获取或设置快递公司 ID。 + /// + [Newtonsoft.Json.JsonProperty("deliveryId")] + [System.Text.Json.Serialization.JsonPropertyName("deliveryId")] + public string DeliveryId { get; set; } = default!; + + /// + /// 获取或设置快递公司名称。 + /// + [Newtonsoft.Json.JsonProperty("deliveryName")] + [System.Text.Json.Serialization.JsonPropertyName("deliveryName")] + public string DeliveryName { get; set; } = default!; + + /// + /// 获取或设置备用快递公司 ID。 + /// + [Newtonsoft.Json.JsonProperty("backupDeliveryId")] + [System.Text.Json.Serialization.JsonPropertyName("backupDeliveryId")] + public string? BackupDeliveryId { get; set; } + + /// + /// 获取或设置备用快递公司名称。 + /// + [Newtonsoft.Json.JsonProperty("backupDeliveryName")] + [System.Text.Json.Serialization.JsonPropertyName("backupDeliveryName")] + public string? BackupDeliveryName { get; set; } + + /// + /// 获取或设置商品镶嵌材质。 + /// + [Newtonsoft.Json.JsonProperty("embedGoodsMaterial")] + [System.Text.Json.Serialization.JsonPropertyName("embedGoodsMaterial")] + public string? EmbedGoodsMaterial { get; set; } + + /// + /// 获取或设置是否合并发货。 + /// + [Newtonsoft.Json.JsonProperty("expressMerge")] + [System.Text.Json.Serialization.JsonPropertyName("expressMerge")] + public bool IsExpressMerged { get; set; } + + /// + /// 获取或设置商品描述。 + /// + [Newtonsoft.Json.JsonProperty("goodsDesc")] + [System.Text.Json.Serialization.JsonPropertyName("goodsDesc")] + public string GoodsDescription { get; set; } = default!; + + /// + /// 获取或设置商品主材质。 + /// + [Newtonsoft.Json.JsonProperty("goodsMainMaterial")] + [System.Text.Json.Serialization.JsonPropertyName("goodsMainMaterial")] + public string GoodsMainMaterial { get; set; } = default!; + + /// + /// 获取或设置商品配件材质。 + /// + [Newtonsoft.Json.JsonProperty("goodsPartsMaterial")] + [System.Text.Json.Serialization.JsonPropertyName("goodsPartsMaterial")] + public string? GoodsPartsMaterial { get; set; } + + /// + /// 获取或设置商品名称。 + /// + [Newtonsoft.Json.JsonProperty("goodsName")] + [System.Text.Json.Serialization.JsonPropertyName("goodsName")] + public string GoodsName { get; set; } = default!; + + /// + /// 获取或设置商品数量。 + /// + [Newtonsoft.Json.JsonProperty("goodsNum")] + [System.Text.Json.Serialization.JsonPropertyName("goodsNum")] + public int GoodsCount { get; set; } + + /// + /// 获取或设置质检仓 ID。 + /// + [Newtonsoft.Json.JsonProperty("inspectBaseId")] + [System.Text.Json.Serialization.JsonPropertyName("inspectBaseId")] + public string WarehouseId { get; set; } = default!; + + /// + /// 获取或设置质检仓名称。 + /// + [Newtonsoft.Json.JsonProperty("inspectBaseName")] + [System.Text.Json.Serialization.JsonPropertyName("inspectBaseName")] + public string WarehouseName { get; set; } = default!; + + /// + /// 获取或设置质检码。 + /// + [Newtonsoft.Json.JsonProperty("inspectCode")] + [System.Text.Json.Serialization.JsonPropertyName("inspectCode")] + public string InspectCode { get; set; } = default!; + + /// + /// 获取或设置质检机构 ID。 + /// + [Newtonsoft.Json.JsonProperty("inspectOrgId")] + [System.Text.Json.Serialization.JsonPropertyName("inspectOrgId")] + public string InspectOrganizationId { get; set; } = default!; + + /// + /// 获取或设置质检机构名称。 + /// + [Newtonsoft.Json.JsonProperty("inspectOrgName")] + [System.Text.Json.Serialization.JsonPropertyName("inspectOrgName")] + public string InspectOrganizationName { get; set; } = default!; + + /// + /// 获取或设置质检机构简称。 + /// + [Newtonsoft.Json.JsonProperty("inspectOrgShortName")] + [System.Text.Json.Serialization.JsonPropertyName("inspectOrgShortName")] + public string InspectOrganizationShortName { get; set; } = default!; + + /// + /// 获取或设置包装盒列表。 + /// + [Newtonsoft.Json.JsonProperty("boxDTOList")] + [System.Text.Json.Serialization.JsonPropertyName("boxDTOList")] + public Types.Box[]? BoxList { get; set; } = default!; + + /// + /// 获取或设置订单号。 + /// + [Newtonsoft.Json.JsonProperty("orderId")] + [System.Text.Json.Serialization.JsonPropertyName("orderId")] + public string OrderId { get; set; } = default!; + + /// + /// 获取或设置是否加急订单。 + /// + [Newtonsoft.Json.JsonProperty("urgentOrder")] + [System.Text.Json.Serialization.JsonPropertyName("urgentOrder")] + public bool IsUrgentOrder { get; set; } + + /// + /// 获取或设置经过 Base64 编码的打印模板数据。 + /// + [Newtonsoft.Json.JsonProperty("printInfo")] + [System.Text.Json.Serialization.JsonPropertyName("printInfo")] + public string EncodingPrintData { get; set; } = default!; + } + } + + /// + /// 获取或设置返回数据。 + /// + [Newtonsoft.Json.JsonProperty("data")] + [System.Text.Json.Serialization.JsonPropertyName("data")] + public Types.Data Data { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECQIC/ChannelsECQICInspectConfigGetRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECQIC/ChannelsECQICInspectConfigGetRequest.cs new file mode 100644 index 00000000..8273fd5b --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECQIC/ChannelsECQICInspectConfigGetRequest.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [GET] /channels/ec/qic/inspect/config/get 接口的请求。 + /// + public class ChannelsECQICInspectConfigGetRequest : WechatApiRequest, IInferable + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECQIC/ChannelsECQICInspectConfigGetResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECQIC/ChannelsECQICInspectConfigGetResponse.cs new file mode 100644 index 00000000..f14a83df --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECQIC/ChannelsECQICInspectConfigGetResponse.cs @@ -0,0 +1,104 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [GET] /channels/ec/qic/inspect/config/get 接口的响应。 + /// + public class ChannelsECQICInspectConfigGetResponse : WechatApiResponse + { + public static class Types + { + public class InspectConfig + { + 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("detail")] + [System.Text.Json.Serialization.JsonPropertyName("detail")] + public string Detail { get; set; } = default!; + + /// + /// 获取或设置联系人。 + /// + [Newtonsoft.Json.JsonProperty("contact_name")] + [System.Text.Json.Serialization.JsonPropertyName("contact_name")] + public string ContactName { get; set; } = default!; + + /// + /// 获取或设置联系电话。 + /// + [Newtonsoft.Json.JsonProperty("contact_phone")] + [System.Text.Json.Serialization.JsonPropertyName("contact_phone")] + public string ContactPhoneNumber { get; set; } = default!; + } + } + + /// + /// 获取或设置质检仓 ID。 + /// + [Newtonsoft.Json.JsonProperty("warehouse_id")] + [System.Text.Json.Serialization.JsonPropertyName("warehouse_id")] + public string WarehouseId { get; set; } = default!; + + /// + /// 获取或设置质检仓名称。 + /// + [Newtonsoft.Json.JsonProperty("warehouse_name")] + [System.Text.Json.Serialization.JsonPropertyName("warehouse_name")] + public string WarehouseName { get; set; } = default!; + + /// + /// 获取或设置质检仓地址。 + /// + [Newtonsoft.Json.JsonProperty("warehouse_addr")] + [System.Text.Json.Serialization.JsonPropertyName("warehouse_addr")] + public string WarehouseAddress { get; set; } = default!; + + /// + /// 获取或设置发货地址信息。 + /// + [Newtonsoft.Json.JsonProperty("delivery_address")] + [System.Text.Json.Serialization.JsonPropertyName("delivery_address")] + public Types.Address DeliveryReceiver { get; set; } = default!; + + /// + /// 获取或设置退货地址信息。 + /// + [Newtonsoft.Json.JsonProperty("return_address")] + [System.Text.Json.Serialization.JsonPropertyName("return_address")] + public Types.Address ReturnAddress { get; set; } = default!; + } + } + + /// + /// 获取或设置质检仓配置信息。 + /// + [Newtonsoft.Json.JsonProperty("inspect_config")] + [System.Text.Json.Serialization.JsonPropertyName("inspect_config")] + public Types.InspectConfig InspectConfig { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECQIC/ChannelsECQICInspectSubmitConfigGetRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECQIC/ChannelsECQICInspectSubmitConfigGetRequest.cs new file mode 100644 index 00000000..ed389d3e --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECQIC/ChannelsECQICInspectSubmitConfigGetRequest.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [GET] /channels/ec/qic/inspect/submitconfig/get 接口的请求。 + /// + public class ChannelsECQICInspectSubmitConfigGetRequest : WechatApiRequest, IInferable + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECQIC/ChannelsECQICInspectSubmitConfigGetResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECQIC/ChannelsECQICInspectSubmitConfigGetResponse.cs new file mode 100644 index 00000000..7d5a4f3e --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECQIC/ChannelsECQICInspectSubmitConfigGetResponse.cs @@ -0,0 +1,154 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [GET] /channels/ec/qic/inspect/submitconfig/get 接口的响应。 + /// + public class ChannelsECQICInspectSubmitConfigGetResponse : WechatApiResponse + { + public static class Types + { + public class SubmitConfig + { + public static class Types + { + public class Delivery + { + public static class Types + { + public class DeliveryProduct + { + public static class Types + { + public class Insure + { + /// + /// 获取或设置保价类型 ID。 + /// + [Newtonsoft.Json.JsonProperty("id")] + [System.Text.Json.Serialization.JsonPropertyName("id")] + public string Id { get; set; } = default!; + + /// + /// 获取或设置保价类型名称。 + /// + [Newtonsoft.Json.JsonProperty("name")] + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } = default!; + + /// + /// 获取或设置上限类型。 + /// + [Newtonsoft.Json.JsonProperty("upper_limit_type")] + [System.Text.Json.Serialization.JsonPropertyName("upper_limit_type")] + public int UpperLimitType { get; set; } + + /// + /// 获取或设置上限金额(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("upper_limit_amount")] + [System.Text.Json.Serialization.JsonPropertyName("upper_limit_amount")] + public int? UpperLimitAmount { get; set; } + } + } + + /// + /// 获取或设置快递产品 ID。 + /// + [Newtonsoft.Json.JsonProperty("id")] + [System.Text.Json.Serialization.JsonPropertyName("id")] + public int Id { get; set; } + + /// + /// 获取或设置快递产品名称。 + /// + [Newtonsoft.Json.JsonProperty("name")] + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } = default!; + + /// + /// 获取或设置保价类型。 + /// + [Newtonsoft.Json.JsonProperty("enable_insure")] + [System.Text.Json.Serialization.JsonPropertyName("enable_insure")] + public int Insure { get; set; } + + /// + /// 获取或设置保价类型列表。 + /// + [Newtonsoft.Json.JsonProperty("insure_type_list")] + [System.Text.Json.Serialization.JsonPropertyName("insure_type_list")] + public Types.Insure[] InsureList { get; set; } = default!; + } + } + + /// + /// 获取或设置快递公司 ID。 + /// + [Newtonsoft.Json.JsonProperty("id")] + [System.Text.Json.Serialization.JsonPropertyName("id")] + public string Id { get; set; } = default!; + + /// + /// 获取或设置快递公司名称。 + /// + [Newtonsoft.Json.JsonProperty("name")] + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } = default!; + + /// + /// 获取或设置快递产品列表。 + /// + [Newtonsoft.Json.JsonProperty("delivery_products")] + [System.Text.Json.Serialization.JsonPropertyName("delivery_products")] + public Types.DeliveryProduct[] DeliveryProductList { get; set; } = default!; + } + + public class InspectOrganization + { + /// + /// 获取或设置质检机构 ID。 + /// + [Newtonsoft.Json.JsonProperty("id")] + [System.Text.Json.Serialization.JsonPropertyName("id")] + public string Id { get; set; } = default!; + + /// + /// 获取或设置质检机构名称。 + /// + [Newtonsoft.Json.JsonProperty("name")] + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } = default!; + } + } + + /// + /// 获取或设置快递公司列表。 + /// + [Newtonsoft.Json.JsonProperty("delivery_list")] + [System.Text.Json.Serialization.JsonPropertyName("delivery_list")] + public Types.Delivery[] DeliveryList { get; set; } = default!; + + /// + /// 获取或设置质检机构信息。 + /// + [Newtonsoft.Json.JsonProperty("inspect_org_list")] + [System.Text.Json.Serialization.JsonPropertyName("inspect_org_list")] + public Types.InspectOrganization[] InspectOrganizationList { get; set; } = default!; + + /// + /// 获取或设置资费标准 URL。 + /// + [Newtonsoft.Json.JsonProperty("charge_url")] + [System.Text.Json.Serialization.JsonPropertyName("charge_url")] + public string? ChargeUrl { get; set; } + } + } + + /// + /// 获取或设置送检配置模板信息。 + /// + [Newtonsoft.Json.JsonProperty("submit_config")] + [System.Text.Json.Serialization.JsonPropertyName("submit_config")] + public Types.SubmitConfig SubmitConfig { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECQIC/ChannelsECQICInspectSubmitRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECQIC/ChannelsECQICInspectSubmitRequest.cs new file mode 100644 index 00000000..425f147a --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECQIC/ChannelsECQICInspectSubmitRequest.cs @@ -0,0 +1,167 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /channels/ec/qic/inspect/submit 接口的请求。 + /// + public class ChannelsECQICInspectSubmitRequest : WechatApiRequest, IInferable + { + public static class Types + { + public class InspectInfo + { + public static class Types + { + public class Box + { + /// + /// 获取或设置包装盒 ID。 + /// + [Newtonsoft.Json.JsonProperty("boxId")] + [System.Text.Json.Serialization.JsonPropertyName("boxId")] + public int Id { get; set; } + + /// + /// 获取或设置包装盒名称。 + /// + [Newtonsoft.Json.JsonProperty("boxName")] + [System.Text.Json.Serialization.JsonPropertyName("boxName")] + public string Name { get; set; } = string.Empty; + + /// + /// 获取或设置包装盒数量。 + /// + [Newtonsoft.Json.JsonProperty("boxNum")] + [System.Text.Json.Serialization.JsonPropertyName("boxNum")] + public int Count { 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("backup_delivery_id")] + [System.Text.Json.Serialization.JsonPropertyName("backup_delivery_id")] + public string? BackupDeliveryId { get; set; } + + /// + /// 获取或设置快递公司产品 ID。 + /// + [Newtonsoft.Json.JsonProperty("delivery_product_id")] + [System.Text.Json.Serialization.JsonPropertyName("delivery_product_id")] + public int? DeliveryProductId { get; set; } + + /// + /// 获取或设置备用快递公司产品 ID。 + /// + [Newtonsoft.Json.JsonProperty("backup_delivery_product_id")] + [System.Text.Json.Serialization.JsonPropertyName("backup_delivery_product_id")] + public int? BackupDeliveryProductId { get; set; } + + /// + /// 获取或设置是否物流保价。 + /// + [Newtonsoft.Json.JsonProperty("express_insure")] + [System.Text.Json.Serialization.JsonPropertyName("express_insure")] + public bool EnableExpressInsure { get; set; } + + /// + /// 获取或设置保价金额(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("express_insure_amount")] + [System.Text.Json.Serialization.JsonPropertyName("express_insure_amount")] + public int? ExpressInsureAmount { get; set; } + + /// + /// 获取或设置保价类型 ID。 + /// + [Newtonsoft.Json.JsonProperty("delivery_insure_id")] + [System.Text.Json.Serialization.JsonPropertyName("delivery_insure_id")] + public string? DeliveryInsureId { get; set; } + + /// + /// 获取或设置备用是否物流保价。 + /// + [Newtonsoft.Json.JsonProperty("backup_express_insure")] + [System.Text.Json.Serialization.JsonPropertyName("backup_express_insure")] + public bool BackupEnableExpressInsure { get; set; } + + /// + /// 获取或设置备用保价金额(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("backup_express_insure_amount")] + [System.Text.Json.Serialization.JsonPropertyName("backup_express_insure_amount")] + public int? BackupExpressInsureAmount { get; set; } + + /// + /// 获取或设置备用保价类型 ID。 + /// + [Newtonsoft.Json.JsonProperty("backup_delivery_insure_id")] + [System.Text.Json.Serialization.JsonPropertyName("backup_delivery_insure_id")] + public string? BackupDeliveryInsureId { get; set; } + + /// + /// 获取或设置是否合并发货。 + /// + [Newtonsoft.Json.JsonProperty("express_merge")] + [System.Text.Json.Serialization.JsonPropertyName("express_merge")] + public bool IsExpressMerged { get; set; } + + /// + /// 获取或设置售后拦截策略。 + /// + [Newtonsoft.Json.JsonProperty("refund_intercept")] + [System.Text.Json.Serialization.JsonPropertyName("refund_intercept")] + public int RefundInterceptType { get; set; } + + /// + /// 获取或设置质检仓名称。 + /// + [Newtonsoft.Json.JsonProperty("warehouse_name")] + [System.Text.Json.Serialization.JsonPropertyName("warehouse_name")] + public string WarehouseName { get; set; } = string.Empty; + + /// + /// 获取或设置质检仓地址。 + /// + [Newtonsoft.Json.JsonProperty("warehouse_addr")] + [System.Text.Json.Serialization.JsonPropertyName("warehouse_addr")] + public string WarehouseAddress { get; set; } = string.Empty; + + /// + /// 获取或设置质检机构 ID。 + /// + [Newtonsoft.Json.JsonProperty("inspect_org_id")] + [System.Text.Json.Serialization.JsonPropertyName("inspect_org_id")] + public string InspectOrganizationId { get; set; } = string.Empty; + + /// + /// 获取或设置质检机构名称。 + /// + [Newtonsoft.Json.JsonProperty("inspect_org_name")] + [System.Text.Json.Serialization.JsonPropertyName("inspect_org_name")] + public string InspectOrganizationName { get; set; } = string.Empty; + } + } + + /// + /// 获取或设置订单 ID。 + /// + [Newtonsoft.Json.JsonProperty("order_id")] + [System.Text.Json.Serialization.JsonPropertyName("order_id")] + public string OrderId { get; set; } = string.Empty; + + /// + /// 获取或设置质检信息。 + /// + [Newtonsoft.Json.JsonProperty("inspect_info")] + [System.Text.Json.Serialization.JsonPropertyName("inspect_info")] + public Types.InspectInfo InspectInfo { get; set; } = new Types.InspectInfo(); + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECQIC/ChannelsECQICInspectSubmitResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECQIC/ChannelsECQICInspectSubmitResponse.cs new file mode 100644 index 00000000..f14d6cf5 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECQIC/ChannelsECQICInspectSubmitResponse.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /channels/ec/qic/inspect/submit 接口的响应。 + /// + public class ChannelsECQICInspectSubmitResponse : WechatApiResponse + { + } +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECQIC/ChannelsECQICInspectCodePrintRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECQIC/ChannelsECQICInspectCodePrintRequest.json new file mode 100644 index 00000000..aba7acb4 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECQIC/ChannelsECQICInspectCodePrintRequest.json @@ -0,0 +1,3 @@ +{ + "order_id": "37423523451235145" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECQIC/ChannelsECQICInspectCodePrintResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECQIC/ChannelsECQICInspectCodePrintResponse.json new file mode 100644 index 00000000..dc76336f --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECQIC/ChannelsECQICInspectCodePrintResponse.json @@ -0,0 +1,35 @@ +{ + "errcode": 0, + "errmsg": "ok", + "data": { + "backupDeliveryId": "g6qUCP", + "backupDeliveryName": "HrFbDU", + "boxDTOList": [ + { + "boxId": 22415, + "boxName": "z&5loW", + "boxNum": 75172 + } + ], + "channelAppId": "t0pu", + "deliveryId": "hCX!2T", + "deliveryName": "CYNPu", + "embedGoodsMaterial": "FW8$Q", + "expressMerge": true, + "goodsDesc": "CQD(Nw3", + "goodsMainMaterial": "IW%u4h(", + "goodsName": "rM%&d", + "goodsNum": 87918, + "goodsPartsMaterial": "BZWu", + "inspectBaseId": "X(!vSw", + "inspectBaseName": "CDySkg", + "inspectCode": "3Cqm", + "inspectOrgId": "i8*h", + "inspectOrgName": "T!MMu", + "inspectOrgShortName": "UNTDK", + "merchantName": "Y)fA", + "orderId": "3FH", + "urgentOrder": true, + "printInfo": "JTdCJTIycHJpbnREY" + } +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECQIC/ChannelsECQICInspectConfigGetResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECQIC/ChannelsECQICInspectConfigGetResponse.json new file mode 100644 index 00000000..5de4fd98 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECQIC/ChannelsECQICInspectConfigGetResponse.json @@ -0,0 +1,25 @@ +{ + "errcode": 0, + "errmsg": "ok", + "inspect_config": { + "warehouse_id": "006", + "delivery_address": { + "contact_name": "ABC2", + "contact_phone": "13566667777", + "province": "湖北省", + "city": "武汉市", + "county": "江夏区", + "detail": "江夏大道1号" + }, + "return_address": { + "contact_name": "老钱12", + "contact_phone": "18535816726", + "province": "北京市", + "city": "北京市", + "county": "大兴区", + "detail": "亦庄经济开发区京东总部4号楼" + }, + "warehouse_name": "海南CS", + "warehouse_addr": "海南省海南质检机构地址333333221112222" + } +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECQIC/ChannelsECQICInspectSubmitConfigGetResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECQIC/ChannelsECQICInspectSubmitConfigGetResponse.json new file mode 100644 index 00000000..c97076b3 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECQIC/ChannelsECQICInspectSubmitConfigGetResponse.json @@ -0,0 +1,52 @@ +{ + "errcode": 0, + "errmsg": "ok", + "submit_config": { + "delivery_list": [ + { + "id": "STO", + "name": "申通快递", + "delivery_products": [ + { + "id": 1, + "name": "申通快递", + "enable_insure": 2, + "insure_type_list": [] + } + ] + }, + { + "id": "SF", + "name": "顺丰速运", + "delivery_products": [ + { + "id": 2, + "name": "顺丰标快", + "enable_insure": 1, + "insure_type_list": [ + { + "id": "INSURE", + "name": "基础保", + "upper_limit_type": 1, + "upper_limit_amount": 1000 + } + ] + }, + { + "id": 247, + "name": "顺丰电商标快", + "enable_insure": 2, + "insure_type_list": [] + } + ] + } + ], + "inspect_org_list": [ + { + "id": "001", + "name": "中质" + } + ], + "charge_url": "" + } +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECQIC/ChannelsECQICInspectSubmitRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECQIC/ChannelsECQICInspectSubmitRequest.json new file mode 100644 index 00000000..60b39e4a --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECQIC/ChannelsECQICInspectSubmitRequest.json @@ -0,0 +1,19 @@ +{ + "order_id": "37423523451235145", + "inspect_info": { + "delivery_id": "SF", + "backup_delivery_id": "STO", + "delivery_product_id": 2, + "backup_delivery_product_id": 1, + "express_insure": true, + "express_insure_amount": 999, + "delivery_insure_id": "INSURE", + "backup_express_insure": false, + "express_merge": true, + "refund_intercept": 0, + "inspect_org_id": "001", + "inspect_org_name": "中质", + "warehouse_name": "xxx", + "warehouse_addr": "kklmp" + } +}