From 1824530ec082657164901057fa08296a5aecb788 Mon Sep 17 00:00:00 2001 From: roc Date: Tue, 8 Nov 2022 12:59:54 +0800 Subject: [PATCH] =?UTF-8?q?[WeChatPay.V3]=20=E4=BF=AE=E6=AD=A3=20ConvertTo?= =?UTF-8?q?Dictionary?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../V3/Extensions/HttpClientExtensions.cs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) 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)