0

在从 SetExpressCheckOut 获得令牌和 payerID 之后,我现在希望从用户那里真正获得资金。

使用 paypal 函数向导生成的代码,我正在调用 ConfirmPayment 函数。

问题是该函数被成功调用并处理了用户的付款,但随后我收到了超时错误。所以我得到了他们的钱,而用户得到了一个超时页面。不是留住客户的最佳方式。

The operation has timed out

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.Net.WebException: The operation has timed out

Source Error: 

Line 313:
Line 314:        //Retrieve the Response returned from the NVP API call to PayPal
**Line 315:        HttpWebResponse objResponse = (HttpWebResponse)objRequest.GetResponse();**
Line 316:        string result;
Line 317:        using (StreamReader sr = new StreamReader(objResponse.GetResponseStream()))

我在第 315 行得到了一个超时,它源自 paypal 函数的 HTTPCall 函数。

public string HttpCall(string NvpRequest) //CallNvpServer { string url = pendpointurl;

    //To Add the credentials from the profile
    string strPost = NvpRequest + "&" + buildCredentialsNVPString();
    strPost = strPost + "&BUTTONSOURCE=" + HttpUtility.UrlEncode( BNCode );

    HttpWebRequest objRequest = (HttpWebRequest)WebRequest.Create(url);
    objRequest.Timeout = Timeout;
    objRequest.Method = "POST";
    objRequest.ContentLength = strPost.Length;
    //Retrieve the Response returned from the NVP API call to PayPal
    **HttpWebResponse objResponse = (HttpWebResponse)objRequest.GetResponse();** (Line 315)
    string result;
    using (StreamReader sr = new StreamReader(objResponse.GetResponseStream()))
    {
        result = sr.ReadToEnd();
    }

    return result;
}

我觉得这可能与 Paypal 的服务器有关,但无论哪种方式,它都不起作用,并且如果它上线会惹恼用户。你们知道为什么会突然超时吗?之前在 SetExpressCheckOut 中使用了相同的 HTTPCall,并且工作正常。

4

1 回答 1

0

似乎 paypalfunctions.cs 中有一个变量指示页面的超时。它设置为 5000,我只是将其提高到 50000,因为页面加载时间超过 5 秒并且超时。

于 2012-10-11T13:14:12.007 回答