diff --git a/src/Essensoft.Paylink.WeChatPay/V3/Extensions/HttpClientExtensions.cs b/src/Essensoft.Paylink.WeChatPay/V3/Extensions/HttpClientExtensions.cs index e380d746b..c059548fd 100644 --- a/src/Essensoft.Paylink.WeChatPay/V3/Extensions/HttpClientExtensions.cs +++ b/src/Essensoft.Paylink.WeChatPay/V3/Extensions/HttpClientExtensions.cs @@ -120,8 +120,16 @@ public static class HttpClientExtensions private static IDictionary ConvertToDictionary(WeChatPayObject obj) { - var str = JsonSerializer.Serialize(obj, obj.GetType(), jsonSerializerOptions); - return JsonSerializer.Deserialize>(str, jsonSerializerOptions); + var utf8Bytes = JsonSerializer.SerializeToUtf8Bytes(obj, obj.GetType(), jsonSerializerOptions); + var jsonElementParameters = JsonSerializer.Deserialize>(utf8Bytes); + + var txtParameters = new Dictionary(); + foreach (var kv in jsonElementParameters) + { + txtParameters.Add(kv.Key, kv.Value.GetRawText()); + } + + return txtParameters; } private static string BuildToken(string url, string method, string body, WeChatPayOptions options)