fix(tenpayv2): 修复付款码支付接口响应模型参数缺失问题

This commit is contained in:
Fu Diwei
2022-10-22 16:53:59 +08:00
parent dd45c46bea
commit 88af7f7c95
3 changed files with 31 additions and 9 deletions

View File

@@ -1,9 +1,12 @@
using System; using System;
namespace Newtonsoft.Json.Converters namespace Newtonsoft.Json.Converters
{ {
internal class YesOrNoNullableBooleanConverter : JsonConverter<bool?> internal class YesOrNoNullableBooleanConverter : JsonConverter<bool?>
{ {
private const string CHAR_YES = "Y";
private const string CHAR_NO = "N";
public override bool CanRead public override bool CanRead
{ {
get { return true; } get { return true; }
@@ -30,9 +33,9 @@ namespace Newtonsoft.Json.Converters
if (value == null) if (value == null)
return existingValue; return existingValue;
if ("Y".Equals(value)) if (CHAR_YES.Equals(value))
return true; return true;
else if ("N".Equals(value)) else if (CHAR_NO.Equals(value))
return false; return false;
} }
@@ -42,7 +45,7 @@ namespace Newtonsoft.Json.Converters
public override void WriteJson(JsonWriter writer, bool? value, JsonSerializer serializer) public override void WriteJson(JsonWriter writer, bool? value, JsonSerializer serializer)
{ {
if (value.HasValue) if (value.HasValue)
writer.WriteValue(value.Value ? "Y" : "N"); writer.WriteValue(value.Value ? CHAR_YES : CHAR_NO);
else else
writer.WriteNull(); writer.WriteNull();
} }

View File

@@ -1,9 +1,12 @@
using System.Text.Json.Serialization; using System.Text.Json.Serialization;
namespace System.Text.Json.Converters namespace System.Text.Json.Converters
{ {
internal class YesOrNoNullableBooleanConverter : JsonConverter<bool?> internal class YesOrNoNullableBooleanConverter : JsonConverter<bool?>
{ {
private const string CHAR_YES = "Y";
private const string CHAR_NO = "N";
public override bool? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) public override bool? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{ {
if (reader.TokenType == JsonTokenType.Null) if (reader.TokenType == JsonTokenType.Null)
@@ -24,9 +27,9 @@ namespace System.Text.Json.Converters
if (value == null) if (value == null)
return null; return null;
if ("Y".Equals(value)) if (CHAR_YES.Equals(value))
return true; return true;
else if ("N".Equals(value)) else if (CHAR_NO.Equals(value))
return false; return false;
} }
@@ -36,7 +39,7 @@ namespace System.Text.Json.Converters
public override void Write(Utf8JsonWriter writer, bool? value, JsonSerializerOptions options) public override void Write(Utf8JsonWriter writer, bool? value, JsonSerializerOptions options)
{ {
if (value.HasValue) if (value.HasValue)
writer.WriteStringValue(value.Value ? "Y" : "N"); writer.WriteStringValue(value.Value ? CHAR_YES : CHAR_NO);
else else
writer.WriteNullValue(); writer.WriteNullValue();
} }

View File

@@ -1,4 +1,4 @@
using System; using System;
namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models
{ {
@@ -193,6 +193,22 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.YesOrNoBooleanConverter))] [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.YesOrNoBooleanConverter))]
public bool IsSubscribed { get; set; } public bool IsSubscribed { get; set; }
/// <summary>
/// 获取或设置用户在子商户下的 OpenId。
/// </summary>
[Newtonsoft.Json.JsonProperty("sub_openid")]
[System.Text.Json.Serialization.JsonPropertyName("sub_openid")]
public string? SubOpenId { get; set; }
/// <summary>
/// 获取或设置用户是否订阅子商户公众号标识。
/// </summary>
[Newtonsoft.Json.JsonProperty("sub_is_subscribe")]
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.YesOrNoNullableBooleanConverter))]
[System.Text.Json.Serialization.JsonPropertyName("sub_is_subscribe")]
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.YesOrNoNullableBooleanConverter))]
public bool? IsSubSubscribed { get; set; }
/// <summary> /// <summary>
/// 获取或设置交易类型。 /// 获取或设置交易类型。
/// </summary> /// </summary>