Beispiel #1
0
        protected virtual async Task <XDocument> RequestAndGetReturnValueAsync2(string targetUrl,
                                                                                PayParameters requestParameters)
        {
            var result = await RequestAsync(targetUrl, requestParameters.ToXmlStr());

            if (result.Element("xml").Element("return_code").Value != "SUCCESS")
            {
                var errMsg =
                    "微信支付接口调用失败,具体失败原因:" +
                    result.Element("xml").Element("return_msg").Value
                ;

                var exception = new Exception(errMsg);
                exception.Data.Add(nameof(targetUrl), targetUrl);
                exception.Data.Add(nameof(result), result.ToString());

                throw exception;
            }

            Log.Information(result.ToString(), "TenPay_XmlResult");
            return(result);
        }
Beispiel #2
0
        protected virtual async Task <XmlDocument> RequestAndGetReturnValueAsync(string targetUrl,
                                                                                 PayParameters requestParameters)
        {
            var result = await RequestAsync(targetUrl, requestParameters.ToXmlStr());

            if (result.SelectSingleNode("/xml/return_code")?.InnerText != "SUCCESS" ||
                result.SelectSingleNode("/xml/return_code")?.InnerText != "SUCCESS" ||
                result.SelectSingleNode("/xml/return_msg")?.InnerText != "OK")
            {
                var errMsg =
                    $"微信支付接口调用失败,具体失败原因:{result.SelectSingleNode("/xml/err_code_des")?.InnerText ?? result.SelectSingleNode("/xml/return_msg")?.InnerText}";
                Log.Error(errMsg, targetUrl, requestParameters);

                var exception = new Exception(errMsg);
                exception.Data.Add(nameof(targetUrl), targetUrl);
                exception.Data.Add(nameof(requestParameters), requestParameters);

                throw exception;
            }

            return(result);
        }