Paypal快速结账:错误10001超时

时间:2016-07-11 11:03:59

标签: c# asp.net paypal

因此,我尝试实施Paypal Express结帐并继续收到上述错误。

我的NV如下:

METHOD=SetExpressCheckout&
VERSION=204.0&
USER=mylogicn&
PWD=mypwd&
SIGNATURE=mysignature&
PAYMENTREQUEST_0_AMT=26.65&
PAYMENTREQUEST_0_CURRENCYCODE=GBP&
RETURNURL=https://www.example.com/Basket/NotificationProcessor.ashx?type=paypalsuccess&
CANCELURL=https://www.example.com/Basket/NotificationProcessor.ashx?type=paypalfailure&
PAYMENTREQUEST_0_PAYMENTACTION=Sale

显然某些信息已经改变。 我无法找到任何特别错误的请求但是总是会返回10001,并带有超时处理请求。

我希望此前有人遇到此问题,并有解决方案。

编辑: 这是将请求组合在一起并检索响应的代码:

string[][,] nv = new string[11][,]
{
    new string[,]{{"METHOD", "SetExpressCheckout" }},
    new string[,]{{"VERSION", "204.0" }},

    new string[,]{{"USER", "myuser"}},
    new string[,]{{"PWD", "mypwd"}},
    new string[,]{{"SIGNATURE","mysig"}},

    new string[,]{{"PAYMENTREQUEST_0_AMT", "26.65"}},
    new string[,]{{"PAYMENTREQUEST_0_CURRENCYCODE","GBP"}},

    new string[,]{{"RETURNURL",  "https://www.example.com/Basket/NotificationProcessor.ashx?type=paypalsuccess"}},
    new string[,]{{"CANCELURL", "https://www.example.com/Basket/NotificationProcessor.ashx?type=paypalfailure"}},

    new string[,]{{"PAYMENTREQUEST_0_PAYMENTACTION", "Sale"}},
    new string[,]{{"NOSHIPPING", "1"}},
};
string q = "?";
foreach(string[,] s in nv)
{
    q += s[0,0] + "=" + s[0,1] + "&";
}
q = q.TrimEnd('&');
HttpWebRequest req = (HttpWebRequest)WebRequest.Create("https://api-3t.sandbox.paypal.com/nvp" + q);
req.Method = "POST";

HttpWebResponse response = (HttpWebResponse)req.GetResponse();
var encoding = ASCIIEncoding.ASCII;
if (response.StatusCode == HttpStatusCode.OK)
{
    using (var reader = new System.IO.StreamReader(response.GetResponseStream(), encoding))
    {
        string response = reader.ReadToEnd();
    }
}

Paypals回应:

TIMESTAMP=2016%2d07%2d11T11%3a10%3a55Z&
CORRELATIONID=dcd0f848a9bb9&
ACK=Failure&
L_ERRORCODE0=10001&
L_SHORTMESSAGE0=Internal%20Error&
L_LONGMESSAGE0=Timeout%20processing%20request

2 个答案:

答案 0 :(得分:0)

错误10001是未处理的异常,表示没有更好的错误消息可用。

根据PayPal documentation

  

您必须将请求中的所有请求字段值编码为PayPal和   解码响应中的所有字段值。您必须编码和解码   个人价值观; 不对整个邮件进行编码或解码。   浏览器经常尝试编码和解码消息   重定向到他们或从他们;但是,您必须验证编码和   解码正确完成,仅适用于字段值。

可能由于编码而发生。试着摆脱它,看看它是否有帮助。

答案 1 :(得分:0)

这里的问题是使用POST。只需删除req.Method = "POST"即可解决问题。