diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMarketingMemberCardOpenExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMarketingMemberCardOpenExtensions.cs index 957cdbe2..4f024831 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMarketingMemberCardOpenExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMarketingMemberCardOpenExtensions.cs @@ -11,6 +11,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 /// public static class WechatTenpayClientExecuteMarketingMemberCardOpenExtensions { + #region Card /// /// 异步调用 [POST] /marketing/membercard-open/cards 接口。 /// REF: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/marketing/membercard_open/chapter3_1.shtml @@ -49,25 +50,6 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } - /// - /// 异步调用 [POST] /marketing/membercard-open/cards/{card_id}/codes/deposit 接口。 - /// REF: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/marketing/membercard_open/chapter3_7.shtml - /// - /// - /// - /// - /// - public static async Task ExecuteDepositMarketingMemberCardOpenCardCodesAsync(this WechatTenpayClient client, Models.DepositMarketingMemberCardOpenCardCodesRequest request, CancellationToken cancellationToken = default) - { - if (client is null) throw new ArgumentNullException(nameof(client)); - if (request is null) throw new ArgumentNullException(nameof(request)); - - IFlurlRequest flurlReq = client - .CreateRequest(request, HttpMethod.Post, "marketing", "membercard-open", "cards", request.CardId, "codes", "deposit"); - - return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); - } - /// /// 异步调用 [GET] /marketing/membercard-open/cards 接口。 /// REF: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/marketing/membercard_open/chapter3_3.shtml @@ -153,5 +135,151 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } + #endregion + + #region Code + /// + /// 异步调用 [POST] /marketing/membercard-open/cards/{card_id}/codes/deposit 接口。 + /// REF: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/marketing/membercard_open/chapter3_7.shtml + /// + /// + /// + /// + /// + public static async Task ExecuteDepositMarketingMemberCardOpenCardCodesAsync(this WechatTenpayClient client, Models.DepositMarketingMemberCardOpenCardCodesRequest request, CancellationToken cancellationToken = default) + { + if (client is null) throw new ArgumentNullException(nameof(client)); + if (request is null) throw new ArgumentNullException(nameof(request)); + + IFlurlRequest flurlReq = client + .CreateRequest(request, HttpMethod.Post, "marketing", "membercard-open", "cards", request.CardId, "codes", "deposit"); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /marketing/membercard-open/cards/{card_id}/users/import 接口。 + /// REF: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/marketing/membercard_open/chapter3_13.shtml + /// + /// + /// + /// + /// + public static async Task ExecuteImportMarketingMemberCardOpenCardUserAsync(this WechatTenpayClient client, Models.ImportMarketingMemberCardOpenCardUserRequest request, CancellationToken cancellationToken = default) + { + if (client is null) throw new ArgumentNullException(nameof(client)); + if (request is null) throw new ArgumentNullException(nameof(request)); + + IFlurlRequest flurlReq = client + .CreateRequest(request, HttpMethod.Post, "marketing", "membercard-open", "cards", request.CardId, "users", "import"); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /marketing/membercard-open/cards/{card_id}/phone-membercard/import 接口。 + /// REF: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/marketing/membercard_open/chapter3_14.shtml + /// + /// + /// + /// + /// + public static async Task ExecuteImportMarketingMemberCardOpenCardPhoneAsync(this WechatTenpayClient client, Models.ImportMarketingMemberCardOpenCardPhoneRequest request, CancellationToken cancellationToken = default) + { + if (client is null) throw new ArgumentNullException(nameof(client)); + if (request is null) throw new ArgumentNullException(nameof(request)); + + IFlurlRequest flurlReq = client + .CreateRequest(request, HttpMethod.Post, "marketing", "membercard-open", "cards", request.CardId, "phone-membercard", "import"); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /marketing/membercard-open/cards/{card_id}/codes/{code}/unavailable 接口。 + /// REF: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/marketing/membercard_open/chapter3_12.shtml + /// + /// + /// + /// + /// + public static async Task ExecuteSetMarketingMemberCardOpenCardCodeUnavailableAsync(this WechatTenpayClient client, Models.SetMarketingMemberCardOpenCardCodeUnavailableRequest request, CancellationToken cancellationToken = default) + { + if (client is null) throw new ArgumentNullException(nameof(client)); + if (request is null) throw new ArgumentNullException(nameof(request)); + + IFlurlRequest flurlReq = client + .CreateRequest(request, HttpMethod.Post, "marketing", "membercard-open", "cards", request.CardId, "codes", request.Code, "unavailable"); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [GET] /marketing/membercard-open/cards/{card_id}/codes/{code} 接口。 + /// REF: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/marketing/membercard_open/chapter3_4.shtml + /// + /// + /// + /// + /// + public static async Task ExecuteGetMarketingMemberCardOpenCardCodeByCardIdAndCodeAsync(this WechatTenpayClient client, Models.GetMarketingMemberCardOpenCardCodeByCardIdAndCodeRequest request, CancellationToken cancellationToken = default) + { + if (client is null) throw new ArgumentNullException(nameof(client)); + if (request is null) throw new ArgumentNullException(nameof(request)); + + IFlurlRequest flurlReq = client + .CreateRequest(request, HttpMethod.Get, "marketing", "membercard-open", "cards", request.CardId, "codes", request.Code); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [GET] /marketing/membercard-open/user/cards 接口。 + /// REF: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/marketing/membercard_open/chapter3_5.shtml + /// + /// + /// + /// + /// + public static async Task ExecuteQueryMarketingMemberCardOpenUserCardsAsync(this WechatTenpayClient client, Models.QueryMarketingMemberCardOpenUserCardsRequest request, CancellationToken cancellationToken = default) + { + if (client is null) throw new ArgumentNullException(nameof(client)); + if (request is null) throw new ArgumentNullException(nameof(request)); + + IFlurlRequest flurlReq = client + .CreateRequest(request, HttpMethod.Get, "marketing", "membercard-open", "user", "cards") + .SetQueryParam("openid", request.OpenId); + + if (request.AppId != null) + flurlReq.SetQueryParam("appid", request.AppId); + + if (request.Limit != null) + flurlReq.SetQueryParam("limit", request.Limit.Value.ToString()); + + if (request.Offset != null) + flurlReq.SetQueryParam("offset", request.Offset.Value.ToString()); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [PATCH] /marketing/membercard-open/cards/{card_id}/codes/{code} 接口。 + /// REF: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/marketing/membercard_open/chapter3_8.shtml + /// + /// + /// + /// + /// + public static async Task ExecuteUpdateMarketingMemberCardOpenCardCodeAsync(this WechatTenpayClient client, Models.UpdateMarketingMemberCardOpenCardCodeRequest request, CancellationToken cancellationToken = default) + { + if (client is null) throw new ArgumentNullException(nameof(client)); + if (request is null) throw new ArgumentNullException(nameof(request)); + + IFlurlRequest flurlReq = client + .CreateRequest(request, new HttpMethod("PATCH"), "marketing", "membercard-open", "cards", request.CardId, "codes", request.Code); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + #endregion } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Card/CreateMarketingMemberCardOpenCardRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Card/CreateMarketingMemberCardOpenCardRequest.cs index ff97ea1a..96252683 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Card/CreateMarketingMemberCardOpenCardRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Card/CreateMarketingMemberCardOpenCardRequest.cs @@ -130,11 +130,11 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models } /// - /// 获取或设置平台提供的通用开卡信息字段列表。 + /// 获取或设置平台提供的通用开卡信息字段名称列表。 /// [Newtonsoft.Json.JsonProperty("common_field_list")] [System.Text.Json.Serialization.JsonPropertyName("common_field_list")] - public IList? CommonFieldList { get; set; } + public IList? CommonFieldNameList { get; set; } /// /// 获取或设置商户自定义的开卡信息字段列表。 diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Card/GetMarketingMemberCardOpenCardByCardIdResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Card/GetMarketingMemberCardOpenCardByCardIdResponse.cs index cf631d0f..cdbbe532 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Card/GetMarketingMemberCardOpenCardByCardIdResponse.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Card/GetMarketingMemberCardOpenCardByCardIdResponse.cs @@ -136,11 +136,11 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models public bool? CanModifyAfterActivate { get; set; } /// - /// 获取或设置平台提供的通用开卡信息字段列表。 + /// 获取或设置平台提供的通用开卡信息字段名称列表。 /// [Newtonsoft.Json.JsonProperty("common_field_list")] [System.Text.Json.Serialization.JsonPropertyName("common_field_list")] - public string[]? CommonFieldList { get; set; } + public string[]? CommonFieldNameList { get; set; } /// /// 获取或设置商户自定义的开卡信息字段列表。 diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Card/QueryMarketingMemberCardOpenCardsResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Card/QueryMarketingMemberCardOpenCardsResponse.cs index ab559eec..3022327b 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Card/QueryMarketingMemberCardOpenCardsResponse.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Card/QueryMarketingMemberCardOpenCardsResponse.cs @@ -230,7 +230,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models public int Offset { get; set; } /// - /// 获取或设置活动总数量。 + /// 获取或设置会员卡总数量。 /// [Newtonsoft.Json.JsonProperty("total_count")] [System.Text.Json.Serialization.JsonPropertyName("total_count")] diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Card/UpdateMarketingMemberCardOpenCardRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Card/UpdateMarketingMemberCardOpenCardRequest.cs index b91c0a86..e2c7d327 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Card/UpdateMarketingMemberCardOpenCardRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Card/UpdateMarketingMemberCardOpenCardRequest.cs @@ -34,11 +34,11 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models public bool? CanModifyAfterActivate { get; set; } /// - /// 获取或设置平台提供的通用开卡信息字段列表。 + /// 获取或设置平台提供的通用开卡信息字段名称列表。 /// [Newtonsoft.Json.JsonProperty("common_field_list")] [System.Text.Json.Serialization.JsonPropertyName("common_field_list")] - public IList? CommonFieldList { get; set; } + public IList? CommonFieldNameList { get; set; } /// /// 获取或设置商户自定义的开卡信息字段列表。 diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Card/DepositMarketingMemberCardOpenCardCodesRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Code/DepositMarketingMemberCardOpenCardCodesRequest.cs similarity index 100% rename from src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Card/DepositMarketingMemberCardOpenCardCodesRequest.cs rename to src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Code/DepositMarketingMemberCardOpenCardCodesRequest.cs diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Card/DepositMarketingMemberCardOpenCardCodesResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Code/DepositMarketingMemberCardOpenCardCodesResponse.cs similarity index 100% rename from src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Card/DepositMarketingMemberCardOpenCardCodesResponse.cs rename to src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Code/DepositMarketingMemberCardOpenCardCodesResponse.cs diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Code/GetMarketingMemberCardOpenCardCodeByCardIdAndCodeRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Code/GetMarketingMemberCardOpenCardCodeByCardIdAndCodeRequest.cs new file mode 100644 index 00000000..e7702675 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Code/GetMarketingMemberCardOpenCardCodeByCardIdAndCodeRequest.cs @@ -0,0 +1,22 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [GET] /marketing/membercard-open/cards/{card_id}/codes/{code} 接口的请求。 + /// + public class GetMarketingMemberCardOpenCardCodeByCardIdAndCodeRequest : WechatTenpayRequest + { + /// + /// 获取或设置会员卡 ID。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string CardId { get; set; } = string.Empty; + + /// + /// 获取或设置会员卡 Code。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string Code { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Code/GetMarketingMemberCardOpenCardCodeByCardIdAndCodeResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Code/GetMarketingMemberCardOpenCardCodeByCardIdAndCodeResponse.cs new file mode 100644 index 00000000..144ef0ce --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Code/GetMarketingMemberCardOpenCardCodeByCardIdAndCodeResponse.cs @@ -0,0 +1,337 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [GET] /marketing/membercard-open/cards/{card_id}/codes/{code} 接口的响应。 + /// + public class GetMarketingMemberCardOpenCardCodeByCardIdAndCodeResponse : WechatTenpayResponse + { + public static class Types + { + public class UserInformation + { + public static class Types + { + public class CommonField + { + /// + /// 获取或设置字段名称。 + /// + [Newtonsoft.Json.JsonProperty("name")] + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } = default!; + + /// + /// 获取或设置字段值。 + /// + [Newtonsoft.Json.JsonProperty("value")] + [System.Text.Json.Serialization.JsonPropertyName("value")] + public string Value { get; set; } = default!; + } + + public class CustomField + { + /// + /// 获取或设置字段名称。 + /// + [Newtonsoft.Json.JsonProperty("name")] + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } = default!; + + /// + /// 获取或设置字段值。 + /// + [Newtonsoft.Json.JsonProperty("value")] + [System.Text.Json.Serialization.JsonPropertyName("value")] + public string? Value { get; set; } + + /// + /// 获取或设置字段值。 + /// + [Newtonsoft.Json.JsonProperty("value_list")] + [System.Text.Json.Serialization.JsonPropertyName("value_list")] + public string[]? Values { get; set; } + } + } + + /// + /// 获取或设置平台提供的通用开卡信息字段列表。 + /// + [Newtonsoft.Json.JsonProperty("common_field_list")] + [System.Text.Json.Serialization.JsonPropertyName("common_field_list")] + public Types.CommonField[]? CommonFieldList { get; set; } + + /// + /// 获取或设置商户自定义的开卡信息字段列表。 + /// + [Newtonsoft.Json.JsonProperty("custom_field_list")] + [System.Text.Json.Serialization.JsonPropertyName("custom_field_list")] + public Types.CustomField[]? CustomFieldList { get; set; } + } + + public class ServiceModule + { + public static class Types + { + public class StateSetting + { + public static class Types + { + public class ContentTemplate + { + public static class Types + { + public class Field + { + /// + /// 获取或设置内容字段 ID。 + /// + [Newtonsoft.Json.JsonProperty("field_id")] + [System.Text.Json.Serialization.JsonPropertyName("field_id")] + public string FieldId { get; set; } = default!; + + /// + /// 获取或设置内容字段值。 + /// + [Newtonsoft.Json.JsonProperty("field_value")] + [System.Text.Json.Serialization.JsonPropertyName("field_value")] + public string FieldValue { get; set; } = default!; + } + + public class ActionSetting + { + public static class Types + { + public class MiniProgram + { + /// + /// 获取或设置小程序 AppId。 + /// + [Newtonsoft.Json.JsonProperty("appid")] + [System.Text.Json.Serialization.JsonPropertyName("appid")] + public string AppId { get; set; } = default!; + + /// + /// 获取或设置小程序页面路径。 + /// + [Newtonsoft.Json.JsonProperty("path")] + [System.Text.Json.Serialization.JsonPropertyName("path")] + public string Path { get; set; } = default!; + } + } + + /// + /// 获取或设置操作名称。 + /// + [Newtonsoft.Json.JsonProperty("action_name")] + [System.Text.Json.Serialization.JsonPropertyName("action_name")] + public string ActionName { get; set; } = default!; + + /// + /// 获取或设置跳转小程序信息。 + /// + [Newtonsoft.Json.JsonProperty("jump_miniprogram")] + [System.Text.Json.Serialization.JsonPropertyName("jump_miniprogram")] + public Types.MiniProgram MiniProgram { get; set; } = default!; + } + } + + /// + /// 获取或设置内容字段列表。 + /// + [Newtonsoft.Json.JsonProperty("field_list")] + [System.Text.Json.Serialization.JsonPropertyName("field_list")] + public Types.Field[] FieldList { get; set; } = default!; + + /// + /// 获取或设置操作设置信息。 + /// + [Newtonsoft.Json.JsonProperty("action_setting")] + [System.Text.Json.Serialization.JsonPropertyName("action_setting")] + public Types.ActionSetting? ActionSetting { get; set; } + } + + public class TemplateMessageSetting + { + public static class Types + { + public class Field + { + /// + /// 获取或设置消息字段 ID。 + /// + [Newtonsoft.Json.JsonProperty("field_id")] + [System.Text.Json.Serialization.JsonPropertyName("field_id")] + public string FieldId { get; set; } = default!; + + /// + /// 获取或设置消息字段值。 + /// + [Newtonsoft.Json.JsonProperty("field_value")] + [System.Text.Json.Serialization.JsonPropertyName("field_value")] + public string FieldValue { get; set; } = default!; + } + } + + /// + /// 获取或设置模板消息 ID。 + /// + [Newtonsoft.Json.JsonProperty("message_template_id")] + [System.Text.Json.Serialization.JsonPropertyName("message_template_id")] + public string TemplateMessageId { get; set; } = default!; + + /// + /// 获取或设置消息字段列表。 + /// + [Newtonsoft.Json.JsonProperty("field_list")] + [System.Text.Json.Serialization.JsonPropertyName("field_list")] + public Types.Field[]? FieldList { get; set; } + } + } + + /// + /// 获取或设置状态 ID。 + /// + [Newtonsoft.Json.JsonProperty("state_id")] + [System.Text.Json.Serialization.JsonPropertyName("state_id")] + public string StateId { get; set; } = default!; + + /// + /// 获取或设置内容模板信息。 + /// + [Newtonsoft.Json.JsonProperty("content_template_data")] + [System.Text.Json.Serialization.JsonPropertyName("content_template_data")] + public Types.ContentTemplate? ContentTemplate { get; set; } + + /// + /// 获取或设置模板消息设置信息。 + /// + [Newtonsoft.Json.JsonProperty("message_template_setting")] + [System.Text.Json.Serialization.JsonPropertyName("message_template_setting")] + public Types.TemplateMessageSetting? TemplateMessageSetting { get; set; } + } + } + + /// + /// 获取或设置会员服务项 ID。 + /// + [Newtonsoft.Json.JsonProperty("service_module_id")] + [System.Text.Json.Serialization.JsonPropertyName("service_module_id")] + public string ServiceModuleId { get; set; } = default!; + + /// + /// 获取或设置服务状态设置。 + /// + [Newtonsoft.Json.JsonProperty("state_setting")] + [System.Text.Json.Serialization.JsonPropertyName("state_setting")] + public Types.StateSetting? StateSetting { get; set; } + } + + public class Guide : GetMarketingMemberCardOpenCardByCardIdResponse.Types.Guide + { + } + } + + /// + /// 获取或设置会员卡 ID。 + /// + [Newtonsoft.Json.JsonProperty("card_id")] + [System.Text.Json.Serialization.JsonPropertyName("card_id")] + public string CardId { get; set; } = default!; + + /// + /// 获取或设置用户 OpenId。 + /// + [Newtonsoft.Json.JsonProperty("openid")] + [System.Text.Json.Serialization.JsonPropertyName("openid")] + public string? OpenId { get; set; } + + /// + /// 获取或设置会员卡编号。 + /// + [Newtonsoft.Json.JsonProperty("membership_number")] + [System.Text.Json.Serialization.JsonPropertyName("membership_number")] + public string? MembershipNumber { get; set; } + + /// + /// 获取或设置用户等级。 + /// + [Newtonsoft.Json.JsonProperty("level")] + [System.Text.Json.Serialization.JsonPropertyName("level")] + public string? Level { get; set; } + + /// + /// 获取或设置用户昵称。 + /// + [Newtonsoft.Json.JsonProperty("nickname")] + [System.Text.Json.Serialization.JsonPropertyName("nickname")] + public string? Nickname { get; set; } + + /// + /// 获取或设置用户头像 URL。 + /// + [Newtonsoft.Json.JsonProperty("head_image_url")] + [System.Text.Json.Serialization.JsonPropertyName("head_image_url")] + public string? HeadImageUrl { get; set; } + + /// + /// 获取或设置背景图片媒体文件地址。 + /// + [Newtonsoft.Json.JsonProperty("background_picture_url")] + [System.Text.Json.Serialization.JsonPropertyName("background_picture_url")] + public string? BackgroundPictureMediaUrl { get; set; } + + /// + /// 获取或设置会员卡状态。 + /// + [Newtonsoft.Json.JsonProperty("user_card_status")] + [System.Text.Json.Serialization.JsonPropertyName("user_card_status")] + public string? Status { get; set; } + + /// + /// 获取或设置用户储值余额(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("balance")] + [System.Text.Json.Serialization.JsonPropertyName("balance")] + public int? BalanceValue { get; set; } + + /// + /// 获取或设置用户当前积分。 + /// + [Newtonsoft.Json.JsonProperty("bonus_value")] + [System.Text.Json.Serialization.JsonPropertyName("bonus_value")] + public int? BonusValue { get; set; } + + /// + /// 获取或设置用户开卡时填写的个人信息。 + /// + [Newtonsoft.Json.JsonProperty("user_information")] + [System.Text.Json.Serialization.JsonPropertyName("user_information")] + public Types.UserInformation? UserInformation { get; set; } + + /// + /// 获取或设置会员服务项列表。 + /// + [Newtonsoft.Json.JsonProperty("service_modules")] + [System.Text.Json.Serialization.JsonPropertyName("service_modules")] + public Types.ServiceModule[]? ServiceModuleList { get; set; } + + /// + /// 获取或设置发票跳转文案。 + /// + [Newtonsoft.Json.JsonProperty("fapiao_jump_word")] + [System.Text.Json.Serialization.JsonPropertyName("fapiao_jump_word")] + public string? InvoiceJumpWords { get; set; } + + /// + /// 获取或设置客服信息。 + /// + [Newtonsoft.Json.JsonProperty("guide")] + [System.Text.Json.Serialization.JsonPropertyName("guide")] + public Types.Guide? Guide { get; set; } + + public override bool IsSuccessful() + { + return this.RawStatus == 200; + } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Code/ImportMarketingMemberCardOpenCardPhoneRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Code/ImportMarketingMemberCardOpenCardPhoneRequest.cs new file mode 100644 index 00000000..8ce6bcd8 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Code/ImportMarketingMemberCardOpenCardPhoneRequest.cs @@ -0,0 +1,37 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /marketing/membercard-open/cards/{card_id}/phone-membercard/import 接口的请求。 + /// + public class ImportMarketingMemberCardOpenCardPhoneRequest : WechatTenpayRequest + { + /// + /// 获取或设置会员卡 ID。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string CardId { get; set; } = string.Empty; + + /// + /// 获取或设置用户手机号码(需使用平台公钥/证书加密)。 + /// + [Newtonsoft.Json.JsonProperty("encrypted_phone_number")] + [System.Text.Json.Serialization.JsonPropertyName("encrypted_phone_number")] + [WechatTenpaySensitiveProperty(algorithm: Constants.EncryptionAlgorithms.RSA_2048_PKCS8_ECB)] + public string EncryptedPhoneNumber { get; set; } = string.Empty; + + /// + /// 获取或设置会员卡 Code。 + /// + [Newtonsoft.Json.JsonProperty("code")] + [System.Text.Json.Serialization.JsonPropertyName("code")] + public string? Code { get; set; } + + /// + /// 获取或设置商户请求单号。 + /// + [Newtonsoft.Json.JsonProperty("out_request_no")] + [System.Text.Json.Serialization.JsonPropertyName("out_request_no")] + public string OutRequestNumber { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Code/ImportMarketingMemberCardOpenCardPhoneResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Code/ImportMarketingMemberCardOpenCardPhoneResponse.cs new file mode 100644 index 00000000..ecdf9eb6 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Code/ImportMarketingMemberCardOpenCardPhoneResponse.cs @@ -0,0 +1,13 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /marketing/membercard-open/cards/{card_id}/phone-membercard/import 接口的响应。 + /// + public class ImportMarketingMemberCardOpenCardPhoneResponse : WechatTenpayResponse + { + public override bool IsSuccessful() + { + return RawStatus == 200; + } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Code/ImportMarketingMemberCardOpenCardUserRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Code/ImportMarketingMemberCardOpenCardUserRequest.cs new file mode 100644 index 00000000..6a1c71a4 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Code/ImportMarketingMemberCardOpenCardUserRequest.cs @@ -0,0 +1,36 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /marketing/membercard-open/cards/{card_id}/users/import 接口的请求。 + /// + public class ImportMarketingMemberCardOpenCardUserRequest : WechatTenpayRequest + { + /// + /// 获取或设置会员卡 ID。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string CardId { get; set; } = string.Empty; + + /// + /// 获取或设置用户的 OpenId。 + /// + [Newtonsoft.Json.JsonProperty("openid")] + [System.Text.Json.Serialization.JsonPropertyName("openid")] + public string OpenId { get; set; } = string.Empty; + + /// + /// 获取或设置会员卡 Code。 + /// + [Newtonsoft.Json.JsonProperty("code")] + [System.Text.Json.Serialization.JsonPropertyName("code")] + public string? Code { get; set; } + + /// + /// 获取或设置商户请求单号。 + /// + [Newtonsoft.Json.JsonProperty("out_request_no")] + [System.Text.Json.Serialization.JsonPropertyName("out_request_no")] + public string OutRequestNumber { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Code/ImportMarketingMemberCardOpenCardUserResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Code/ImportMarketingMemberCardOpenCardUserResponse.cs new file mode 100644 index 00000000..003e0405 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Code/ImportMarketingMemberCardOpenCardUserResponse.cs @@ -0,0 +1,13 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /marketing/membercard-open/cards/{card_id}/users/import 接口的响应。 + /// + public class ImportMarketingMemberCardOpenCardUserResponse : WechatTenpayResponse + { + public override bool IsSuccessful() + { + return RawStatus == 200; + } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Code/QueryMarketingMemberCardOpenUserCardsRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Code/QueryMarketingMemberCardOpenUserCardsRequest.cs new file mode 100644 index 00000000..1975db32 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Code/QueryMarketingMemberCardOpenUserCardsRequest.cs @@ -0,0 +1,36 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [GET] /marketing/membercard-open/user/cards 接口的请求。 + /// + public class QueryMarketingMemberCardOpenUserCardsRequest : WechatTenpayRequest + { + /// + /// 获取或设置公众号 AppId。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string? AppId { get; set; } + + /// + /// 获取或设置用户 OpenId。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string OpenId { get; set; } = string.Empty; + + /// + /// 获取或设置分页大小。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public int? Limit { get; set; } + + /// + /// 获取或设置分页开始位置。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public int? Offset { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Code/QueryMarketingMemberCardOpenUserCardsResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Code/QueryMarketingMemberCardOpenUserCardsResponse.cs new file mode 100644 index 00000000..d7e76caf --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Code/QueryMarketingMemberCardOpenUserCardsResponse.cs @@ -0,0 +1,56 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [GET] /marketing/membercard-open/user/cards 接口的响应。 + /// + public class QueryMarketingMemberCardOpenUserCardsResponse : WechatTenpayResponse + { + public static class Types + { + public class UserCard + { + /// + /// 获取或设置会员卡 ID。 + /// + [Newtonsoft.Json.JsonProperty("card_id")] + [System.Text.Json.Serialization.JsonPropertyName("card_id")] + public string CardId { get; set; } = default!; + + /// + /// 获取或设置会员卡 Code。 + /// + [Newtonsoft.Json.JsonProperty("code")] + [System.Text.Json.Serialization.JsonPropertyName("code")] + public string? Code { get; set; } + } + } + + /// + /// 获取或设置用户会员卡列表。 + /// + [Newtonsoft.Json.JsonProperty("data")] + [System.Text.Json.Serialization.JsonPropertyName("data")] + public Types.UserCard[] UserCardList { get; set; } = default!; + + /// + /// 获取或设置分页大小。 + /// + [Newtonsoft.Json.JsonProperty("limit")] + [System.Text.Json.Serialization.JsonPropertyName("limit")] + public int Limit { get; set; } + + /// + /// 获取或设置分页开始位置。 + /// + [Newtonsoft.Json.JsonProperty("offset")] + [System.Text.Json.Serialization.JsonPropertyName("offset")] + public int Offset { get; set; } + + /// + /// 获取或设置用户会员卡总数量。 + /// + [Newtonsoft.Json.JsonProperty("total_count")] + [System.Text.Json.Serialization.JsonPropertyName("total_count")] + public int TotalCount { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Code/SetMarketingMemberCardOpenCardCodeUnavailableRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Code/SetMarketingMemberCardOpenCardCodeUnavailableRequest.cs new file mode 100644 index 00000000..84c1957d --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Code/SetMarketingMemberCardOpenCardCodeUnavailableRequest.cs @@ -0,0 +1,29 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /marketing/membercard-open/cards/{card_id}/codes/{code}/unavailable 接口的请求。 + /// + public class SetMarketingMemberCardOpenCardCodeUnavailableRequest : WechatTenpayRequest + { + /// + /// 获取或设置会员卡 ID。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string CardId { get; set; } = string.Empty; + + /// + /// 获取或设置会员卡 Code。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string Code { get; set; } = string.Empty; + + /// + /// 获取或设置失效原因。 + /// + [Newtonsoft.Json.JsonProperty("reason")] + [System.Text.Json.Serialization.JsonPropertyName("reason")] + public string? Reason { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Code/SetMarketingMemberCardOpenCardCodeUnavailableResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Code/SetMarketingMemberCardOpenCardCodeUnavailableResponse.cs new file mode 100644 index 00000000..54814c9a --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Code/SetMarketingMemberCardOpenCardCodeUnavailableResponse.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /marketing/membercard-open/cards/{card_id}/codes/{code}/unavailable 接口的响应。 + /// + public class SetMarketingMemberCardOpenCardCodeUnavailableResponse : WechatTenpayResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Code/UpdateMarketingMemberCardOpenCardCodeRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Code/UpdateMarketingMemberCardOpenCardCodeRequest.cs new file mode 100644 index 00000000..395b68e6 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Code/UpdateMarketingMemberCardOpenCardCodeRequest.cs @@ -0,0 +1,105 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [PATCH] /marketing/membercard-open/cards/{card_id}/codes/{code} 接口的请求。 + /// + public class UpdateMarketingMemberCardOpenCardCodeRequest : WechatTenpayRequest + { + public static class Types + { + public class Balance + { + /// + /// 获取或设置更新前用户储值余额(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("before_balance")] + [System.Text.Json.Serialization.JsonPropertyName("before_balance")] + public int BalanceValueBefore { get; set; } + + /// + /// 获取或设置更新后用户储值余额(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("balance")] + [System.Text.Json.Serialization.JsonPropertyName("balance")] + public int BalanceValue { get; set; } + + /// + /// 获取或设置本次余额变动值。 + /// + [Newtonsoft.Json.JsonProperty("add_balance")] + [System.Text.Json.Serialization.JsonPropertyName("add_balance")] + public int BalanceDiff { get; set; } + + /// + /// 获取或设置备注信息。 + /// + [Newtonsoft.Json.JsonProperty("balance_remark")] + [System.Text.Json.Serialization.JsonPropertyName("balance_remark")] + public string? Remark { get; set; } + } + } + + /// + /// 获取或设置会员卡 ID。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string CardId { get; set; } = string.Empty; + + /// + /// 获取或设置会员卡 Code。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string Code { get; set; } = string.Empty; + + /// + /// 获取或设置会员卡编号。 + /// + [Newtonsoft.Json.JsonProperty("membership_number")] + [System.Text.Json.Serialization.JsonPropertyName("membership_number")] + public string? MembershipNumber { get; set; } + + /// + /// 获取或设置用户等级。 + /// + [Newtonsoft.Json.JsonProperty("level")] + [System.Text.Json.Serialization.JsonPropertyName("level")] + public string? Level { get; set; } + + /// + /// 获取或设置背景图片媒体文件地址。 + /// + [Newtonsoft.Json.JsonProperty("background_picture_url")] + [System.Text.Json.Serialization.JsonPropertyName("background_picture_url")] + public string? BackgroundPictureMediaUrl { get; set; } + + /// + /// 获取或设置商户请求单号。 + /// + [Newtonsoft.Json.JsonProperty("out_request_no")] + [System.Text.Json.Serialization.JsonPropertyName("out_request_no")] + public string OutRequestNumber { get; set; } = string.Empty; + + /// + /// 获取或设置用户储值变更信息。 + /// + [Newtonsoft.Json.JsonProperty("balance_information")] + [System.Text.Json.Serialization.JsonPropertyName("balance_information")] + public Types.Balance? Balance { get; set; } + + /// + /// 获取或设置是否发送储值变更通知。 + /// + [Newtonsoft.Json.JsonProperty("need_inform_balance")] + [System.Text.Json.Serialization.JsonPropertyName("need_inform_balance")] + public bool? RequreInformBalance { get; set; } + + /// + /// 获取或设置是否发送等级变更通知。 + /// + [Newtonsoft.Json.JsonProperty("need_inform_level")] + [System.Text.Json.Serialization.JsonPropertyName("need_inform_level")] + public bool? RequreInformLevel { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Code/UpdateMarketingMemberCardOpenCardCodeResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Code/UpdateMarketingMemberCardOpenCardCodeResponse.cs new file mode 100644 index 00000000..d7bbcbc6 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingMemberCardOpen/Code/UpdateMarketingMemberCardOpenCardCodeResponse.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [PATCH] /marketing/membercard-open/cards/{card_id}/codes/{code} 接口的响应。 + /// + public class UpdateMarketingMemberCardOpenCardCodeResponse : WechatTenpayResponse + { + } +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MarketingMemberCardOpen/Card/DepositMarketingMemberCardOpenCardCodesRequest.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MarketingMemberCardOpen/Code/DepositMarketingMemberCardOpenCardCodesRequest.json similarity index 100% rename from test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MarketingMemberCardOpen/Card/DepositMarketingMemberCardOpenCardCodesRequest.json rename to test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MarketingMemberCardOpen/Code/DepositMarketingMemberCardOpenCardCodesRequest.json diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MarketingMemberCardOpen/Card/DepositMarketingMemberCardOpenCardCodesResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MarketingMemberCardOpen/Code/DepositMarketingMemberCardOpenCardCodesResponse.json similarity index 100% rename from test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MarketingMemberCardOpen/Card/DepositMarketingMemberCardOpenCardCodesResponse.json rename to test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MarketingMemberCardOpen/Code/DepositMarketingMemberCardOpenCardCodesResponse.json diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MarketingMemberCardOpen/Code/GetMarketingMemberCardOpenCardCodeByCardIdAndCodeRequest.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MarketingMemberCardOpen/Code/GetMarketingMemberCardOpenCardCodeByCardIdAndCodeRequest.json new file mode 100644 index 00000000..22fdca1b --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MarketingMemberCardOpen/Code/GetMarketingMemberCardOpenCardCodeByCardIdAndCodeRequest.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MarketingMemberCardOpen/Code/GetMarketingMemberCardOpenCardCodeByCardIdAndCodeResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MarketingMemberCardOpen/Code/GetMarketingMemberCardOpenCardCodeByCardIdAndCodeResponse.json new file mode 100644 index 00000000..e4e239ed --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MarketingMemberCardOpen/Code/GetMarketingMemberCardOpenCardCodeByCardIdAndCodeResponse.json @@ -0,0 +1,60 @@ +{ + "card_id": "pbLatjvWOibDc5-TBnbUk1pD12o0", + "code": "478515832665", + "openid": "obLatjnx9gnqzS4myYGmLZ7LgLBA", + "membership_number": "316510891298", + "level": "钻石会员", + "nickname": "周星星", + "head_image_url": "http://wx.qlogo.cn/xxx", + "background_picture_url": "https://wxpaylogo.qpic.cn/wxpaylogo/PiajxSqBRaEIPAeia7Imvtsn7sYGNcEj33YzVvJF88ECQ19LXId8ZL2Q/0", + "balance": 888, + "user_card_status": "EFFECTIVE", + "user_information": { + "common_field_list": [ + { + "name": "USER_FORM_FLAG_MOBILE", + "value": "深圳" + } + ], + "custom_field_list": [ + { + "name": "喜欢的运动", + "value": "篮球", + "value_list": ["羽毛球,足球,乒乓球"] + } + ] + }, + "bonus_value": 600, + "service_modules": [ + { + "service_module_id": "666", + "state_setting": { + "state_id": "CHECKED_IN", + "content_template_data": { + "field_list": [ + { + "field_id": "hotel_name", + "field_value": "深圳市南山区滨海路700号" + } + ], + "action_setting": { + "action_name": "一键开锁", + "jump_miniprogram": { + "appid": "wx37178d097a6851d8", + "path": "pages/index/index" + } + } + }, + "message_template_setting": { + "message_template_id": "9bJgRNz9XG248XZ-a0nDKH3Vt_vaTp32fRP1LWvxjzI", + "field_list": [ + { + "field_id": "keyword1", + "field_value": "深圳市南山区滨海路700号" + } + ] + } + } + } + ] +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MarketingMemberCardOpen/Code/ImportMarketingMemberCardOpenCardPhoneRequest.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MarketingMemberCardOpen/Code/ImportMarketingMemberCardOpenCardPhoneRequest.json new file mode 100644 index 00000000..4a0ad41e --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MarketingMemberCardOpen/Code/ImportMarketingMemberCardOpenCardPhoneRequest.json @@ -0,0 +1,5 @@ +{ + "encrypted_phone_number": "vvysDQeEaH3I+BdPQaKSE2j4mAFON3kzNexb/SYkHZNJAuCittaW4wpGj7U+h9A==", + "code": "478515832665", + "out_request_no": "100002322019090134234sfdf" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MarketingMemberCardOpen/Code/ImportMarketingMemberCardOpenCardPhoneResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MarketingMemberCardOpen/Code/ImportMarketingMemberCardOpenCardPhoneResponse.json new file mode 100644 index 00000000..649c3f91 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MarketingMemberCardOpen/Code/ImportMarketingMemberCardOpenCardPhoneResponse.json @@ -0,0 +1,3 @@ +{ + "code": "478515832665" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MarketingMemberCardOpen/Code/ImportMarketingMemberCardOpenCardUserRequest.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MarketingMemberCardOpen/Code/ImportMarketingMemberCardOpenCardUserRequest.json new file mode 100644 index 00000000..76c605b7 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MarketingMemberCardOpen/Code/ImportMarketingMemberCardOpenCardUserRequest.json @@ -0,0 +1,5 @@ +{ + "openid": "obLatjnx9gnqzS4myYGmLZ7LgLBA", + "code": "478515832665", + "out_request_no": "100002322019090134234sfdf" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MarketingMemberCardOpen/Code/ImportMarketingMemberCardOpenCardUserResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MarketingMemberCardOpen/Code/ImportMarketingMemberCardOpenCardUserResponse.json new file mode 100644 index 00000000..649c3f91 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MarketingMemberCardOpen/Code/ImportMarketingMemberCardOpenCardUserResponse.json @@ -0,0 +1,3 @@ +{ + "code": "478515832665" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MarketingMemberCardOpen/Code/QueryMarketingMemberCardOpenUserCardsRequest.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MarketingMemberCardOpen/Code/QueryMarketingMemberCardOpenUserCardsRequest.json new file mode 100644 index 00000000..22fdca1b --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MarketingMemberCardOpen/Code/QueryMarketingMemberCardOpenUserCardsRequest.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MarketingMemberCardOpen/Code/QueryMarketingMemberCardOpenUserCardsResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MarketingMemberCardOpen/Code/QueryMarketingMemberCardOpenUserCardsResponse.json new file mode 100644 index 00000000..4cba85d2 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MarketingMemberCardOpen/Code/QueryMarketingMemberCardOpenUserCardsResponse.json @@ -0,0 +1,11 @@ +{ + "data": [ + { + "card_id": "pbLatjvWOibDc5-TBnbUk1pD12o0", + "code": "478515832665" + } + ], + "total_count": 20, + "offset": 1, + "limit": 20 +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MarketingMemberCardOpen/Code/SetMarketingMemberCardOpenCardCodeUnavailableRequest.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MarketingMemberCardOpen/Code/SetMarketingMemberCardOpenCardCodeUnavailableRequest.json new file mode 100644 index 00000000..e76ec1ae --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MarketingMemberCardOpen/Code/SetMarketingMemberCardOpenCardCodeUnavailableRequest.json @@ -0,0 +1,3 @@ +{ + "reason": "用户违反会员条例" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MarketingMemberCardOpen/Code/SetMarketingMemberCardOpenCardCodeUnavailableResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MarketingMemberCardOpen/Code/SetMarketingMemberCardOpenCardCodeUnavailableResponse.json new file mode 100644 index 00000000..22fdca1b --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MarketingMemberCardOpen/Code/SetMarketingMemberCardOpenCardCodeUnavailableResponse.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MarketingMemberCardOpen/Code/UpdateMarketingMemberCardOpenCardCodeRequest.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MarketingMemberCardOpen/Code/UpdateMarketingMemberCardOpenCardCodeRequest.json new file mode 100644 index 00000000..53802f96 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MarketingMemberCardOpen/Code/UpdateMarketingMemberCardOpenCardCodeRequest.json @@ -0,0 +1,14 @@ +{ + "membership_number": "316510891298", + "background_picture_url": "https://wxpaylogo.qpic.cn/wxpaylogo/PiajxSqBRaEIPAeia7Imvtsn7sYGNcEj33YzVvJF88ECQ19LXId8ZL2Q/0", + "level": "钻石会员", + "out_request_no": "100002322019090134234sfdf", + "balance_information": { + "before_balance": 888, + "balance": 888, + "add_balance": 100, + "balance_remark": "购买一杯珍珠奶茶,消耗30元" + }, + "need_inform_balance": true, + "need_inform_level": true +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MarketingMemberCardOpen/Code/UpdateMarketingMemberCardOpenCardCodeResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MarketingMemberCardOpen/Code/UpdateMarketingMemberCardOpenCardCodeResponse.json new file mode 100644 index 00000000..22fdca1b --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MarketingMemberCardOpen/Code/UpdateMarketingMemberCardOpenCardCodeResponse.json @@ -0,0 +1 @@ +{} \ No newline at end of file