From e46bdc919f70e43b8064ec6c24e60cc14edcc193 Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Thu, 10 Jun 2021 15:46:46 +0800 Subject: [PATCH] =?UTF-8?q?feat(wxapi):=20=E6=96=B0=E5=A2=9E=E5=B0=8F?= =?UTF-8?q?=E7=A8=8B=E5=BA=8F=E8=87=AA=E5=AE=9A=E4=B9=89=E4=BA=A4=E6=98=93?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=E7=9B=B8=E5=85=B3=20API=20=E5=B0=81=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/WechatApi/README.md | 4 +- .../OpenProductAccountRegisterEvent.cs | 34 + .../OpenProduct/OpenProductBrandAuditEvent.cs | 34 + .../OpenProductCategoryAuditEvent.cs | 58 ++ .../OpenProduct/OpenProductSPUAuditEvent.cs | 58 ++ .../WechatApiClientExecuteShopExtensions.cs | 670 ++++++++++++++++++ .../Account/ShopAccountGetBrandListRequest.cs | 12 + .../ShopAccountGetBrandListResponse.cs | 38 + .../ShopAccountGetCategoryListRequest.cs | 12 + .../ShopAccountGetCategoryListResponse.cs | 25 + .../Shop/Account/ShopAccountGetInfoRequest.cs | 12 + .../Account/ShopAccountGetInfoResponse.cs | 38 + .../Account/ShopAccountUpdateInfoRequest.cs | 25 + .../Account/ShopAccountUpdateInfoResponse.cs | 12 + .../Shop/Aftersale/ShopAftersaleAddRequest.cs | 105 +++ .../Aftersale/ShopAftersaleAddResponse.cs | 12 + .../Shop/Aftersale/ShopAftersaleGetRequest.cs | 32 + .../Aftersale/ShopAftersaleGetResponse.cs | 116 +++ .../Aftersale/ShopAftersaleUpdateRequest.cs | 48 ++ .../Aftersale/ShopAftersaleUpdateResponse.cs | 12 + .../Shop/Audit/ShopAuditAuditBrandRequest.cs | 153 ++++ .../Shop/Audit/ShopAuditAuditBrandResponse.cs | 18 + .../Audit/ShopAuditAuditCategoryRequest.cs | 72 ++ .../Audit/ShopAuditAuditCategoryResponse.cs | 12 + .../ShopAuditGetMiniAppCertificateRequest.cs | 18 + .../ShopAuditGetMiniAppCertificateResponse.cs | 90 +++ .../Shop/Audit/ShopAuditResultRequest.cs | 18 + .../Shop/Audit/ShopAuditResultResponse.cs | 45 ++ .../Shop/Category/ShopCategoryGetRequest.cs | 12 + .../Shop/Category/ShopCategoryGetResponse.cs | 94 +++ .../ShopDeliveryGetCompanyListRequest.cs | 12 + .../ShopDeliveryGetCompanyListResponse.cs | 48 ++ .../Delivery/ShopDeliveryReceiveRequest.cs | 32 + .../Delivery/ShopDeliveryReceiveResponse.cs | 12 + .../Shop/Delivery/ShopDeliverySendRequest.cs | 68 ++ .../Shop/Delivery/ShopDeliverySendResponse.cs | 12 + .../Models/Shop/Order/ShopOrderAddRequest.cs | 292 ++++++++ .../Models/Shop/Order/ShopOrderAddResponse.cs | 61 ++ .../Models/Shop/Order/ShopOrderGetRequest.cs | 32 + .../Models/Shop/Order/ShopOrderGetResponse.cs | 292 ++++++++ .../Models/Shop/Order/ShopOrderPayRequest.cs | 62 ++ .../Models/Shop/Order/ShopOrderPayResponse.cs | 12 + .../Shop/Order/ShopSceneCheckRequest.cs | 18 + .../Shop/Order/ShopSceneCheckResponse.cs | 20 + .../Shop/Register/ShopRegisterApplyRequest.cs | 12 + .../Register/ShopRegisterApplyResponse.cs | 12 + .../Shop/Register/ShopRegisterCheckRequest.cs | 12 + .../Register/ShopRegisterCheckResponse.cs | 58 ++ .../Models/Shop/SPU/ShopSPUAddRequest.cs | 164 +++++ .../Models/Shop/SPU/ShopSPUAddResponse.cs | 51 ++ .../Shop/SPU/ShopSPUDeleteAuditRequest.cs | 12 + .../Shop/SPU/ShopSPUDeleteAuditResponse.cs | 12 + .../Models/Shop/SPU/ShopSPUDeleteRequest.cs | 25 + .../Models/Shop/SPU/ShopSPUDeleteResponse.cs | 12 + .../Shop/SPU/ShopSPUDelistingRequest.cs | 12 + .../Shop/SPU/ShopSPUDelistingResponse.cs | 12 + .../Models/Shop/SPU/ShopSPUGetListRequest.cs | 77 ++ .../Models/Shop/SPU/ShopSPUGetListResponse.cs | 32 + .../Models/Shop/SPU/ShopSPUGetRequest.cs | 34 + .../Models/Shop/SPU/ShopSPUGetResponse.cs | 278 ++++++++ .../Models/Shop/SPU/ShopSPUListingRequest.cs | 25 + .../Models/Shop/SPU/ShopSPUListingResponse.cs | 12 + .../Models/Shop/SPU/ShopSPUUpdateRequest.cs | 103 +++ .../Models/Shop/SPU/ShopSPUUpdateResponse.cs | 38 + .../Models/Shop/ShopImageUploadRequest.cs | 18 + .../Models/Shop/ShopImageUploadResponse.cs | 31 + 66 files changed, 3902 insertions(+), 2 deletions(-) create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Events/OpenProduct/OpenProductAccountRegisterEvent.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Events/OpenProduct/OpenProductBrandAuditEvent.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Events/OpenProduct/OpenProductCategoryAuditEvent.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Events/OpenProduct/OpenProductSPUAuditEvent.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteShopExtensions.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Account/ShopAccountGetBrandListRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Account/ShopAccountGetBrandListResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Account/ShopAccountGetCategoryListRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Account/ShopAccountGetCategoryListResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Account/ShopAccountGetInfoRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Account/ShopAccountGetInfoResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Account/ShopAccountUpdateInfoRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Account/ShopAccountUpdateInfoResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Aftersale/ShopAftersaleAddRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Aftersale/ShopAftersaleAddResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Aftersale/ShopAftersaleGetRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Aftersale/ShopAftersaleGetResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Aftersale/ShopAftersaleUpdateRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Aftersale/ShopAftersaleUpdateResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Audit/ShopAuditAuditBrandRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Audit/ShopAuditAuditBrandResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Audit/ShopAuditAuditCategoryRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Audit/ShopAuditAuditCategoryResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Audit/ShopAuditGetMiniAppCertificateRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Audit/ShopAuditGetMiniAppCertificateResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Audit/ShopAuditResultRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Audit/ShopAuditResultResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Category/ShopCategoryGetRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Category/ShopCategoryGetResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Delivery/ShopDeliveryGetCompanyListRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Delivery/ShopDeliveryGetCompanyListResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Delivery/ShopDeliveryReceiveRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Delivery/ShopDeliveryReceiveResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Delivery/ShopDeliverySendRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Delivery/ShopDeliverySendResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Order/ShopOrderAddRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Order/ShopOrderAddResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Order/ShopOrderGetRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Order/ShopOrderGetResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Order/ShopOrderPayRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Order/ShopOrderPayResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Order/ShopSceneCheckRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Order/ShopSceneCheckResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Register/ShopRegisterApplyRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Register/ShopRegisterApplyResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Register/ShopRegisterCheckRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Register/ShopRegisterCheckResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUAddRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUAddResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUDeleteAuditRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUDeleteAuditResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUDeleteRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUDeleteResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUDelistingRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUDelistingResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUGetListRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUGetListResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUGetRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUGetResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUListingRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUListingResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUUpdateRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUUpdateResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/ShopImageUploadRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/ShopImageUploadResponse.cs diff --git a/docs/WechatApi/README.md b/docs/WechatApi/README.md index c7599cc2..3b9eec70 100644 --- a/docs/WechatApi/README.md +++ b/docs/WechatApi/README.md @@ -57,7 +57,7 @@ | √ | 小程序搜索 | 小程序 | | | √ | 服务市场 | 小程序 | | | √ | 生物认证 | 小程序 | | - | × | 行业能力乘车码 | 小程序 | _开发中_ | + | × | 行业能力:乘车码 | 小程序 | _开发中_ | | √ | 城市服务 | 小程序 | | | √ | 虚拟支付 | 小游戏 | | | √ | 开放数据 | 小游戏 | | @@ -81,7 +81,7 @@ | √ | 优惠券管理 | 小商店 | | | √ | 店铺管理 | 小商店 | | | √ | 商家地址管理 | 小商店 | | - | × | 自定义交易组件 | 小商店 | _开发中_ | + | √ | 自定义交易组件 | 小商店 | | | √ | 小程序联盟 | 小商店 | | | √ | 微信登录功能 | 开放平台 | | | √ | 一次性订阅消息 | 开放平台 | | diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/OpenProduct/OpenProductAccountRegisterEvent.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/OpenProduct/OpenProductAccountRegisterEvent.cs new file mode 100644 index 00000000..e4f70090 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/OpenProduct/OpenProductAccountRegisterEvent.cs @@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Events +{ + /// + /// 表示 EVENT.open_product_account_register 事件的数据。 + /// REF: https://developers.weixin.qq.com/miniprogram/dev/framework/ministore/minishopopencomponent2/callback/account_register.html + /// + public class OpenProductAccountRegisterEvent : WechatApiEvent, WechatApiEvent.Types.IJsonSerializable, WechatApiEvent.Types.IXmlSerializable + { + public new static class Types + { + public class EventData + { + /// + /// 获取或设置开通状态。 + /// + [Newtonsoft.Json.JsonProperty("status")] + [System.Text.Json.Serialization.JsonPropertyName("status")] + [System.Xml.Serialization.XmlElement("status")] + public int Status { get; set; } + } + } + + /// + /// 获取或设置事件数据。 + /// + [Newtonsoft.Json.JsonProperty("OpenProductAccountRegister")] + [System.Text.Json.Serialization.JsonPropertyName("OpenProductAccountRegister")] + [System.Xml.Serialization.XmlElement("OpenProductAccountRegister")] + public Types.EventData EventData { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/OpenProduct/OpenProductBrandAuditEvent.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/OpenProduct/OpenProductBrandAuditEvent.cs new file mode 100644 index 00000000..02bf9955 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/OpenProduct/OpenProductBrandAuditEvent.cs @@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Events +{ + /// + /// 表示 EVENT.open_product_brand_audit 事件的数据。 + /// REF: https://developers.weixin.qq.com/miniprogram/dev/framework/ministore/minishopopencomponent2/callback/brand_audit.html + /// + public class OpenProductBrandAuditEvent : WechatApiEvent, WechatApiEvent.Types.IJsonSerializable, WechatApiEvent.Types.IXmlSerializable + { + public new static class Types + { + public class EventData : OpenProductCategoryAuditEvent.Types.EventData + { + /// + /// 获取或设置品牌 ID。 + /// + [Newtonsoft.Json.JsonProperty("brand_id")] + [System.Text.Json.Serialization.JsonPropertyName("brand_id")] + [System.Xml.Serialization.XmlElement("brand_id")] + public int BrandId { get; set; } + } + } + + /// + /// 获取或设置事件数据。 + /// + [Newtonsoft.Json.JsonProperty("QualificationAuditResult")] + [System.Text.Json.Serialization.JsonPropertyName("QualificationAuditResult")] + [System.Xml.Serialization.XmlElement("QualificationAuditResult")] + public Types.EventData EventData { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/OpenProduct/OpenProductCategoryAuditEvent.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/OpenProduct/OpenProductCategoryAuditEvent.cs new file mode 100644 index 00000000..fad13f5a --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/OpenProduct/OpenProductCategoryAuditEvent.cs @@ -0,0 +1,58 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Events +{ + /// + /// 表示 EVENT.open_product_category_audit 事件的数据。 + /// REF: https://developers.weixin.qq.com/miniprogram/dev/framework/ministore/minishopopencomponent2/callback/category_audit.html + /// + public class OpenProductCategoryAuditEvent : WechatApiEvent, WechatApiEvent.Types.IJsonSerializable, WechatApiEvent.Types.IXmlSerializable + { + public new static class Types + { + public class EventData + { + /// + /// 获取或设置审核状态。 + /// + [Newtonsoft.Json.JsonProperty("status")] + [System.Text.Json.Serialization.JsonPropertyName("status")] + [System.Xml.Serialization.XmlElement("status")] + public int Status { get; set; } + + /// + /// 获取或设置审核单 ID。 + /// + [Newtonsoft.Json.JsonProperty("audit_id")] + [System.Text.Json.Serialization.JsonPropertyName("audit_id")] + [System.Xml.Serialization.XmlElement("audit_id")] + public string AuditId { get; set; } = default!; + + /// + /// 获取或设置审核单类型。 + /// + [Newtonsoft.Json.JsonProperty("audit_type")] + [System.Text.Json.Serialization.JsonPropertyName("audit_type")] + [System.Xml.Serialization.XmlElement("audit_type")] + public int AuditType { get; set; } + + /// + /// 获取或设置拒绝原因。 + /// + [Newtonsoft.Json.JsonProperty("reject_reason")] + [System.Text.Json.Serialization.JsonPropertyName("reject_reason")] + [System.Xml.Serialization.XmlElement("reject_reason")] + public string? RejectReason { get; set; } + } + } + + /// + /// 获取或设置事件数据。 + /// + [Newtonsoft.Json.JsonProperty("QualificationAuditResult")] + [System.Text.Json.Serialization.JsonPropertyName("QualificationAuditResult")] + [System.Xml.Serialization.XmlElement("QualificationAuditResult")] + public Types.EventData EventData { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/OpenProduct/OpenProductSPUAuditEvent.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/OpenProduct/OpenProductSPUAuditEvent.cs new file mode 100644 index 00000000..d436cd3c --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/OpenProduct/OpenProductSPUAuditEvent.cs @@ -0,0 +1,58 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Events +{ + /// + /// 表示 EVENT.open_product_spu_audit 事件的数据。 + /// REF: https://developers.weixin.qq.com/miniprogram/dev/framework/ministore/minishopopencomponent2/callback/spu_audit.html + /// + public class OpenProductSPUAuditEvent : WechatApiEvent, WechatApiEvent.Types.IJsonSerializable, WechatApiEvent.Types.IXmlSerializable + { + public new static class Types + { + public class EventData + { + /// + /// 获取或设置审核状态。 + /// + [Newtonsoft.Json.JsonProperty("status")] + [System.Text.Json.Serialization.JsonPropertyName("status")] + [System.Xml.Serialization.XmlElement("status")] + public int Status { get; set; } + + /// + /// 获取或设置商家自定义商品 ID。 + /// + [Newtonsoft.Json.JsonProperty("out_product_id")] + [System.Text.Json.Serialization.JsonPropertyName("out_product_id")] + [System.Xml.Serialization.XmlElement("out_product_id")] + public string OutProductId { get; set; } = default!; + + /// + /// 获取或设置商品 ID。 + /// + [Newtonsoft.Json.JsonProperty("product_id")] + [System.Text.Json.Serialization.JsonPropertyName("product_id")] + [System.Xml.Serialization.XmlElement("product_id")] + public long ProductId { get; set; } + + /// + /// 获取或设置拒绝原因。 + /// + [Newtonsoft.Json.JsonProperty("reject_reason")] + [System.Text.Json.Serialization.JsonPropertyName("reject_reason")] + [System.Xml.Serialization.XmlElement("reject_reason")] + public string? RejectReason { get; set; } + } + } + + /// + /// 获取或设置事件数据。 + /// + [Newtonsoft.Json.JsonProperty("OpenProductSpuAudit")] + [System.Text.Json.Serialization.JsonPropertyName("OpenProductSpuAudit")] + [System.Xml.Serialization.XmlElement("OpenProductSpuAudit")] + public Types.EventData EventData { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteShopExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteShopExtensions.cs new file mode 100644 index 00000000..de94277f --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteShopExtensions.cs @@ -0,0 +1,670 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net.Http; +using System.Net.Http.Headers; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using Flurl; +using Flurl.Http; + +namespace SKIT.FlurlHttpClient.Wechat.Api +{ + public static class WechatApiClientExecuteShopExtensions + { + /// + /// 异步调用 [POST] /shop/img/upload 接口。 + /// REF: https://developers.weixin.qq.com/miniprogram/dev/framework/ministore/minishopopencomponent2/API/public/upload_img.html + /// + /// + /// + /// + /// + public static async Task ExecuteShopImageUploadAsync(this WechatApiClient client, Models.ShopImageUploadRequest 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(HttpMethod.Post, "shop", "img", "upload") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + string boundary = "--BOUNDARY--" + DateTimeOffset.Now.Ticks.ToString("x"); + string filename = "image.png"; + var httpContent = new MultipartFormDataContent(boundary); + var fileContent = new ByteArrayContent(request.ImageFileBytes ?? new byte[0]); + httpContent.Add(fileContent, "\"media\"", "\"" + filename + "\""); + fileContent.Headers.ContentType = MediaTypeHeaderValue.Parse("image/png"); + fileContent.Headers.ContentLength = request.ImageFileBytes?.Length; + httpContent.Headers.ContentType = MediaTypeHeaderValue.Parse("multipart/form-data; boundary=" + boundary); + return await client.SendRequestAsync(flurlReq, content: httpContent, cancellationToken: cancellationToken); + } + + #region Register + /// + /// 异步调用 [POST] /shop/register/apply 接口。 + /// REF: https://developers.weixin.qq.com/miniprogram/dev/framework/ministore/minishopopencomponent2/API/enter/enter_apply.html + /// + /// + /// + /// + /// + public static async Task ExecuteShopRegisterApplyAsync(this WechatApiClient client, Models.ShopRegisterApplyRequest 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(HttpMethod.Post, "shop", "register", "apply") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /shop/register/check 接口。 + /// REF: https://developers.weixin.qq.com/miniprogram/dev/framework/ministore/minishopopencomponent2/API/enter/enter_check.html + /// + /// + /// + /// + /// + public static async Task ExecuteShopRegisterCheckAsync(this WechatApiClient client, Models.ShopRegisterCheckRequest 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(HttpMethod.Post, "shop", "register", "check") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + #endregion + + #region Category + /// + /// 异步调用 [POST] /shop/cat/get 接口。 + /// REF: https://developers.weixin.qq.com/miniprogram/dev/framework/ministore/minishopopencomponent2/API/cat/get_children_cateogry.html + /// + /// + /// + /// + /// + public static async Task ExecuteShopCategoryGetAsync(this WechatApiClient client, Models.ShopCategoryGetRequest 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(HttpMethod.Post, "shop", "cat", "get") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + #endregion + + #region Audit + /// + /// 异步调用 [POST] /shop/audit/audit_brand 接口。 + /// REF: https://developers.weixin.qq.com/miniprogram/dev/framework/ministore/minishopopencomponent2/API/audit/audit_brand.html + /// + /// + /// + /// + /// + public static async Task ExecuteShopAuditAuditBrandAsync(this WechatApiClient client, Models.ShopAuditAuditBrandRequest 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(HttpMethod.Post, "shop", "audit", "audit_brand") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /shop/audit/audit_category 接口。 + /// REF: https://developers.weixin.qq.com/miniprogram/dev/framework/ministore/minishopopencomponent2/API/audit/audit_category.html + /// + /// + /// + /// + /// + public static async Task ExecuteShopAuditAuditCategoryAsync(this WechatApiClient client, Models.ShopAuditAuditCategoryRequest 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(HttpMethod.Post, "shop", "audit", "audit_category") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /shop/audit/result 接口。 + /// REF: https://developers.weixin.qq.com/miniprogram/dev/framework/ministore/minishopopencomponent2/API/audit/audit_result.html + /// + /// + /// + /// + /// + public static async Task ExecuteShopAuditResultAsync(this WechatApiClient client, Models.ShopAuditResultRequest 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(HttpMethod.Post, "shop", "audit", "result") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /shop/audit/get_miniapp_certificate 接口。 + /// REF: https://developers.weixin.qq.com/miniprogram/dev/framework/ministore/minishopopencomponent2/API/audit/get_miniapp_certificate.html + /// + /// + /// + /// + /// + public static async Task ExecuteShopAuditGetMiniAppCertificateAsync(this WechatApiClient client, Models.ShopAuditGetMiniAppCertificateRequest 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(HttpMethod.Post, "shop", "audit", "get_miniapp_certificate") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + #endregion + + #region Account + /// + /// 异步调用 [POST] /shop/account/get_category_list 接口。 + /// REF: https://developers.weixin.qq.com/miniprogram/dev/framework/ministore/minishopopencomponent2/API/account/category_list.html + /// + /// + /// + /// + /// + public static async Task ExecuteShopAccountGetCategoryListAsync(this WechatApiClient client, Models.ShopAccountGetCategoryListRequest 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(HttpMethod.Post, "shop", "account", "get_category_list") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /shop/account/get_brand_list 接口。 + /// REF: https://developers.weixin.qq.com/miniprogram/dev/framework/ministore/minishopopencomponent2/API/account/brand_list.html + /// + /// + /// + /// + /// + public static async Task ExecuteShopAccountGetBrandListAsync(this WechatApiClient client, Models.ShopAccountGetBrandListRequest 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(HttpMethod.Post, "shop", "account", "get_brand_list") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /shop/account/get_info 接口。 + /// REF: https://developers.weixin.qq.com/miniprogram/dev/framework/ministore/minishopopencomponent2/API/account/get_info.html + /// + /// + /// + /// + /// + public static async Task ExecuteShopAccountGetInfoAsync(this WechatApiClient client, Models.ShopAccountGetInfoRequest 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(HttpMethod.Post, "shop", "account", "get_info") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /shop/account/update_info 接口。 + /// REF: https://developers.weixin.qq.com/miniprogram/dev/framework/ministore/minishopopencomponent2/API/account/update_info.html + /// + /// + /// + /// + /// + public static async Task ExecuteShopAccountUpdateInfoAsync(this WechatApiClient client, Models.ShopAccountUpdateInfoRequest 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(HttpMethod.Post, "shop", "account", "update_info") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + #endregion + + #region SPU + /// + /// 异步调用 [POST] /shop/spu/add 接口。 + /// REF: https://developers.weixin.qq.com/miniprogram/dev/framework/ministore/minishopopencomponent2/API/SPU/add_spu.html + /// + /// + /// + /// + /// + public static async Task ExecuteShopSPUAddAsync(this WechatApiClient client, Models.ShopSPUAddRequest 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(HttpMethod.Post, "shop", "spu", "add") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /shop/spu/update 接口。 + /// REF: https://developers.weixin.qq.com/miniprogram/dev/framework/ministore/minishopopencomponent2/API/SPU/update_spu.html + /// + /// + /// + /// + /// + public static async Task ExecuteShopSPUUpdateAsync(this WechatApiClient client, Models.ShopSPUUpdateRequest 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(HttpMethod.Post, "shop", "spu", "update") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /shop/spu/del 接口。 + /// REF: https://developers.weixin.qq.com/miniprogram/dev/framework/ministore/minishopopencomponent2/API/SPU/del_spu.html + /// + /// + /// + /// + /// + public static async Task ExecuteShopSPUDeleteAsync(this WechatApiClient client, Models.ShopSPUDeleteRequest 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(HttpMethod.Post, "shop", "spu", "del") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /shop/spu/del_audit 接口。 + /// REF: https://developers.weixin.qq.com/miniprogram/dev/framework/ministore/minishopopencomponent2/API/SPU/del_spu_audit.html + /// + /// + /// + /// + /// + public static async Task ExecuteShopSPUDeleteAuditAsync(this WechatApiClient client, Models.ShopSPUDeleteAuditRequest 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(HttpMethod.Post, "shop", "spu", "del_audit") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /shop/spu/get 接口。 + /// REF: https://developers.weixin.qq.com/miniprogram/dev/framework/ministore/minishopopencomponent2/API/SPU/get_spu.html + /// + /// + /// + /// + /// + public static async Task ExecuteShopSPUGetAsync(this WechatApiClient client, Models.ShopSPUGetRequest 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(HttpMethod.Post, "shop", "spu", "get") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /shop/spu/get_list 接口。 + /// REF: https://developers.weixin.qq.com/miniprogram/dev/framework/ministore/minishopopencomponent2/API/order/check_scene.html + /// + /// + /// + /// + /// + public static async Task ExecuteShopSPUGetListAsync(this WechatApiClient client, Models.ShopSPUGetListRequest 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(HttpMethod.Post, "shop", "spu", "get_list") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /shop/spu/listing 接口。 + /// REF: https://developers.weixin.qq.com/miniprogram/dev/framework/ministore/minishopopencomponent2/API/SPU/listing_spu.html + /// + /// + /// + /// + /// + public static async Task ExecuteShopSPUListingAsync(this WechatApiClient client, Models.ShopSPUListingRequest 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(HttpMethod.Post, "shop", "spu", "listing") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /shop/spu/delisting 接口。 + /// REF: https://developers.weixin.qq.com/miniprogram/dev/framework/ministore/minishopopencomponent2/API/SPU/delisting_spu.html + /// + /// + /// + /// + /// + public static async Task ExecuteShopSPUDelistingAsync(this WechatApiClient client, Models.ShopSPUDelistingRequest 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(HttpMethod.Post, "shop", "spu", "delisting") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + #endregion + + #region Order + /// + /// 异步调用 [POST] /shop/scene/check 接口。 + /// REF: https://developers.weixin.qq.com/miniprogram/dev/framework/ministore/minishopopencomponent2/API/order/check_scene.html + /// + /// + /// + /// + /// + public static async Task ExecuteShopSceneCheckAsync(this WechatApiClient client, Models.ShopSceneCheckRequest 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(HttpMethod.Post, "shop", "scene", "check") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /shop/order/add 接口。 + /// REF: https://developers.weixin.qq.com/miniprogram/dev/framework/ministore/minishopopencomponent2/API/order/add_order.html + /// + /// + /// + /// + /// + public static async Task ExecuteShopOrderAddAsync(this WechatApiClient client, Models.ShopOrderAddRequest 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(HttpMethod.Post, "shop", "order", "add") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /shop/order/pay 接口。 + /// REF: https://developers.weixin.qq.com/miniprogram/dev/framework/ministore/minishopopencomponent2/API/order/pay_order.html + /// + /// + /// + /// + /// + public static async Task ExecuteShopOrderPayAsync(this WechatApiClient client, Models.ShopOrderPayRequest 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(HttpMethod.Post, "shop", "order", "pay") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /shop/order/get 接口。 + /// REF: https://developers.weixin.qq.com/miniprogram/dev/framework/ministore/minishopopencomponent2/API/order/get_order.html + /// + /// + /// + /// + /// + public static async Task ExecuteShopOrderGetAsync(this WechatApiClient client, Models.ShopOrderGetRequest 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(HttpMethod.Post, "shop", "order", "get") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + #endregion + + #region Delivery + /// + /// 异步调用 [POST] /shop/delivery/get_company_list 接口。 + /// REF: https://developers.weixin.qq.com/miniprogram/dev/framework/ministore/minishopopencomponent2/API/delivery/get_company_list.html + /// + /// + /// + /// + /// + public static async Task ExecuteShopDeliveryGetCompanyListAsync(this WechatApiClient client, Models.ShopDeliveryGetCompanyListRequest 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(HttpMethod.Post, "shop", "delivery", "get_company_list") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /shop/delivery/send 接口。 + /// REF: https://developers.weixin.qq.com/miniprogram/dev/framework/ministore/minishopopencomponent2/API/delivery/send.html + /// + /// + /// + /// + /// + public static async Task ExecuteShopDeliverySendAsync(this WechatApiClient client, Models.ShopDeliverySendRequest 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(HttpMethod.Post, "shop", "delivery", "send") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /shop/delivery/recieve 接口。 + /// REF: https://developers.weixin.qq.com/miniprogram/dev/framework/ministore/minishopopencomponent2/API/delivery/recieve.html + /// + /// + /// + /// + /// + public static async Task ExecuteShopDeliveryReceiveAsync(this WechatApiClient client, Models.ShopDeliveryReceiveRequest 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(HttpMethod.Post, "shop", "delivery", "recieve") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + #endregion + + #region Aftersale + /// + /// 异步调用 [POST] /shop/aftersale/add 接口。 + /// REF: https://developers.weixin.qq.com/miniprogram/dev/framework/ministore/minishopopencomponent2/API/aftersale/add.html + /// + /// + /// + /// + /// + public static async Task ExecuteShopAftersaleAddAsync(this WechatApiClient client, Models.ShopAftersaleAddRequest 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(HttpMethod.Post, "shop", "aftersale", "add") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /shop/aftersale/update 接口。 + /// REF: https://developers.weixin.qq.com/miniprogram/dev/framework/ministore/minishopopencomponent2/API/aftersale/update.html + /// + /// + /// + /// + /// + public static async Task ExecuteShopAftersaleUpdateAsync(this WechatApiClient client, Models.ShopAftersaleUpdateRequest 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(HttpMethod.Post, "shop", "aftersale", "update") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /shop/aftersale/get 接口。 + /// REF: https://developers.weixin.qq.com/miniprogram/dev/framework/ministore/minishopopencomponent2/API/aftersale/get.html + /// + /// + /// + /// + /// + public static async Task ExecuteShopAftersaleGetAsync(this WechatApiClient client, Models.ShopAftersaleGetRequest 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(HttpMethod.Post, "shop", "aftersale", "get") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + #endregion + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Account/ShopAccountGetBrandListRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Account/ShopAccountGetBrandListRequest.cs new file mode 100644 index 00000000..0be3d1bc --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Account/ShopAccountGetBrandListRequest.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/account/get_brand_list 接口的请求。 + /// + public class ShopAccountGetBrandListRequest : WechatApiRequest + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Account/ShopAccountGetBrandListResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Account/ShopAccountGetBrandListResponse.cs new file mode 100644 index 00000000..5d1e207c --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Account/ShopAccountGetBrandListResponse.cs @@ -0,0 +1,38 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/account/get_brand_list 接口的响应。 + /// + public class ShopAccountGetBrandListResponse : WechatApiResponse + { + public static class Types + { + public class Brand + { + /// + /// 获取或设置品牌 ID。 + /// + [Newtonsoft.Json.JsonProperty("brand_id")] + [System.Text.Json.Serialization.JsonPropertyName("brand_id")] + public int BrandId { get; set; } + + /// + /// 获取或设置品牌词。 + /// + [Newtonsoft.Json.JsonProperty("brand_wording")] + [System.Text.Json.Serialization.JsonPropertyName("brand_wording")] + public string BrandWording { get; set; } = default!; + } + } + + /// + /// 获取或设置品牌列表。 + /// + [Newtonsoft.Json.JsonProperty("data")] + [System.Text.Json.Serialization.JsonPropertyName("data")] + public Types.Brand[] BrandList { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Account/ShopAccountGetCategoryListRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Account/ShopAccountGetCategoryListRequest.cs new file mode 100644 index 00000000..91f8d232 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Account/ShopAccountGetCategoryListRequest.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/account/get_category_list 接口的请求。 + /// + public class ShopAccountGetCategoryListRequest : WechatApiRequest + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Account/ShopAccountGetCategoryListResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Account/ShopAccountGetCategoryListResponse.cs new file mode 100644 index 00000000..0d97cb9c --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Account/ShopAccountGetCategoryListResponse.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/account/get_category_list 接口的响应。 + /// + public class ShopAccountGetCategoryListResponse : WechatApiResponse + { + public static class Types + { + public class Category : ShopCategoryGetResponse.Types.Category + { + } + } + + /// + /// 获取或设置类目列表。 + /// + [Newtonsoft.Json.JsonProperty("data")] + [System.Text.Json.Serialization.JsonPropertyName("data")] + public Types.Category[] CategoryList { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Account/ShopAccountGetInfoRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Account/ShopAccountGetInfoRequest.cs new file mode 100644 index 00000000..c5388a69 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Account/ShopAccountGetInfoRequest.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/account/get_info 接口的请求。 + /// + public class ShopAccountGetInfoRequest : WechatApiRequest + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Account/ShopAccountGetInfoResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Account/ShopAccountGetInfoResponse.cs new file mode 100644 index 00000000..f0ada0f5 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Account/ShopAccountGetInfoResponse.cs @@ -0,0 +1,38 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/account/get_info 接口的响应。 + /// + public class ShopAccountGetInfoResponse : WechatApiResponse + { + public static class Types + { + public class Data + { + /// + /// 获取或设置客服页面路径。 + /// + [Newtonsoft.Json.JsonProperty("service_agent_path")] + [System.Text.Json.Serialization.JsonPropertyName("service_agent_path")] + public string? ServiceAgentPagePath { get; set; } + + /// + /// 获取或设置客服联系电话。 + /// + [Newtonsoft.Json.JsonProperty("service_agent_phone")] + [System.Text.Json.Serialization.JsonPropertyName("service_agent_phone")] + public string? ServiceAgentPhoneNumber { get; set; } + } + } + + /// + /// 获取或设置返回数据。 + /// + [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/Shop/Account/ShopAccountUpdateInfoRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Account/ShopAccountUpdateInfoRequest.cs new file mode 100644 index 00000000..45cdf808 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Account/ShopAccountUpdateInfoRequest.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/account/update_info 接口的请求。 + /// + public class ShopAccountUpdateInfoRequest : WechatApiRequest + { + /// + /// 获取或设置客服页面路径。 + /// + [Newtonsoft.Json.JsonProperty("service_agent_path")] + [System.Text.Json.Serialization.JsonPropertyName("service_agent_path")] + public string? ServiceAgentPagePath { get; set; } + + /// + /// 获取或设置客服联系电话。 + /// + [Newtonsoft.Json.JsonProperty("service_agent_phone")] + [System.Text.Json.Serialization.JsonPropertyName("service_agent_phone")] + public string? ServiceAgentPhoneNumber { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Account/ShopAccountUpdateInfoResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Account/ShopAccountUpdateInfoResponse.cs new file mode 100644 index 00000000..e18436b0 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Account/ShopAccountUpdateInfoResponse.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/account/update_info 接口的响应。 + /// + public class ShopAccountUpdateInfoResponse : WechatApiResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Aftersale/ShopAftersaleAddRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Aftersale/ShopAftersaleAddRequest.cs new file mode 100644 index 00000000..7cebd83b --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Aftersale/ShopAftersaleAddRequest.cs @@ -0,0 +1,105 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/aftersale/add 接口的请求。 + /// + public class ShopAftersaleAddRequest : WechatApiRequest + { + public static class Types + { + public class Product + { + /// + /// 获取或设置商家自定义商品 ID。 + /// + [Newtonsoft.Json.JsonProperty("out_product_id")] + [System.Text.Json.Serialization.JsonPropertyName("out_product_id")] + public string OutProductId { get; set; } = string.Empty; + + /// + /// 获取或设置商家自定义 SKU ID。 + /// + [Newtonsoft.Json.JsonProperty("out_sku_id")] + [System.Text.Json.Serialization.JsonPropertyName("out_sku_id")] + public string OutSKUId { get; set; } = string.Empty; + + /// + /// 获取或设置参与售后的商品数量。 + /// + [Newtonsoft.Json.JsonProperty("product_cnt")] + [System.Text.Json.Serialization.JsonPropertyName("product_cnt")] + public int? Count { get; set; } + } + } + + /// + /// 获取或设置商家自定义订单号。 + /// + [Newtonsoft.Json.JsonProperty("out_order_id")] + [System.Text.Json.Serialization.JsonPropertyName("out_order_id")] + public string OutOrderId { get; set; } = string.Empty; + + /// + /// 获取或设置商家自定义售后单号。 + /// + [Newtonsoft.Json.JsonProperty("out_aftersale_id")] + [System.Text.Json.Serialization.JsonPropertyName("out_aftersale_id")] + public string OutAftersaleOrderId { get; set; } = string.Empty; + + /// + /// 获取或设置小程序该售后单的页面路径。 + /// + [Newtonsoft.Json.JsonProperty("path")] + [System.Text.Json.Serialization.JsonPropertyName("path")] + public string PagePath { get; set; } = string.Empty; + + /// + /// 获取或设置用户的 OpenId。 + /// + [Newtonsoft.Json.JsonProperty("openid")] + [System.Text.Json.Serialization.JsonPropertyName("openid")] + public string OpenId { get; set; } = string.Empty; + + /// + /// 获取或设置售后类型。 + /// + [Newtonsoft.Json.JsonProperty("type")] + [System.Text.Json.Serialization.JsonPropertyName("type")] + public int Type { get; set; } + + /// + /// 获取或设置售后状态。 + /// + [Newtonsoft.Json.JsonProperty("status")] + [System.Text.Json.Serialization.JsonPropertyName("status")] + public int Status { get; set; } + + /// + /// 获取或设置发起申请时间。 + /// + [Newtonsoft.Json.JsonProperty("create_time")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.CommonDateTimeOffsetConverter))] + [System.Text.Json.Serialization.JsonPropertyName("create_time")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.CommonDateTimeOffsetConverter))] + public DateTimeOffset CreateTime { get; set; } + + /// + /// 获取或设置是否处理完成。 + /// + [Newtonsoft.Json.JsonProperty("finish_all_aftersale")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumberTypedBooleanConverter))] + [System.Text.Json.Serialization.JsonPropertyName("finish_all_aftersale")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumberTypedBooleanConverter))] + public bool IsFinishAll { get; set; } + + /// + /// 获取或设置商品列表。 + /// + [Newtonsoft.Json.JsonProperty("product_infos")] + [System.Text.Json.Serialization.JsonPropertyName("product_infos")] + public IList ProductList { get; set; } = new List(); + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Aftersale/ShopAftersaleAddResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Aftersale/ShopAftersaleAddResponse.cs new file mode 100644 index 00000000..63330aa2 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Aftersale/ShopAftersaleAddResponse.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/aftersale/add 接口的响应。 + /// + public class ShopAftersaleAddResponse : WechatApiResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Aftersale/ShopAftersaleGetRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Aftersale/ShopAftersaleGetRequest.cs new file mode 100644 index 00000000..436a9ee0 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Aftersale/ShopAftersaleGetRequest.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/aftersale/get 接口的请求。 + /// + public class ShopAftersaleGetRequest : WechatApiRequest + { + /// + /// 获取或设置订单 ID。与字段 二选一。 + /// + [Newtonsoft.Json.JsonProperty("order_id")] + [System.Text.Json.Serialization.JsonPropertyName("order_id")] + public long? OrderId { get; set; } + + /// + /// 获取或设置商家自定义订单号。与字段 二选一。 + /// + [Newtonsoft.Json.JsonProperty("out_order_id")] + [System.Text.Json.Serialization.JsonPropertyName("out_order_id")] + public string? OutOrderId { get; set; } + + /// + /// 获取或设置用户的 OpenId。 + /// + [Newtonsoft.Json.JsonProperty("openid")] + [System.Text.Json.Serialization.JsonPropertyName("openid")] + public string OpenId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Aftersale/ShopAftersaleGetResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Aftersale/ShopAftersaleGetResponse.cs new file mode 100644 index 00000000..8aeb959a --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Aftersale/ShopAftersaleGetResponse.cs @@ -0,0 +1,116 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/aftersale/get 接口的响应。 + /// + public class ShopAftersaleGetResponse : WechatApiResponse + { + public static class Types + { + public class AftersaleOrder + { + public static class Types + { + public class Product + { + /// + /// 获取或设置商家自定义商品 ID。 + /// + [Newtonsoft.Json.JsonProperty("out_product_id")] + [System.Text.Json.Serialization.JsonPropertyName("out_product_id")] + public string OutProductId { get; set; } = default!; + + /// + /// 获取或设置商家自定义 SKU ID。 + /// + [Newtonsoft.Json.JsonProperty("out_sku_id")] + [System.Text.Json.Serialization.JsonPropertyName("out_sku_id")] + public string OutSKUId { get; set; } = default!; + + /// + /// 获取或设置参与售后的商品数量。 + /// + [Newtonsoft.Json.JsonProperty("product_cnt")] + [System.Text.Json.Serialization.JsonPropertyName("product_cnt")] + public int? Count { get; set; } + } + } + + /// + /// 获取或设置订单 ID。 + /// + [Newtonsoft.Json.JsonProperty("order_id")] + [System.Text.Json.Serialization.JsonPropertyName("order_id")] + public long OrderId { get; set; } + + /// + /// 获取或设置商家自定义订单号。 + /// + [Newtonsoft.Json.JsonProperty("out_order_id")] + [System.Text.Json.Serialization.JsonPropertyName("out_order_id")] + public string OutOrderId { get; set; } = default!; + + /// + /// 获取或设置商家自定义售后单号。 + /// + [Newtonsoft.Json.JsonProperty("out_aftersale_id")] + [System.Text.Json.Serialization.JsonPropertyName("out_aftersale_id")] + public string OutAftersaleOrderId { get; set; } = default!; + + /// + /// 获取或设置小程序该售后单的页面路径。 + /// + [Newtonsoft.Json.JsonProperty("path")] + [System.Text.Json.Serialization.JsonPropertyName("path")] + public string PagePath { get; set; } = default!; + + /// + /// 获取或设置用户的 OpenId。 + /// + [Newtonsoft.Json.JsonProperty("openid")] + [System.Text.Json.Serialization.JsonPropertyName("openid")] + public string OpenId { get; set; } = default!; + + /// + /// 获取或设置售后类型。 + /// + [Newtonsoft.Json.JsonProperty("type")] + [System.Text.Json.Serialization.JsonPropertyName("type")] + public int Type { get; set; } + + /// + /// 获取或设置售后状态。 + /// + [Newtonsoft.Json.JsonProperty("status")] + [System.Text.Json.Serialization.JsonPropertyName("status")] + public int Status { get; set; } + + /// + /// 获取或设置发起申请时间。 + /// + [Newtonsoft.Json.JsonProperty("create_time")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.CommonDateTimeOffsetConverter))] + [System.Text.Json.Serialization.JsonPropertyName("create_time")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.CommonDateTimeOffsetConverter))] + public DateTimeOffset CreateTime { get; set; } + + /// + /// 获取或设置商品列表。 + /// + [Newtonsoft.Json.JsonProperty("product_infos")] + [System.Text.Json.Serialization.JsonPropertyName("product_infos")] + public Types.Product[] ProductList { get; set; } = default!; + } + } + + /// + /// 获取或设置售后单列表。 + /// + [Newtonsoft.Json.JsonProperty("aftersale_infos")] + [System.Text.Json.Serialization.JsonPropertyName("aftersale_infos")] + public Types.AftersaleOrder[] AftersaleOrderList { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Aftersale/ShopAftersaleUpdateRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Aftersale/ShopAftersaleUpdateRequest.cs new file mode 100644 index 00000000..9dfaccf6 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Aftersale/ShopAftersaleUpdateRequest.cs @@ -0,0 +1,48 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/aftersale/update 接口的请求。 + /// + public class ShopAftersaleUpdateRequest : WechatApiRequest + { + /// + /// 获取或设置商家自定义订单号。 + /// + [Newtonsoft.Json.JsonProperty("out_order_id")] + [System.Text.Json.Serialization.JsonPropertyName("out_order_id")] + public string OutOrderId { get; set; } = string.Empty; + + /// + /// 获取或设置商家自定义售后单号。 + /// + [Newtonsoft.Json.JsonProperty("out_aftersale_id")] + [System.Text.Json.Serialization.JsonPropertyName("out_aftersale_id")] + public string OutAftersaleOrderId { get; set; } = string.Empty; + + /// + /// 获取或设置用户的 OpenId。 + /// + [Newtonsoft.Json.JsonProperty("openid")] + [System.Text.Json.Serialization.JsonPropertyName("openid")] + public string OpenId { get; set; } = string.Empty; + + /// + /// 获取或设置售后状态。 + /// + [Newtonsoft.Json.JsonProperty("status")] + [System.Text.Json.Serialization.JsonPropertyName("status")] + public int Status { get; set; } + + /// + /// 获取或设置是否处理完成。 + /// + [Newtonsoft.Json.JsonProperty("finish_all_aftersale")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumberTypedBooleanConverter))] + [System.Text.Json.Serialization.JsonPropertyName("finish_all_aftersale")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumberTypedBooleanConverter))] + public bool IsFinishAll { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Aftersale/ShopAftersaleUpdateResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Aftersale/ShopAftersaleUpdateResponse.cs new file mode 100644 index 00000000..815733a0 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Aftersale/ShopAftersaleUpdateResponse.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/aftersale/update 接口的响应。 + /// + public class ShopAftersaleUpdateResponse : WechatApiResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Audit/ShopAuditAuditBrandRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Audit/ShopAuditAuditBrandRequest.cs new file mode 100644 index 00000000..72b2654a --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Audit/ShopAuditAuditBrandRequest.cs @@ -0,0 +1,153 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/audit/audit_brand 接口的请求。 + /// + public class ShopAuditAuditBrandRequest : WechatApiRequest + { + public static class Types + { + public class Audit + { + public static class Types + { + public class Brand + { + /// + /// 获取或设置认证审核类型。 + /// + [Newtonsoft.Json.JsonProperty("brand_audit_type")] + [System.Text.Json.Serialization.JsonPropertyName("brand_audit_type")] + public int BrandAuditType { get; set; } + + /// + /// 获取或设置品牌经营类型。 + /// + [Newtonsoft.Json.JsonProperty("brand_management_type")] + [System.Text.Json.Serialization.JsonPropertyName("brand_management_type")] + public int BrandManagementType { get; set; } + + /// + /// 获取或设置商标分类。 + /// + [Newtonsoft.Json.JsonProperty("trademark_type")] + [System.Text.Json.Serialization.JsonPropertyName("trademark_type")] + public string TrademarkType { get; set; } = string.Empty; + + /// + /// 获取或设置商品产地类型。 + /// + [Newtonsoft.Json.JsonProperty("commodity_origin_type")] + [System.Text.Json.Serialization.JsonPropertyName("commodity_origin_type")] + public int CommodityOriginType { get; set; } + + /// + /// 获取或设置商标或品牌词。 + /// + [Newtonsoft.Json.JsonProperty("brand_wording")] + [System.Text.Json.Serialization.JsonPropertyName("brand_wording")] + public string BrandWording { get; set; } = string.Empty; + + /// + /// 获取或设置销售授权书图片 URL 列表。 + /// + [Newtonsoft.Json.JsonProperty("sale_authorization")] + [System.Text.Json.Serialization.JsonPropertyName("sale_authorization")] + public IList? SaleAuthorizationUrlList { get; set; } + + /// + /// 获取或设置商标注册证书图片 URL 列表。 + /// + [Newtonsoft.Json.JsonProperty("trademark_registration_certificate")] + [System.Text.Json.Serialization.JsonPropertyName("trademark_registration_certificate")] + public IList? TrademarkRegistrationCertificateUrlList { get; set; } + + /// + /// 获取或设置商标变更证明图片 URL 列表。 + /// + [Newtonsoft.Json.JsonProperty("trademark_change_certificate")] + [System.Text.Json.Serialization.JsonPropertyName("trademark_change_certificate")] + public IList? TrademarkChangeCertificateUrlList { get; set; } + + /// + /// 获取或设置商标注册人姓名。 + /// + [Newtonsoft.Json.JsonProperty("trademark_registrant")] + [System.Text.Json.Serialization.JsonPropertyName("trademark_registrant")] + public string? TrademarkRegistrant { get; set; } + + /// + /// 获取或设置商标注册号或申请号。 + /// + [Newtonsoft.Json.JsonProperty("trademark_registrant_nu")] + [System.Text.Json.Serialization.JsonPropertyName("trademark_registrant_nu")] + public string? TrademarkRegistrantNumber { get; set; } + + /// + /// 获取或设置商标有效时间。 + /// + [Newtonsoft.Json.JsonProperty("trademark_authorization_period")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.CommonNullableDateTimeOffsetConverter))] + [System.Text.Json.Serialization.JsonPropertyName("trademark_authorization_period")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.CommonNullableDateTimeOffsetConverter))] + public DateTimeOffset? TrademarkAuthorizationTime { get; set; } + + /// + /// 获取或设置商标注册申请受理通知书图片 URL 列表。 + /// + [Newtonsoft.Json.JsonProperty("trademark_registration_application")] + [System.Text.Json.Serialization.JsonPropertyName("trademark_registration_application")] + public IList? TrademarkRegistrationApplicationUrlList { get; set; } + + /// + /// 获取或设置商标申请人姓名。 + /// + [Newtonsoft.Json.JsonProperty("trademark_applicant")] + [System.Text.Json.Serialization.JsonPropertyName("trademark_applicant")] + public string? TrademarkApplicant { get; set; } + + /// + /// 获取或设置商标申请时间。 + /// + [Newtonsoft.Json.JsonProperty("trademark_application_time")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.CommonNullableDateTimeOffsetConverter))] + [System.Text.Json.Serialization.JsonPropertyName("trademark_application_time")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.CommonNullableDateTimeOffsetConverter))] + public DateTimeOffset? TrademarkApplicationTime { get; set; } + + /// + /// 获取或设置海关进口货物报关单图片 URL 列表。 + /// + [Newtonsoft.Json.JsonProperty("imported_goods_form")] + [System.Text.Json.Serialization.JsonPropertyName("imported_goods_form")] + public IList? ImportedGoodsFormUrlList { get; set; } + } + } + + /// + /// 获取或设置营业执照或组织机构代码证图片 URL。 + /// + [Newtonsoft.Json.JsonProperty("license")] + [System.Text.Json.Serialization.JsonPropertyName("license")] + public string LicenseUrl { get; set; } = string.Empty; + + /// + /// 获取或设置品牌信息。 + /// + [Newtonsoft.Json.JsonProperty("brand_info")] + [System.Text.Json.Serialization.JsonPropertyName("brand_info")] + public Types.Brand Brand { get; set; } = new Types.Brand(); + } + } + + /// + /// 获取或设置审核单信息。 + /// + [Newtonsoft.Json.JsonProperty("audit_req")] + [System.Text.Json.Serialization.JsonPropertyName("audit_req")] + public Types.Audit Audit { get; set; } = new Types.Audit(); + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Audit/ShopAuditAuditBrandResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Audit/ShopAuditAuditBrandResponse.cs new file mode 100644 index 00000000..a5efe18d --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Audit/ShopAuditAuditBrandResponse.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/audit/audit_brand 接口的响应。 + /// + public class ShopAuditAuditBrandResponse : WechatApiResponse + { + /// + /// 获取或设置审核单 ID。 + /// + [Newtonsoft.Json.JsonProperty("audit_id")] + [System.Text.Json.Serialization.JsonPropertyName("audit_id")] + public string AuditId { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Audit/ShopAuditAuditCategoryRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Audit/ShopAuditAuditCategoryRequest.cs new file mode 100644 index 00000000..b9f49116 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Audit/ShopAuditAuditCategoryRequest.cs @@ -0,0 +1,72 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/audit/audit_category 接口的请求。 + /// + public class ShopAuditAuditCategoryRequest : WechatApiRequest + { + public static class Types + { + public class Audit + { + public static class Types + { + public class Category + { + /// + /// 获取或设置一级类目 ID。 + /// + [Newtonsoft.Json.JsonProperty("level1")] + [System.Text.Json.Serialization.JsonPropertyName("level1")] + public int FirstCategoryId { get; set; } + + /// + /// 获取或设置二级类目 ID。 + /// + [Newtonsoft.Json.JsonProperty("level2")] + [System.Text.Json.Serialization.JsonPropertyName("level2")] + public int SecondCategroyId { get; set; } + + /// + /// 获取或设置三级类目 ID。 + /// + [Newtonsoft.Json.JsonProperty("level3")] + [System.Text.Json.Serialization.JsonPropertyName("level3")] + public int ThirdCategroyId { get; set; } + + /// + /// 获取或设置资质材料图片 URL 列表。 + /// + [Newtonsoft.Json.JsonProperty("certificate")] + [System.Text.Json.Serialization.JsonPropertyName("certificate")] + public IList? QualificationUrlList { get; set; } + } + } + + /// + /// 获取或设置营业执照或组织机构代码证图片 URL。 + /// + [Newtonsoft.Json.JsonProperty("license")] + [System.Text.Json.Serialization.JsonPropertyName("license")] + public string LicenseUrl { get; set; } = string.Empty; + + /// + /// 获取或设置类目信息。 + /// + [Newtonsoft.Json.JsonProperty("category_info")] + [System.Text.Json.Serialization.JsonPropertyName("category_info")] + public Types.Category Category { get; set; } = new Types.Category(); + } + } + + /// + /// 获取或设置审核单信息。 + /// + [Newtonsoft.Json.JsonProperty("audit_req")] + [System.Text.Json.Serialization.JsonPropertyName("audit_req")] + public Types.Audit Audit { get; set; } = new Types.Audit(); + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Audit/ShopAuditAuditCategoryResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Audit/ShopAuditAuditCategoryResponse.cs new file mode 100644 index 00000000..d1225240 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Audit/ShopAuditAuditCategoryResponse.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/audit/audit_category 接口的响应。 + /// + public class ShopAuditAuditCategoryResponse : ShopAuditAuditBrandResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Audit/ShopAuditGetMiniAppCertificateRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Audit/ShopAuditGetMiniAppCertificateRequest.cs new file mode 100644 index 00000000..630b284c --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Audit/ShopAuditGetMiniAppCertificateRequest.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/audit/get_miniapp_certificate 接口的请求。 + /// + public class ShopAuditGetMiniAppCertificateRequest : WechatApiRequest + { + /// + /// 获取或设置请求类型。 + /// + [Newtonsoft.Json.JsonProperty("req_type")] + [System.Text.Json.Serialization.JsonPropertyName("req_type")] + public int RequestType { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Audit/ShopAuditGetMiniAppCertificateResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Audit/ShopAuditGetMiniAppCertificateResponse.cs new file mode 100644 index 00000000..2f6fa73f --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Audit/ShopAuditGetMiniAppCertificateResponse.cs @@ -0,0 +1,90 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/audit/get_miniapp_certificate 接口的响应。 + /// + public class ShopAuditGetMiniAppCertificateResponse : WechatApiResponse + { + public static class Types + { + public class Brand + { + /// + /// 获取或设置商标或品牌词。 + /// + [Newtonsoft.Json.JsonProperty("brand_wording")] + [System.Text.Json.Serialization.JsonPropertyName("brand_wording")] + public string BrandWording { get; set; } = default!; + + /// + /// 获取或设置销售授权书图片 URL 列表。 + /// + [Newtonsoft.Json.JsonProperty("sale_authorization")] + [System.Text.Json.Serialization.JsonPropertyName("sale_authorization")] + public string[]? SaleAuthorizationUrlList { get; set; } + + /// + /// 获取或设置商标注册证书图片 URL 列表。 + /// + [Newtonsoft.Json.JsonProperty("trademark_registration_certificate")] + [System.Text.Json.Serialization.JsonPropertyName("trademark_registration_certificate")] + public string[]? TrademarkRegistrationCertificateUrlList { get; set; } + } + + public class Category + { + /// + /// 获取或设置一级类目 ID。 + /// + [Newtonsoft.Json.JsonProperty("first_category_id")] + [System.Text.Json.Serialization.JsonPropertyName("first_category_id")] + public int FirstCategoryId { get; set; } + + /// + /// 获取或设置一级类目名称。 + /// + [Newtonsoft.Json.JsonProperty("first_category_name")] + [System.Text.Json.Serialization.JsonPropertyName("first_category_name")] + public string FirstCategoryName { get; set; } = default!; + + /// + /// 获取或设置二级类目 ID。 + /// + [Newtonsoft.Json.JsonProperty("second_category_id")] + [System.Text.Json.Serialization.JsonPropertyName("second_category_id")] + public int SecondCategroyId { get; set; } + + /// + /// 获取或设置二级类目名称。 + /// + [Newtonsoft.Json.JsonProperty("second_category_name")] + [System.Text.Json.Serialization.JsonPropertyName("second_category_name")] + public string SecondCategoryName { get; set; } = default!; + + /// + /// 获取或设置资质材料图片 URL 列表。 + /// + [Newtonsoft.Json.JsonProperty("certificate_url")] + [System.Text.Json.Serialization.JsonPropertyName("certificate_url")] + public string[]? QualificationUrlList { get; set; } + } + } + + /// + /// 获取或设置品牌信息。 + /// + [Newtonsoft.Json.JsonProperty("brand_info")] + [System.Text.Json.Serialization.JsonPropertyName("brand_info")] + public Types.Brand? Brand { get; set; } + + /// + /// 获取或设置分类列表。 + /// + [Newtonsoft.Json.JsonProperty("category_info_list")] + [System.Text.Json.Serialization.JsonPropertyName("category_info_list")] + public Types.Category[]? CategoryList { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Audit/ShopAuditResultRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Audit/ShopAuditResultRequest.cs new file mode 100644 index 00000000..d746f718 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Audit/ShopAuditResultRequest.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/audit/result 接口的请求。 + /// + public class ShopAuditResultRequest : WechatApiRequest + { + /// + /// 获取或设置审核单 ID。 + /// + [Newtonsoft.Json.JsonProperty("audit_id")] + [System.Text.Json.Serialization.JsonPropertyName("audit_id")] + public string AuditId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Audit/ShopAuditResultResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Audit/ShopAuditResultResponse.cs new file mode 100644 index 00000000..c506605f --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Audit/ShopAuditResultResponse.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/audit/result 接口的响应。 + /// + public class ShopAuditResultResponse : WechatApiResponse + { + public static class Types + { + public class Data + { + /// + /// 获取或设置审核状态。 + /// + [Newtonsoft.Json.JsonProperty("status")] + [System.Text.Json.Serialization.JsonPropertyName("status")] + public int Status { get; set; } + + /// + /// 获取或设置品牌 ID。 + /// + [Newtonsoft.Json.JsonProperty("brand_id")] + [System.Text.Json.Serialization.JsonPropertyName("brand_id")] + public int? BrandId { get; set; } + + /// + /// 获取或设置拒绝原因。 + /// + [Newtonsoft.Json.JsonProperty("reject_reason")] + [System.Text.Json.Serialization.JsonPropertyName("reject_reason")] + public string? RejectReason { get; set; } + } + } + + /// + /// 获取或设置返回数据。 + /// + [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/Shop/Category/ShopCategoryGetRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Category/ShopCategoryGetRequest.cs new file mode 100644 index 00000000..58d946e6 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Category/ShopCategoryGetRequest.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/cat/get 接口的请求。 + /// + public class ShopCategoryGetRequest : WechatApiRequest + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Category/ShopCategoryGetResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Category/ShopCategoryGetResponse.cs new file mode 100644 index 00000000..f95d9006 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Category/ShopCategoryGetResponse.cs @@ -0,0 +1,94 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/cat/get 接口的响应。 + /// + public class ShopCategoryGetResponse : WechatApiResponse + { + public static class Types + { + public class Category + { + /// + /// 获取或设置一级类目 ID。 + /// + [Newtonsoft.Json.JsonProperty("first_cat_id")] + [System.Text.Json.Serialization.JsonPropertyName("first_cat_id")] + public int FirstCategoryId { get; set; } + + /// + /// 获取或设置一级类目 ID 名称。 + /// + [Newtonsoft.Json.JsonProperty("first_cat_name")] + [System.Text.Json.Serialization.JsonPropertyName("first_cat_name")] + public string FirstCategoryName { get; set; } = default!; + + /// + /// 获取或设置二级类目 ID。 + /// + [Newtonsoft.Json.JsonProperty("second_cat_id")] + [System.Text.Json.Serialization.JsonPropertyName("second_cat_id")] + public int SecondCategoryId { get; set; } + + /// + /// 获取或设置二级类目 ID 名称。 + /// + [Newtonsoft.Json.JsonProperty("second_cat_name")] + [System.Text.Json.Serialization.JsonPropertyName("second_cat_name")] + public string SecondCategoryName { get; set; } = default!; + + /// + /// 获取或设置三级类目 ID。 + /// + [Newtonsoft.Json.JsonProperty("third_cat_id")] + [System.Text.Json.Serialization.JsonPropertyName("third_cat_id")] + public int ThirdCategoryId { get; set; } + + /// + /// 获取或设置三级类目 ID 名称。 + /// + [Newtonsoft.Json.JsonProperty("third_cat_name")] + [System.Text.Json.Serialization.JsonPropertyName("third_cat_name")] + public string ThirdCategoryName { get; set; } = default!; + + /// + /// 获取或设置类目资质类型。 + /// + [Newtonsoft.Json.JsonProperty("qualification_type")] + [System.Text.Json.Serialization.JsonPropertyName("qualification_type")] + public int QualificationType { get; set; } + + /// + /// 获取或设置类目资质。 + /// + [Newtonsoft.Json.JsonProperty("qualification")] + [System.Text.Json.Serialization.JsonPropertyName("qualification")] + public string? Qualification { get; set; } + + /// + /// 获取或设置商品资质类型。 + /// + [Newtonsoft.Json.JsonProperty("product_qualification_type")] + [System.Text.Json.Serialization.JsonPropertyName("product_qualification_type")] + public int ProductQualificationType { get; set; } + + /// + /// 获取或设置商品资质。 + /// + [Newtonsoft.Json.JsonProperty("product_qualification")] + [System.Text.Json.Serialization.JsonPropertyName("product_qualification")] + public string? ProductQualification { get; set; } + } + } + + /// + /// 获取或设置类目列表。 + /// + [Newtonsoft.Json.JsonProperty("third_cat_list")] + [System.Text.Json.Serialization.JsonPropertyName("third_cat_list")] + public Types.Category[] CategoryList { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Delivery/ShopDeliveryGetCompanyListRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Delivery/ShopDeliveryGetCompanyListRequest.cs new file mode 100644 index 00000000..c78113e3 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Delivery/ShopDeliveryGetCompanyListRequest.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/delivery/get_company_list 接口的请求。 + /// + public class ShopDeliveryGetCompanyListRequest : WechatApiRequest + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Delivery/ShopDeliveryGetCompanyListResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Delivery/ShopDeliveryGetCompanyListResponse.cs new file mode 100644 index 00000000..aa637815 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Delivery/ShopDeliveryGetCompanyListResponse.cs @@ -0,0 +1,48 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/delivery/get_company_list 接口的响应。 + /// + public class ShopDeliveryGetCompanyListResponse : WechatApiResponse + { + public static class Types + { + public class DeliveryCompanyList + { + /// + /// 获取或设置快递公司列表。 + /// + [Newtonsoft.Json.JsonProperty("company_list")] + [System.Text.Json.Serialization.JsonPropertyName("company_list")] + public DeliveryCompanyItem[] Items { get; set; } = default!; + } + + public class DeliveryCompanyItem + { + /// + /// 获取或设置快递公司 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("data")] + [System.Text.Json.Serialization.JsonPropertyName("data")] + public Types.DeliveryCompanyList DeliveryCompanyList { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Delivery/ShopDeliveryReceiveRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Delivery/ShopDeliveryReceiveRequest.cs new file mode 100644 index 00000000..2ca9869f --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Delivery/ShopDeliveryReceiveRequest.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/delivery/recieve 接口的请求。 + /// + public class ShopDeliveryReceiveRequest : WechatApiRequest + { + /// + /// 获取或设置订单 ID。与字段 二选一。 + /// + [Newtonsoft.Json.JsonProperty("order_id")] + [System.Text.Json.Serialization.JsonPropertyName("order_id")] + public long? OrderId { get; set; } + + /// + /// 获取或设置商家自定义订单号。与字段 二选一。 + /// + [Newtonsoft.Json.JsonProperty("out_order_id")] + [System.Text.Json.Serialization.JsonPropertyName("out_order_id")] + public string? OutOrderId { get; set; } + + /// + /// 获取或设置用户的 OpenId。 + /// + [Newtonsoft.Json.JsonProperty("openid")] + [System.Text.Json.Serialization.JsonPropertyName("openid")] + public string OpenId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Delivery/ShopDeliveryReceiveResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Delivery/ShopDeliveryReceiveResponse.cs new file mode 100644 index 00000000..c535f78e --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Delivery/ShopDeliveryReceiveResponse.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/delivery/recieve 接口的响应。 + /// + public class ShopDeliveryReceiveResponse : WechatApiResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Delivery/ShopDeliverySendRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Delivery/ShopDeliverySendRequest.cs new file mode 100644 index 00000000..72bc9fb8 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Delivery/ShopDeliverySendRequest.cs @@ -0,0 +1,68 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/delivery/send 接口的请求。 + /// + public class ShopDeliverySendRequest : WechatApiRequest + { + 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; } = string.Empty; + + /// + /// 获取或设置快递单号。 + /// + [Newtonsoft.Json.JsonProperty("waybill_id")] + [System.Text.Json.Serialization.JsonPropertyName("waybill_id")] + public string? WaybillId { get; set; } + } + } + + /// + /// 获取或设置订单 ID。与字段 二选一。 + /// + [Newtonsoft.Json.JsonProperty("order_id")] + [System.Text.Json.Serialization.JsonPropertyName("order_id")] + public long? OrderId { get; set; } + + /// + /// 获取或设置商家自定义订单号。与字段 二选一。 + /// + [Newtonsoft.Json.JsonProperty("out_order_id")] + [System.Text.Json.Serialization.JsonPropertyName("out_order_id")] + public string? OutOrderId { get; set; } + + /// + /// 获取或设置用户的 OpenId。 + /// + [Newtonsoft.Json.JsonProperty("openid")] + [System.Text.Json.Serialization.JsonPropertyName("openid")] + public string OpenId { get; set; } = string.Empty; + + /// + /// 获取或设置是否发货完成。 + /// + [Newtonsoft.Json.JsonProperty("finish_all_delivery")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumberTypedBooleanConverter))] + [System.Text.Json.Serialization.JsonPropertyName("finish_all_delivery")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumberTypedBooleanConverter))] + public bool IsFinishAll { get; set; } + + /// + /// 获取或设置快递列表。 + /// + [Newtonsoft.Json.JsonProperty("delivery_list")] + [System.Text.Json.Serialization.JsonPropertyName("delivery_list")] + public IList DeliveryList { get; set; } = new List(); + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Delivery/ShopDeliverySendResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Delivery/ShopDeliverySendResponse.cs new file mode 100644 index 00000000..cc936d7e --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Delivery/ShopDeliverySendResponse.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/delivery/send 接口的响应。 + /// + public class ShopDeliverySendResponse : WechatApiResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Order/ShopOrderAddRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Order/ShopOrderAddRequest.cs new file mode 100644 index 00000000..48b8db22 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Order/ShopOrderAddRequest.cs @@ -0,0 +1,292 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/order/add 接口的请求。 + /// + public class ShopOrderAddRequest : WechatApiRequest + { + public static class Types + { + public class OrderDetail + { + public static class Types + { + public class Product + { + /// + /// 获取或设置商家自定义商品 ID。 + /// + [Newtonsoft.Json.JsonProperty("out_product_id")] + [System.Text.Json.Serialization.JsonPropertyName("out_product_id")] + public string OutProductId { get; set; } = string.Empty; + + /// + /// 获取或设置商家自定义 SKU ID。 + /// + [Newtonsoft.Json.JsonProperty("out_sku_id")] + [System.Text.Json.Serialization.JsonPropertyName("out_sku_id")] + public string OutSKUId { get; set; } = string.Empty; + + /// + /// 获取或设置商品数量。 + /// + [Newtonsoft.Json.JsonProperty("product_cnt")] + [System.Text.Json.Serialization.JsonPropertyName("product_cnt")] + public int Count { get; set; } + + /// + /// 获取或设置商品售价(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("sale_price")] + [System.Text.Json.Serialization.JsonPropertyName("sale_price")] + public int SalePrice { get; set; } + + /// + /// 获取或设置小程序商品页面路径。 + /// + [Newtonsoft.Json.JsonProperty("path")] + [System.Text.Json.Serialization.JsonPropertyName("path")] + public string PagePath { get; set; } = string.Empty; + + /// + /// 获取或设置商品标题。 + /// + [Newtonsoft.Json.JsonProperty("title")] + [System.Text.Json.Serialization.JsonPropertyName("title")] + public string Title { get; set; } = string.Empty; + + /// + /// 获取或设置商品头图 URL。 + /// + [Newtonsoft.Json.JsonProperty("head_img")] + [System.Text.Json.Serialization.JsonPropertyName("head_img")] + public string HeadImageUrl { get; set; } = string.Empty; + } + + public class Payment + { + /// + /// 获取或设置支付方式。 + /// + [Newtonsoft.Json.JsonProperty("pay_method_type")] + [System.Text.Json.Serialization.JsonPropertyName("pay_method_type")] + public int PayType { get; set; } + + /// + /// 获取或设置预支付单号。 + /// + [Newtonsoft.Json.JsonProperty("prepay_id")] + [System.Text.Json.Serialization.JsonPropertyName("prepay_id")] + public string PrepayId { get; set; } = string.Empty; + + /// + /// 获取或设置预支付时间。 + /// + [Newtonsoft.Json.JsonProperty("prepay_time")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.CommonDateTimeOffsetConverter))] + [System.Text.Json.Serialization.JsonPropertyName("prepay_time")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.CommonDateTimeOffsetConverter))] + public DateTimeOffset PrepayTime { get; set; } + } + + public class Amount + { + /// + /// 获取或设置订单金额(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("order_price")] + [System.Text.Json.Serialization.JsonPropertyName("order_price")] + public int OrderFee { get; set; } + + /// + /// 获取或设置运费(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("freight")] + [System.Text.Json.Serialization.JsonPropertyName("freight")] + public int FreightFee { get; set; } + + /// + /// 获取或设置优惠金额(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("discounted_price")] + [System.Text.Json.Serialization.JsonPropertyName("discounted_price")] + public int DiscountedFee { get; set; } + + /// + /// 获取或设置附加金额(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("additional_price")] + [System.Text.Json.Serialization.JsonPropertyName("additional_price")] + public int AdditionalPrice { get; set; } + + /// + /// 获取或设置附加金额备注。 + /// + [Newtonsoft.Json.JsonProperty("additional_remarks")] + [System.Text.Json.Serialization.JsonPropertyName("additional_remarks")] + public string? AdditionalRemark { get; set; } + } + } + + /// + /// 获取或设置商品列表。 + /// + [Newtonsoft.Json.JsonProperty("product_infos")] + [System.Text.Json.Serialization.JsonPropertyName("product_infos")] + public IList ProductList { get; set; } = new List(); + + /// + /// 获取或设置支付信息。 + /// + [Newtonsoft.Json.JsonProperty("pay_info")] + [System.Text.Json.Serialization.JsonPropertyName("pay_info")] + public Types.Payment Payment { get; set; } = new Types.Payment(); + + /// + /// 获取或设置金额信息。 + /// + [Newtonsoft.Json.JsonProperty("price_info")] + [System.Text.Json.Serialization.JsonPropertyName("price_info")] + public Types.Amount Amount { get; set; } = new Types.Amount(); + } + + public class Delivery + { + /// + /// 获取或设置快递方式。 + /// 默认值:1 + /// + [Newtonsoft.Json.JsonProperty("delivery_type")] + [System.Text.Json.Serialization.JsonPropertyName("delivery_type")] + public int DeliveryType { get; set; } = 1; + } + + public class Address + { + /// + /// 获取或设置收件人姓名。 + /// + [Newtonsoft.Json.JsonProperty("receiver_name")] + [System.Text.Json.Serialization.JsonPropertyName("receiver_name")] + public string Name { get; set; } = string.Empty; + + /// + /// 获取或设置国家。 + /// + [Newtonsoft.Json.JsonProperty("country")] + [System.Text.Json.Serialization.JsonPropertyName("country")] + public string? Country { get; set; } + + /// + /// 获取或设置省份。 + /// + [Newtonsoft.Json.JsonProperty("province")] + [System.Text.Json.Serialization.JsonPropertyName("province")] + public string? Province { get; set; } + + /// + /// 获取或设置城市。 + /// + [Newtonsoft.Json.JsonProperty("city")] + [System.Text.Json.Serialization.JsonPropertyName("city")] + public string? City { get; set; } + + /// + /// 获取或设置区县。 + /// + [Newtonsoft.Json.JsonProperty("town")] + [System.Text.Json.Serialization.JsonPropertyName("town")] + public string? District { get; set; } + + /// + /// 获取或设置详细地址。 + /// + [Newtonsoft.Json.JsonProperty("detailed_address")] + [System.Text.Json.Serialization.JsonPropertyName("detailed_address")] + public string Detail { get; set; } = string.Empty; + + /// + /// 获取或设置联系电话。 + /// + [Newtonsoft.Json.JsonProperty("tel_number")] + [System.Text.Json.Serialization.JsonPropertyName("tel_number")] + public string TeleNumber { get; set; } = string.Empty; + } + } + + /// + /// 获取或设置商家自定义订单号。 + /// + [Newtonsoft.Json.JsonProperty("out_order_id")] + [System.Text.Json.Serialization.JsonPropertyName("out_order_id")] + public string OutOrderId { get; set; } = string.Empty; + + /// + /// 获取或设置商家自定义用户标识。 + /// + [Newtonsoft.Json.JsonProperty("out_user_id")] + [System.Text.Json.Serialization.JsonPropertyName("out_user_id")] + public string? OutUserId { get; set; } + + /// + /// 获取或设置商家自定义订单号。 + /// + [Newtonsoft.Json.JsonProperty("openid")] + [System.Text.Json.Serialization.JsonPropertyName("openid")] + public string OpenId { get; set; } = string.Empty; + + /// + /// 获取或设置订单类型。 + /// + [Newtonsoft.Json.JsonProperty("type")] + [System.Text.Json.Serialization.JsonPropertyName("type")] + public int Type { get; set; } + + /// + /// 获取或设置场景值。 + /// + [Newtonsoft.Json.JsonProperty("scene")] + [System.Text.Json.Serialization.JsonPropertyName("scene")] + public int Scene { get; set; } + + /// + /// 获取或设置小程序订单页面路径。 + /// + [Newtonsoft.Json.JsonProperty("path")] + [System.Text.Json.Serialization.JsonPropertyName("path")] + public string PagePath { get; set; } = string.Empty; + + /// + /// 获取或设置订单详细信息。 + /// + [Newtonsoft.Json.JsonProperty("order_detail")] + [System.Text.Json.Serialization.JsonPropertyName("order_detail")] + public Types.OrderDetail OrderDetail { get; set; } = new Types.OrderDetail(); + + /// + /// 获取或设置快递信息。 + /// + [Newtonsoft.Json.JsonProperty("delivery_detail")] + [System.Text.Json.Serialization.JsonPropertyName("delivery_detail")] + public Types.Delivery Delivery { get; set; } = new Types.Delivery(); + + /// + /// 获取或设置地址信息。 + /// + [Newtonsoft.Json.JsonProperty("address_info")] + [System.Text.Json.Serialization.JsonPropertyName("address_info")] + public Types.Address? Address { get; set; } + + /// + /// 获取或设置创建时间。 + /// + [Newtonsoft.Json.JsonProperty("create_time")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.CommonDateTimeOffsetConverter))] + [System.Text.Json.Serialization.JsonPropertyName("create_time")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.CommonDateTimeOffsetConverter))] + public DateTimeOffset CreateTime { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Order/ShopOrderAddResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Order/ShopOrderAddResponse.cs new file mode 100644 index 00000000..28936419 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Order/ShopOrderAddResponse.cs @@ -0,0 +1,61 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/order/add 接口的响应。 + /// + public class ShopOrderAddResponse : WechatApiResponse + { + public static class Types + { + public class Data + { + /// + /// 获取或设置订单 ID。 + /// + [Newtonsoft.Json.JsonProperty("order_id")] + [System.Text.Json.Serialization.JsonPropertyName("order_id")] + public long OrderId { get; set; } + + /// + /// 获取或设置商家自定义订单号。 + /// + [Newtonsoft.Json.JsonProperty("out_order_id")] + [System.Text.Json.Serialization.JsonPropertyName("out_order_id")] + public string OutOrderId { get; set; } = default!; + + /// + /// 获取或设置拉起收银台的票据。 + /// + [Newtonsoft.Json.JsonProperty("ticket")] + [System.Text.Json.Serialization.JsonPropertyName("ticket")] + public string Ticket { get; set; } = default!; + + /// + /// 获取或设置拉起收银台的票据有效时间。 + /// + [Newtonsoft.Json.JsonProperty("ticket_expire_time")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.CommonDateTimeOffsetConverter))] + [System.Text.Json.Serialization.JsonPropertyName("ticket_expire_time")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.CommonDateTimeOffsetConverter))] + public DateTimeOffset TicketExpireTime { get; set; } + + /// + /// 获取或设置订单最终价格(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("final_price")] + [System.Text.Json.Serialization.JsonPropertyName("final_price")] + public int FinalFee { get; set; } + } + } + + /// + /// 获取或设置返回数据。 + /// + [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/Shop/Order/ShopOrderGetRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Order/ShopOrderGetRequest.cs new file mode 100644 index 00000000..cc44f8b5 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Order/ShopOrderGetRequest.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/order/get 接口的请求。 + /// + public class ShopOrderGetRequest : WechatApiRequest + { + /// + /// 获取或设置订单 ID。与字段 二选一。 + /// + [Newtonsoft.Json.JsonProperty("order_id")] + [System.Text.Json.Serialization.JsonPropertyName("order_id")] + public long? OrderId { get; set; } + + /// + /// 获取或设置商家自定义订单号。与字段 二选一。 + /// + [Newtonsoft.Json.JsonProperty("out_order_id")] + [System.Text.Json.Serialization.JsonPropertyName("out_order_id")] + public string? OutOrderId { get; set; } + + /// + /// 获取或设置用户的 OpenId。 + /// + [Newtonsoft.Json.JsonProperty("openid")] + [System.Text.Json.Serialization.JsonPropertyName("openid")] + public string OpenId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Order/ShopOrderGetResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Order/ShopOrderGetResponse.cs new file mode 100644 index 00000000..e1176002 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Order/ShopOrderGetResponse.cs @@ -0,0 +1,292 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/order/get 接口的响应。 + /// + public class ShopOrderGetResponse : WechatApiResponse + { + public static class Types + { + public class Order + { + public static class Types + { + public class OrderDetail + { + public static class Types + { + public class Product + { + /// + /// 获取或设置商品 ID。 + /// + [Newtonsoft.Json.JsonProperty("product_id")] + [System.Text.Json.Serialization.JsonPropertyName("product_id")] + public long ProductId { get; set; } + + /// + /// 获取或设置商家自定义商品 ID。 + /// + [Newtonsoft.Json.JsonProperty("out_product_id")] + [System.Text.Json.Serialization.JsonPropertyName("out_product_id")] + public string OutProductId { get; set; } = default!; + + /// + /// 获取或设置 SKU ID。 + /// + [Newtonsoft.Json.JsonProperty("sku_id")] + [System.Text.Json.Serialization.JsonPropertyName("sku_id")] + public long SKUId { get; set; } + + /// + /// 获取或设置商家自定义 SKU ID。 + /// + [Newtonsoft.Json.JsonProperty("out_sku_id")] + [System.Text.Json.Serialization.JsonPropertyName("out_sku_id")] + public string OutSKUId { get; set; } = default!; + + /// + /// 获取或设置商品数量。 + /// + [Newtonsoft.Json.JsonProperty("product_cnt")] + [System.Text.Json.Serialization.JsonPropertyName("product_cnt")] + public int Count { get; set; } + + /// + /// 获取或设置商品售价(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("sale_price")] + [System.Text.Json.Serialization.JsonPropertyName("sale_price")] + public int SalePrice { get; set; } + } + + public class Payment + { + /// + /// 获取或设置支付方式。 + /// + [Newtonsoft.Json.JsonProperty("pay_method")] + [System.Text.Json.Serialization.JsonPropertyName("pay_method")] + public string PayMethod { get; set; } = default!; + + /// + /// 获取或设置预支付单号。 + /// + [Newtonsoft.Json.JsonProperty("prepay_id")] + [System.Text.Json.Serialization.JsonPropertyName("prepay_id")] + public string PrepayId { get; set; } = default!; + + /// + /// 获取或设置预支付时间。 + /// + [Newtonsoft.Json.JsonProperty("prepay_time")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.CommonDateTimeOffsetConverter))] + [System.Text.Json.Serialization.JsonPropertyName("prepay_time")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.CommonDateTimeOffsetConverter))] + public DateTimeOffset PrepayTime { get; set; } + + /// + /// 获取或设置支付交易单号。 + /// + [Newtonsoft.Json.JsonProperty("transaction_id")] + [System.Text.Json.Serialization.JsonPropertyName("transaction_id")] + public string? TransactionId { get; set; } + + /// + /// 获取或设置付款时间。 + /// + [Newtonsoft.Json.JsonProperty("pay_time")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.CommonNullableDateTimeOffsetConverter))] + [System.Text.Json.Serialization.JsonPropertyName("pay_time")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.CommonNullableDateTimeOffsetConverter))] + public DateTimeOffset? PayTime { get; set; } + } + + public class Amount + { + /// + /// 获取或设置订单金额(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("order_price")] + [System.Text.Json.Serialization.JsonPropertyName("order_price")] + public int OrderFee { get; set; } + + /// + /// 获取或设置运费(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("freight")] + [System.Text.Json.Serialization.JsonPropertyName("freight")] + public int FreightFee { get; set; } + + /// + /// 获取或设置优惠金额(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("discounted_price")] + [System.Text.Json.Serialization.JsonPropertyName("discounted_price")] + public int DiscountedFee { get; set; } + + /// + /// 获取或设置附加金额(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("additional_price")] + [System.Text.Json.Serialization.JsonPropertyName("additional_price")] + public int AdditionalPrice { get; set; } + + /// + /// 获取或设置附加金额备注。 + /// + [Newtonsoft.Json.JsonProperty("additional_remarks")] + [System.Text.Json.Serialization.JsonPropertyName("additional_remarks")] + public string? AdditionalRemark { get; set; } + } + + public class Delivery + { + public static class Types + { + public class DeliveryDetail + { + /// + /// 获取或设置快递公司 ID。 + /// + [Newtonsoft.Json.JsonProperty("delivery_id")] + [System.Text.Json.Serialization.JsonPropertyName("delivery_id")] + public string DeliveryId { get; set; } = default!; + + /// + /// 获取或设置快递单号。 + /// + [Newtonsoft.Json.JsonProperty("waybill_id")] + [System.Text.Json.Serialization.JsonPropertyName("waybill_id")] + public string WaybillId { get; set; } = default!; + } + } + + /// + /// 获取或设置快递方式。 + /// + [Newtonsoft.Json.JsonProperty("delivery_type")] + [System.Text.Json.Serialization.JsonPropertyName("delivery_type")] + public int DeliveryType { get; set; } + + /// + /// 获取或设置是否发货完成。 + /// + [Newtonsoft.Json.JsonProperty("finish_all_delivery")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumberTypedBooleanConverter))] + [System.Text.Json.Serialization.JsonPropertyName("finish_all_delivery")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumberTypedBooleanConverter))] + public bool IsFinishAll { get; set; } + + /// + /// 获取或设置快递详情列表。 + /// + [Newtonsoft.Json.JsonProperty("delivery_list")] + [System.Text.Json.Serialization.JsonPropertyName("delivery_list")] + public Types.DeliveryDetail[]? DeliveryDetailList { get; set; } + } + } + + /// + /// 获取或设置商品列表。 + /// + [Newtonsoft.Json.JsonProperty("product_infos")] + [System.Text.Json.Serialization.JsonPropertyName("product_infos")] + public Types.Product[] ProductList { get; set; } = default!; + + /// + /// 获取或设置支付信息。 + /// + [Newtonsoft.Json.JsonProperty("pay_info")] + [System.Text.Json.Serialization.JsonPropertyName("pay_info")] + public Types.Payment? Payment { get; set; } + + /// + /// 获取或设置多支付信息。 + /// + [Newtonsoft.Json.JsonProperty("multi_pay_info")] + [System.Text.Json.Serialization.JsonPropertyName("multi_pay_info")] + public Types.Payment[]? PaymentList { get; set; } + + /// + /// 获取或设置金额信息。 + /// + [Newtonsoft.Json.JsonProperty("price_info")] + [System.Text.Json.Serialization.JsonPropertyName("price_info")] + public Types.Amount Amount { get; set; } = default!; + + /// + /// 获取或设置快递信息。 + /// + [Newtonsoft.Json.JsonProperty("delivery_detail")] + [System.Text.Json.Serialization.JsonPropertyName("delivery_detail")] + public Types.Delivery? Delivery { get; set; } + } + } + + /// + /// 获取或设置订单 ID。 + /// + [Newtonsoft.Json.JsonProperty("order_id")] + [System.Text.Json.Serialization.JsonPropertyName("order_id")] + public long OrderId { get; set; } + + /// + /// 获取或设置商家自定义订单号。 + /// + [Newtonsoft.Json.JsonProperty("out_order_id")] + [System.Text.Json.Serialization.JsonPropertyName("out_order_id")] + public string OutOrderId { get; set; } = default!; + + /// + /// 获取或设置订单状态。 + /// + [Newtonsoft.Json.JsonProperty("status")] + [System.Text.Json.Serialization.JsonPropertyName("status")] + public int Status { get; set; } + + /// + /// 获取或设置小程序订单页面路径。 + /// + [Newtonsoft.Json.JsonProperty("path")] + [System.Text.Json.Serialization.JsonPropertyName("path")] + public string PagePath { get; set; } = default!; + + /// + /// 获取或设置订单详细信息。 + /// + [Newtonsoft.Json.JsonProperty("order_detail")] + [System.Text.Json.Serialization.JsonPropertyName("order_detail")] + public Types.OrderDetail OrderDetail { get; set; } = default!; + + /// + /// 获取或设置更新时间。 + /// + [Newtonsoft.Json.JsonProperty("update_time")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.CommonDateTimeOffsetConverter))] + [System.Text.Json.Serialization.JsonPropertyName("update_time")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.CommonDateTimeOffsetConverter))] + public DateTimeOffset UpdateTime { get; set; } + + /// + /// 获取或设置创建时间。 + /// + [Newtonsoft.Json.JsonProperty("create_time")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.CommonDateTimeOffsetConverter))] + [System.Text.Json.Serialization.JsonPropertyName("create_time")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.CommonDateTimeOffsetConverter))] + public DateTimeOffset CreateTime { get; set; } + } + } + + /// + /// 获取或设置订单信息。 + /// + [Newtonsoft.Json.JsonProperty("order")] + [System.Text.Json.Serialization.JsonPropertyName("order")] + public Types.Order Order { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Order/ShopOrderPayRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Order/ShopOrderPayRequest.cs new file mode 100644 index 00000000..df1319b3 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Order/ShopOrderPayRequest.cs @@ -0,0 +1,62 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/order/pay 接口的请求。 + /// + public class ShopOrderPayRequest : WechatApiRequest + { + /// + /// 获取或设置订单 ID。与字段 二选一。 + /// + [Newtonsoft.Json.JsonProperty("order_id")] + [System.Text.Json.Serialization.JsonPropertyName("order_id")] + public long? OrderId { get; set; } + + /// + /// 获取或设置商家自定义订单号。与字段 二选一。 + /// + [Newtonsoft.Json.JsonProperty("out_order_id")] + [System.Text.Json.Serialization.JsonPropertyName("out_order_id")] + public string? OutOrderId { get; set; } + + /// + /// 获取或设置用户的 OpenId。 + /// + [Newtonsoft.Json.JsonProperty("openid")] + [System.Text.Json.Serialization.JsonPropertyName("openid")] + public string OpenId { get; set; } = string.Empty; + + /// + /// 获取或设置操作类型。 + /// + [Newtonsoft.Json.JsonProperty("action_type")] + [System.Text.Json.Serialization.JsonPropertyName("action_type")] + public int ActionType { get; set; } + + /// + /// 获取或设置操作备注。 + /// + [Newtonsoft.Json.JsonProperty("action_remark")] + [System.Text.Json.Serialization.JsonPropertyName("action_remark")] + public string? ActionRemark { get; set; } + + /// + /// 获取或设置支付交易单号。 + /// + [Newtonsoft.Json.JsonProperty("transaction_id")] + [System.Text.Json.Serialization.JsonPropertyName("transaction_id")] + public string? TransactionId { get; set; } + + /// + /// 获取或设置付款时间。 + /// + [Newtonsoft.Json.JsonProperty("pay_time")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.CommonNullableDateTimeOffsetConverter))] + [System.Text.Json.Serialization.JsonPropertyName("pay_time")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.CommonNullableDateTimeOffsetConverter))] + public DateTimeOffset? PayTime { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Order/ShopOrderPayResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Order/ShopOrderPayResponse.cs new file mode 100644 index 00000000..be5be88b --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Order/ShopOrderPayResponse.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/order/pay 接口的响应。 + /// + public class ShopOrderPayResponse : WechatApiResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Order/ShopSceneCheckRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Order/ShopSceneCheckRequest.cs new file mode 100644 index 00000000..c95eb555 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Order/ShopSceneCheckRequest.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/scene/check 接口的请求。 + /// + public class ShopSceneCheckRequest : WechatApiRequest + { + /// + /// 获取或设置场景值。 + /// + [Newtonsoft.Json.JsonProperty("scene")] + [System.Text.Json.Serialization.JsonPropertyName("scene")] + public int Scene { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Order/ShopSceneCheckResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Order/ShopSceneCheckResponse.cs new file mode 100644 index 00000000..22c48ea1 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Order/ShopSceneCheckResponse.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/scene/check 接口的响应。 + /// + public class ShopSceneCheckResponse : WechatApiResponse + { + /// + /// 获取或设置是否在支付校验范围内。 + /// + [Newtonsoft.Json.JsonProperty("is_matched")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumberTypedBooleanConverter))] + [System.Text.Json.Serialization.JsonPropertyName("is_matched")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumberTypedBooleanConverter))] + public bool IsMatched { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Register/ShopRegisterApplyRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Register/ShopRegisterApplyRequest.cs new file mode 100644 index 00000000..62dba145 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Register/ShopRegisterApplyRequest.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/register/apply 接口的请求。 + /// + public class ShopRegisterApplyRequest : WechatApiRequest + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Register/ShopRegisterApplyResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Register/ShopRegisterApplyResponse.cs new file mode 100644 index 00000000..b05aa51e --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Register/ShopRegisterApplyResponse.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/register/apply 接口的响应。 + /// + public class ShopRegisterApplyResponse : WechatApiResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Register/ShopRegisterCheckRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Register/ShopRegisterCheckRequest.cs new file mode 100644 index 00000000..5ac03fbd --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Register/ShopRegisterCheckRequest.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/register/check 接口的请求。 + /// + public class ShopRegisterCheckRequest : WechatApiRequest + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Register/ShopRegisterCheckResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Register/ShopRegisterCheckResponse.cs new file mode 100644 index 00000000..dce1b03b --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Register/ShopRegisterCheckResponse.cs @@ -0,0 +1,58 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/register/check 接口的响应。 + /// + public class ShopRegisterCheckResponse : WechatApiResponse + { + public static class Types + { + public class Data + { + public static class Types + { + public class Access + { + /// + /// 获取或设置上传商品并审核成功状态。 + /// + [Newtonsoft.Json.JsonProperty("spu_audit_success")] + [System.Text.Json.Serialization.JsonPropertyName("spu_audit_success")] + public int SPUAuditStatus { get; set; } + + /// + /// 获取或设置发起一笔订单并支付成功状态。 + /// + [Newtonsoft.Json.JsonProperty("pay_order_success")] + [System.Text.Json.Serialization.JsonPropertyName("pay_order_success")] + public int PayOrderStatus { get; set; } + } + } + + /// + /// 获取或设置审核状态。 + /// + [Newtonsoft.Json.JsonProperty("status")] + [System.Text.Json.Serialization.JsonPropertyName("status")] + public int Status { get; set; } + + /// + /// 获取或设置接入相关信息。 + /// + [Newtonsoft.Json.JsonProperty("access_info")] + [System.Text.Json.Serialization.JsonPropertyName("access_info")] + public Types.Access? Access { get; set; } + } + } + + /// + /// 获取或设置返回数据。 + /// + [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/Shop/SPU/ShopSPUAddRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUAddRequest.cs new file mode 100644 index 00000000..d670f077 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUAddRequest.cs @@ -0,0 +1,164 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/spu/add 接口的请求。 + /// + public class ShopSPUAddRequest : WechatApiRequest + { + public static class Types + { + public class Detail : ProductSPUAddRequest.Types.Detail + { + /// + /// 获取或设置商品描述。 + /// + [Newtonsoft.Json.JsonProperty("desc")] + [System.Text.Json.Serialization.JsonPropertyName("desc")] + public string Description { get; set; } = string.Empty; + } + + public class Attribute : ProductSPUAddRequest.Types.Attribute + { + } + + public class SKU + { + /// + /// 获取或设置商家自定义商品 ID。 + /// + [Newtonsoft.Json.JsonProperty("out_product_id")] + [System.Text.Json.Serialization.JsonPropertyName("out_product_id")] + public string OutProductId { get; set; } = string.Empty; + + /// + /// 获取或设置商家自定义 SKU ID。 + /// + [Newtonsoft.Json.JsonProperty("out_sku_id")] + [System.Text.Json.Serialization.JsonPropertyName("out_sku_id")] + public string OutSKUId { get; set; } = string.Empty; + + /// + /// 获取或设置缩略图 URL。 + /// + [Newtonsoft.Json.JsonProperty("thumb_img")] + [System.Text.Json.Serialization.JsonPropertyName("thumb_img")] + public string ThumbnailUrl { get; set; } = string.Empty; + + /// + /// 获取或设置售价(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("sale_price")] + [System.Text.Json.Serialization.JsonPropertyName("sale_price")] + public int SalePrice { get; set; } + + /// + /// 获取或设置市场价(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("market_price")] + [System.Text.Json.Serialization.JsonPropertyName("market_price")] + public int MarketPrice { get; set; } + + /// + /// 获取或设置库存。 + /// + [Newtonsoft.Json.JsonProperty("stock_num")] + [System.Text.Json.Serialization.JsonPropertyName("stock_num")] + public int Stock { get; set; } + + /// + /// 获取或设置商品编码。 + /// + [Newtonsoft.Json.JsonProperty("sku_code")] + [System.Text.Json.Serialization.JsonPropertyName("sku_code")] + public string? SKUCode { get; set; } + + /// + /// 获取或设置条形码。 + /// + [Newtonsoft.Json.JsonProperty("barcode")] + [System.Text.Json.Serialization.JsonPropertyName("barcode")] + public string? BarCode { get; set; } + + /// + /// 获取或设置商品属性列表。 + /// + [Newtonsoft.Json.JsonProperty("sku_attrs")] + [System.Text.Json.Serialization.JsonPropertyName("sku_attrs")] + public IList AttributeList { get; set; } = new List(); + } + } + + /// + /// 获取或设置商家自定义商品 ID。 + /// + [Newtonsoft.Json.JsonProperty("out_product_id")] + [System.Text.Json.Serialization.JsonPropertyName("out_product_id")] + public string OutProductId { get; set; } = string.Empty; + + /// + /// 获取或设置商品标题。 + /// + [Newtonsoft.Json.JsonProperty("title")] + [System.Text.Json.Serialization.JsonPropertyName("title")] + public string Title { get; set; } = string.Empty; + + /// + /// 获取或设置小程序商品页面路径。 + /// + [Newtonsoft.Json.JsonProperty("path")] + [System.Text.Json.Serialization.JsonPropertyName("path")] + public string PagePath { get; set; } = string.Empty; + + /// + /// 获取或设置主图 Url 列表。 + /// + [Newtonsoft.Json.JsonProperty("head_img")] + [System.Text.Json.Serialization.JsonPropertyName("head_img")] + public IList HeadImageUrlList { get; set; } = new List(); + + /// + /// 获取或设置商品资质图片 Url 列表。 + /// + [Newtonsoft.Json.JsonProperty("qualification_pics")] + [System.Text.Json.Serialization.JsonPropertyName("qualification_pics")] + public IList? QualificationPictureUrlList { get; set; } + + /// + /// 获取或设置商品详情信息。 + /// + [Newtonsoft.Json.JsonProperty("desc_info")] + [System.Text.Json.Serialization.JsonPropertyName("desc_info")] + public Types.Detail? Detail { get; set; } + + /// + /// 获取或设置类目 ID。 + /// + [Newtonsoft.Json.JsonProperty("third_cat_id")] + [System.Text.Json.Serialization.JsonPropertyName("third_cat_id")] + public int CategoryId { get; set; } + + /// + /// 获取或设置品牌 ID。 + /// + [Newtonsoft.Json.JsonProperty("brand_id")] + [System.Text.Json.Serialization.JsonPropertyName("brand_id")] + public int BrandId { get; set; } + + /// + /// 获取或设置版本控制。 + /// + [Newtonsoft.Json.JsonProperty("info_version")] + [System.Text.Json.Serialization.JsonPropertyName("info_version")] + public string? InfoVersion { get; set; } + + /// + /// 获取或设置 SKU 列表。 + /// + [Newtonsoft.Json.JsonProperty("skus")] + [System.Text.Json.Serialization.JsonPropertyName("skus")] + public IList SKUList { get; set; } = new List(); + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUAddResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUAddResponse.cs new file mode 100644 index 00000000..b45a762d --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUAddResponse.cs @@ -0,0 +1,51 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/spu/add 接口的响应。 + /// + public class ShopSPUAddResponse : WechatApiResponse + { + public static class Types + { + public class Data : ProductSPUAddResponse.Types.Data + { + public static class Types + { + public class SKU + { + /// + /// 获取或设置 SKU ID。 + /// + [Newtonsoft.Json.JsonProperty("sku_id")] + [System.Text.Json.Serialization.JsonPropertyName("sku_id")] + public long SKUId { get; set; } + + /// + /// 获取或设置商家自定义 SKU ID。 + /// + [Newtonsoft.Json.JsonProperty("out_sku_id")] + [System.Text.Json.Serialization.JsonPropertyName("out_sku_id")] + public string OutSKUId { get; set; } = default!; + } + } + + /// + /// 获取或设置 SKU 列表。 + /// + [Newtonsoft.Json.JsonProperty("skus")] + [System.Text.Json.Serialization.JsonPropertyName("skus")] + public Types.SKU[] SKUList { 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/Shop/SPU/ShopSPUDeleteAuditRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUDeleteAuditRequest.cs new file mode 100644 index 00000000..c319b36e --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUDeleteAuditRequest.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/spu/del_audit 接口的请求。 + /// + public class ShopSPUDeleteAuditRequest : ShopSPUDeleteRequest + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUDeleteAuditResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUDeleteAuditResponse.cs new file mode 100644 index 00000000..405d4e21 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUDeleteAuditResponse.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/spu/del_audit 接口的响应。 + /// + public class ShopSPUDeleteAuditResponse : WechatApiResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUDeleteRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUDeleteRequest.cs new file mode 100644 index 00000000..6c448076 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUDeleteRequest.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/spu/del 接口的请求。 + /// + public class ShopSPUDeleteRequest : WechatApiRequest + { + /// + /// 获取或设置商品 ID。与字段 二选一。 + /// + [Newtonsoft.Json.JsonProperty("product_id")] + [System.Text.Json.Serialization.JsonPropertyName("product_id")] + public long? ProductId { get; set; } + + /// + /// 获取或设置商家自定义商品 ID。与字段 二选一。 + /// + [Newtonsoft.Json.JsonProperty("out_product_id")] + [System.Text.Json.Serialization.JsonPropertyName("out_product_id")] + public string? OutProductId { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUDeleteResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUDeleteResponse.cs new file mode 100644 index 00000000..eb070c53 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUDeleteResponse.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/spu/del 接口的响应。 + /// + public class ShopSPUDeleteResponse : WechatApiResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUDelistingRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUDelistingRequest.cs new file mode 100644 index 00000000..d19386dd --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUDelistingRequest.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/spu/delisting 接口的请求。 + /// + public class ShopSPUDelistingRequest : ShopSPUListingRequest + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUDelistingResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUDelistingResponse.cs new file mode 100644 index 00000000..4bdec0db --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUDelistingResponse.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/spu/delisting 接口的响应。 + /// + public class ShopSPUDelistingResponse : WechatApiResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUGetListRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUGetListRequest.cs new file mode 100644 index 00000000..ce6c0cde --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUGetListRequest.cs @@ -0,0 +1,77 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/spu/get_list 接口的请求。 + /// + public class ShopSPUGetListRequest : WechatApiRequest + { + /// + /// 获取或设置指定创建时间的开始时间。 + /// + [Newtonsoft.Json.JsonProperty("start_create_time")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.CommonNullableDateTimeOffsetConverter))] + [System.Text.Json.Serialization.JsonPropertyName("start_create_time")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.CommonNullableDateTimeOffsetConverter))] + public DateTimeOffset? StartCreateTime { get; set; } + + /// + /// 获取或设置指定创建时间的结束时间。 + /// + [Newtonsoft.Json.JsonProperty("end_create_time")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.CommonNullableDateTimeOffsetConverter))] + [System.Text.Json.Serialization.JsonPropertyName("end_create_time")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.CommonNullableDateTimeOffsetConverter))] + public DateTimeOffset? EndCreateTime { get; set; } + + /// + /// 获取或设置指定更新时间的开始时间。 + /// + [Newtonsoft.Json.JsonProperty("start_update_time")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.CommonNullableDateTimeOffsetConverter))] + [System.Text.Json.Serialization.JsonPropertyName("start_update_time")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.CommonNullableDateTimeOffsetConverter))] + public DateTimeOffset? StartUpdateTime { get; set; } + + /// + /// 获取或设置指定更新时间的结束时间。 + /// + [Newtonsoft.Json.JsonProperty("end_update_time")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.CommonNullableDateTimeOffsetConverter))] + [System.Text.Json.Serialization.JsonPropertyName("end_update_time")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.CommonNullableDateTimeOffsetConverter))] + public DateTimeOffset? EndUpdateTime { get; set; } + + /// + /// 获取或设置指定商品上线状态。 + /// + [Newtonsoft.Json.JsonProperty("status")] + [System.Text.Json.Serialization.JsonPropertyName("status")] + public int ListingStatus { get; set; } + + /// + /// 获取或设置分页页数(从 1 开始)。 + /// + [Newtonsoft.Json.JsonProperty("page")] + [System.Text.Json.Serialization.JsonPropertyName("page")] + public int Page { get; set; } = 1; + + /// + /// 获取或设置分页每页数量。 + /// + [Newtonsoft.Json.JsonProperty("page_size")] + [System.Text.Json.Serialization.JsonPropertyName("page_size")] + public int Limit { get; set; } = 10; + + /// + /// 获取或设置是否获取草稿数据。 + /// + [Newtonsoft.Json.JsonProperty("need_edit_spu")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumberTypedNullableBooleanConverter))] + [System.Text.Json.Serialization.JsonPropertyName("need_edit_spu")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumberTypedNullableBooleanConverter))] + public bool? RequireEdittingSPU { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUGetListResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUGetListResponse.cs new file mode 100644 index 00000000..6a574bb7 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUGetListResponse.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/spu/get_list 接口的响应。 + /// + public class ShopSPUGetListResponse : WechatApiResponse + { + public static class Types + { + public class SPU : ShopSPUGetResponse.Types.SPU + { + } + } + + /// + /// 获取或设置 SPU 列表。 + /// + [Newtonsoft.Json.JsonProperty("spus")] + [System.Text.Json.Serialization.JsonPropertyName("spus")] + public Types.SPU[] SPUList { get; set; } = default!; + + /// + /// 获取或设置 SPU 总数量。 + /// + [Newtonsoft.Json.JsonProperty("total_num")] + [System.Text.Json.Serialization.JsonPropertyName("total_num")] + public int Total { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUGetRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUGetRequest.cs new file mode 100644 index 00000000..8f97761c --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUGetRequest.cs @@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/spu/get 接口的请求。 + /// + public class ShopSPUGetRequest : WechatApiRequest + { + /// + /// 获取或设置商品 ID。与字段 二选一。 + /// + [Newtonsoft.Json.JsonProperty("product_id")] + [System.Text.Json.Serialization.JsonPropertyName("product_id")] + public long? ProductId { get; set; } + + /// + /// 获取或设置商家自定义商品 ID。与字段 二选一。 + /// + [Newtonsoft.Json.JsonProperty("out_product_id")] + [System.Text.Json.Serialization.JsonPropertyName("out_product_id")] + public string? OutProductId { get; set; } + + /// + /// 获取或设置是否获取草稿数据。 + /// + [Newtonsoft.Json.JsonProperty("need_edit_spu")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumberTypedNullableBooleanConverter))] + [System.Text.Json.Serialization.JsonPropertyName("need_edit_spu")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumberTypedNullableBooleanConverter))] + public bool? RequireEdittingSPU { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUGetResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUGetResponse.cs new file mode 100644 index 00000000..a85451ff --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUGetResponse.cs @@ -0,0 +1,278 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/spu/get 接口的响应。 + /// + public class ShopSPUGetResponse : WechatApiResponse + { + public static class Types + { + public class SPU + { + public static class Types + { + public class Detail + { + /// + /// 获取或设置商品描述。 + /// + [Newtonsoft.Json.JsonProperty("desc")] + [System.Text.Json.Serialization.JsonPropertyName("desc")] + public string Description { get; set; } = default!; + + /// + /// 获取或设置商品详情图片 Url 列表。 + /// + [Newtonsoft.Json.JsonProperty("imgs")] + [System.Text.Json.Serialization.JsonPropertyName("imgs")] + public string[] ImageUrlList { get; set; } = default!; + } + + public class Audit + { + /// + /// 获取或设置审核单 ID。 + /// + [Newtonsoft.Json.JsonProperty("audit_id")] + [System.Text.Json.Serialization.JsonPropertyName("audit_id")] + public string AuditId { get; set; } = default!; + + /// + /// 获取或设置提交时间。 + /// + [Newtonsoft.Json.JsonProperty("submit_time")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.CommonDateTimeOffsetConverter))] + [System.Text.Json.Serialization.JsonPropertyName("submit_time")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.CommonDateTimeOffsetConverter))] + public DateTimeOffset SubmitTime { get; set; } + + /// + /// 获取或设置审核时间。 + /// + [Newtonsoft.Json.JsonProperty("audit_time")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.CommonNullableDateTimeOffsetConverter))] + [System.Text.Json.Serialization.JsonPropertyName("audit_time")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.CommonNullableDateTimeOffsetConverter))] + public DateTimeOffset? AuditTime { get; set; } + + /// + /// 获取或设置拒绝原因。 + /// + [Newtonsoft.Json.JsonProperty("reject_reason")] + [System.Text.Json.Serialization.JsonPropertyName("reject_reason")] + public string? RejectReason { get; set; } + } + + public class Attribute + { + /// + /// 获取或设置属性的 Key。 + /// + [Newtonsoft.Json.JsonProperty("attr_key")] + [System.Text.Json.Serialization.JsonPropertyName("attr_key")] + public string Key { get; set; } = default!; + + /// + /// 获取或设置属性的值。 + /// + [Newtonsoft.Json.JsonProperty("attr_value")] + [System.Text.Json.Serialization.JsonPropertyName("attr_value")] + public string Value { get; set; } = default!; + } + + public class SKU + { + /// + /// 获取或设置 SKU ID。 + /// + [Newtonsoft.Json.JsonProperty("sku_id")] + [System.Text.Json.Serialization.JsonPropertyName("sku_id")] + public long SKUId { get; set; } + + /// + /// 获取或设置商家自定义 SKU ID。 + /// + [Newtonsoft.Json.JsonProperty("out_sku_id")] + [System.Text.Json.Serialization.JsonPropertyName("out_sku_id")] + public string OutSKUId { get; set; } = default!; + + /// + /// 获取或设置缩略图 URL。 + /// + [Newtonsoft.Json.JsonProperty("thumb_img")] + [System.Text.Json.Serialization.JsonPropertyName("thumb_img")] + public string ThumbnailUrl { get; set; } = default!; + + /// + /// 获取或设置售价(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("sale_price")] + [System.Text.Json.Serialization.JsonPropertyName("sale_price")] + public int SalePrice { get; set; } + + /// + /// 获取或设置市场价(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("market_price")] + [System.Text.Json.Serialization.JsonPropertyName("market_price")] + public int MarketPrice { get; set; } + + /// + /// 获取或设置库存。 + /// + [Newtonsoft.Json.JsonProperty("stock_num")] + [System.Text.Json.Serialization.JsonPropertyName("stock_num")] + public int Stock { get; set; } + + /// + /// 获取或设置商品编码。 + /// + [Newtonsoft.Json.JsonProperty("sku_code")] + [System.Text.Json.Serialization.JsonPropertyName("sku_code")] + public string? SKUCode { get; set; } + + /// + /// 获取或设置条形码。 + /// + [Newtonsoft.Json.JsonProperty("barcode")] + [System.Text.Json.Serialization.JsonPropertyName("barcode")] + public string? BarCode { get; set; } + + /// + /// 获取或设置商品属性列表。 + /// + [Newtonsoft.Json.JsonProperty("sku_attrs")] + [System.Text.Json.Serialization.JsonPropertyName("sku_attrs")] + public Attribute[] AttributeList { get; set; } = default!; + } + } + + /// + /// 获取或设置商品 ID。 + /// + [Newtonsoft.Json.JsonProperty("product_id")] + [System.Text.Json.Serialization.JsonPropertyName("product_id")] + public long ProductId { get; set; } + + /// + /// 获取或设置商家自定义商品 ID。 + /// + [Newtonsoft.Json.JsonProperty("out_product_id")] + [System.Text.Json.Serialization.JsonPropertyName("out_product_id")] + public string OutProductId { get; set; } = default!; + + /// + /// 获取或设置商品标题。 + /// + [Newtonsoft.Json.JsonProperty("title")] + [System.Text.Json.Serialization.JsonPropertyName("title")] + public string Title { get; set; } = default!; + + /// + /// 获取或设置小程序商品页面路径。 + /// + [Newtonsoft.Json.JsonProperty("path")] + [System.Text.Json.Serialization.JsonPropertyName("path")] + public string PagePath { get; set; } = default!; + + /// + /// 获取或设置主图 Url 列表。 + /// + [Newtonsoft.Json.JsonProperty("head_img")] + [System.Text.Json.Serialization.JsonPropertyName("head_img")] + public string[] HeadImageUrlList { get; set; } = default!; + + /// + /// 获取或设置商品资质图片 Url 列表。 + /// + [Newtonsoft.Json.JsonProperty("qualification_pics")] + [System.Text.Json.Serialization.JsonPropertyName("qualification_pics")] + public string[]? QualificationPictureUrlList { get; set; } + + /// + /// 获取或设置商品详情信息。 + /// + [Newtonsoft.Json.JsonProperty("desc_info")] + [System.Text.Json.Serialization.JsonPropertyName("desc_info")] + public Types.Detail Detail { get; set; } = default!; + + /// + /// 获取或设置商品审核信息。 + /// + [Newtonsoft.Json.JsonProperty("audit_info")] + [System.Text.Json.Serialization.JsonPropertyName("audit_info")] + public Types.Audit Audit { get; set; } = default!; + + /// + /// 获取或设置类目 ID。 + /// + [Newtonsoft.Json.JsonProperty("third_cat_id")] + [System.Text.Json.Serialization.JsonPropertyName("third_cat_id")] + public int CategoryId { get; set; } + + /// + /// 获取或设置品牌 ID。 + /// + [Newtonsoft.Json.JsonProperty("brand_id")] + [System.Text.Json.Serialization.JsonPropertyName("brand_id")] + public int BrandId { get; set; } + + /// + /// 获取或设置版本控制。 + /// + [Newtonsoft.Json.JsonProperty("info_version")] + [System.Text.Json.Serialization.JsonPropertyName("info_version")] + public string? InfoVersion { get; set; } + + /// + /// 获取或设置商品上线状态。 + /// + [Newtonsoft.Json.JsonProperty("status")] + [System.Text.Json.Serialization.JsonPropertyName("status")] + public int ListingStatus { get; set; } + + /// + /// 获取或设置商品草稿状态。 + /// + [Newtonsoft.Json.JsonProperty("edit_status")] + [System.Text.Json.Serialization.JsonPropertyName("edit_status")] + public int EditingStatus { get; set; } + + /// + /// 获取或设置 SKU 列表。 + /// + [Newtonsoft.Json.JsonProperty("skus")] + [System.Text.Json.Serialization.JsonPropertyName("skus")] + public Types.SKU[]? SKUList { get; set; } + + /// + /// 获取或设置更新时间。 + /// + [Newtonsoft.Json.JsonProperty("update_time")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.CommonDateTimeOffsetConverter))] + [System.Text.Json.Serialization.JsonPropertyName("update_time")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.CommonDateTimeOffsetConverter))] + public DateTimeOffset UpdateTime { get; set; } + + /// + /// 获取或设置创建时间。 + /// + [Newtonsoft.Json.JsonProperty("create_time")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.CommonDateTimeOffsetConverter))] + [System.Text.Json.Serialization.JsonPropertyName("create_time")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.CommonDateTimeOffsetConverter))] + public DateTimeOffset CreateTime { get; set; } + } + } + + /// + /// 获取或设置 SPU 信息。 + /// + [Newtonsoft.Json.JsonProperty("spu")] + [System.Text.Json.Serialization.JsonPropertyName("spu")] + public Types.SPU SPU { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUListingRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUListingRequest.cs new file mode 100644 index 00000000..b6dbb3fd --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUListingRequest.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/spu/listing 接口的请求。 + /// + public class ShopSPUListingRequest : WechatApiRequest + { + /// + /// 获取或设置商品 ID。与字段 二选一。 + /// + [Newtonsoft.Json.JsonProperty("product_id")] + [System.Text.Json.Serialization.JsonPropertyName("product_id")] + public long? ProductId { get; set; } + + /// + /// 获取或设置商家自定义商品 ID。与字段 二选一。 + /// + [Newtonsoft.Json.JsonProperty("out_product_id")] + [System.Text.Json.Serialization.JsonPropertyName("out_product_id")] + public string? OutProductId { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUListingResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUListingResponse.cs new file mode 100644 index 00000000..00aa0691 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUListingResponse.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/spu/listing 接口的响应。 + /// + public class ShopSPUListingResponse : WechatApiResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUUpdateRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUUpdateRequest.cs new file mode 100644 index 00000000..c6a73dba --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUUpdateRequest.cs @@ -0,0 +1,103 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/spu/update 接口的请求。 + /// + public class ShopSPUUpdateRequest : WechatApiRequest + { + public static class Types + { + public class Detail : ShopSPUAddRequest.Types.Detail + { + } + + public class Attribute : ShopSPUAddRequest.Types.Attribute + { + } + + public class SKU : ShopSPUAddRequest.Types.SKU + { + } + } + + /// + /// 获取或设置商品 ID。与字段 二选一。 + /// + [Newtonsoft.Json.JsonProperty("product_id")] + [System.Text.Json.Serialization.JsonPropertyName("product_id")] + public long? ProductId { get; set; } + + /// + /// 获取或设置商家自定义商品 ID。与字段 二选一。 + /// + [Newtonsoft.Json.JsonProperty("out_product_id")] + [System.Text.Json.Serialization.JsonPropertyName("out_product_id")] + public string? OutProductId { get; set; } + + /// + /// 获取或设置商品标题。 + /// + [Newtonsoft.Json.JsonProperty("title")] + [System.Text.Json.Serialization.JsonPropertyName("title")] + public string Title { get; set; } = string.Empty; + + /// + /// 获取或设置小程序商品页面路径。 + /// + [Newtonsoft.Json.JsonProperty("path")] + [System.Text.Json.Serialization.JsonPropertyName("path")] + public string PagePath { get; set; } = string.Empty; + + /// + /// 获取或设置主图 Url 列表。 + /// + [Newtonsoft.Json.JsonProperty("head_img")] + [System.Text.Json.Serialization.JsonPropertyName("head_img")] + public IList HeadImageUrlList { get; set; } = new List(); + + /// + /// 获取或设置商品资质图片 Url 列表。 + /// + [Newtonsoft.Json.JsonProperty("qualification_pics")] + [System.Text.Json.Serialization.JsonPropertyName("qualification_pics")] + public IList? QualificationPictureUrlList { get; set; } + + /// + /// 获取或设置商品详情信息。 + /// + [Newtonsoft.Json.JsonProperty("desc_info")] + [System.Text.Json.Serialization.JsonPropertyName("desc_info")] + public Types.Detail? Detail { get; set; } + + /// + /// 获取或设置类目 ID。 + /// + [Newtonsoft.Json.JsonProperty("third_cat_id")] + [System.Text.Json.Serialization.JsonPropertyName("third_cat_id")] + public int CategoryId { get; set; } + + /// + /// 获取或设置品牌 ID。 + /// + [Newtonsoft.Json.JsonProperty("brand_id")] + [System.Text.Json.Serialization.JsonPropertyName("brand_id")] + public int BrandId { get; set; } + + /// + /// 获取或设置版本控制。 + /// + [Newtonsoft.Json.JsonProperty("info_version")] + [System.Text.Json.Serialization.JsonPropertyName("info_version")] + public string? InfoVersion { get; set; } + + /// + /// 获取或设置 SKU 列表。 + /// + [Newtonsoft.Json.JsonProperty("skus")] + [System.Text.Json.Serialization.JsonPropertyName("skus")] + public IList SKUList { get; set; } = new List(); + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUUpdateResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUUpdateResponse.cs new file mode 100644 index 00000000..be263557 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/SPU/ShopSPUUpdateResponse.cs @@ -0,0 +1,38 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/spu/update 接口的响应。 + /// + public class ShopSPUUpdateResponse : WechatApiResponse + { + public static class Types + { + public class Data : ProductSPUUpdateResponse.Types.Data + { + public static class Types + { + public class SKU : ShopSPUAddResponse.Types.Data.Types.SKU + { + } + } + + /// + /// 获取或设置 SKU 列表。 + /// + [Newtonsoft.Json.JsonProperty("skus")] + [System.Text.Json.Serialization.JsonPropertyName("skus")] + public Types.SKU[] SKUList { 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/Shop/ShopImageUploadRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/ShopImageUploadRequest.cs new file mode 100644 index 00000000..bedd6b57 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/ShopImageUploadRequest.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/img/upload 接口的请求。 + /// + public class ShopImageUploadRequest : WechatApiRequest + { + /// + /// 获取或设置图片文件字节数组。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public byte[] ImageFileBytes { get; set; } = new byte[0]; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/ShopImageUploadResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/ShopImageUploadResponse.cs new file mode 100644 index 00000000..99fb1d4e --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/ShopImageUploadResponse.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/img/upload 接口的响应。 + /// + public class ShopImageUploadResponse : WechatApiResponse + { + public static class Types + { + public class Image + { + /// + /// 获取或设置 MediaId。 + /// + [Newtonsoft.Json.JsonProperty("media_id")] + [System.Text.Json.Serialization.JsonPropertyName("media_id")] + public string MediaId { get; set; } = default!; + } + } + + /// + /// 获取或设置图片信息。 + /// + [Newtonsoft.Json.JsonProperty("img_info")] + [System.Text.Json.Serialization.JsonPropertyName("img_info")] + public Types.Image Image { get; set; } = default!; + } +}