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

View File

@@ -1,9 +1,12 @@
using System.Text.Json.Serialization;
using System.Text.Json.Serialization;
namespace System.Text.Json.Converters
{
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)
{
if (reader.TokenType == JsonTokenType.Null)
@@ -24,9 +27,9 @@ namespace System.Text.Json.Converters
if (value == null)
return null;
if ("Y".Equals(value))
if (CHAR_YES.Equals(value))
return true;
else if ("N".Equals(value))
else if (CHAR_NO.Equals(value))
return false;
}
@@ -36,7 +39,7 @@ namespace System.Text.Json.Converters
public override void Write(Utf8JsonWriter writer, bool? value, JsonSerializerOptions options)
{
if (value.HasValue)
writer.WriteStringValue(value.Value ? "Y" : "N");
writer.WriteStringValue(value.Value ? CHAR_YES : CHAR_NO);
else
writer.WriteNullValue();
}

View File

@@ -1,4 +1,4 @@
using System;
using System;
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))]
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>