【问题标题】:Paypal Express Checkout: Error 10001 TimeoutPaypal Express 结帐:错误 10001 超时
【发布时间】:2016-11-13 07:18:24
【问题描述】:

所以我正在尝试实施 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();
    }
}

Paypal 回复:

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

【问题讨论】:

  • 您确定您正在阅读整个回复吗?如果您添加代码(当然共享的秘密和密钥较少。对于问题。
  • 我很抱歉。我已经编辑了我的问题以包含构建请求的代码和我收到的响应。

标签: c# asp.net paypal


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    错误 10001 是一个未处理的异常,这意味着没有更好的错误消息可用。

    根据贝宝documentation

    您必须对发送至 PayPal 的请求中的所有请求字段值进行编码,并且 解码响应中的所有字段值。您必须编码和解码 个人价值观; 不要对整个消息进行编码或解码。 浏览器经常尝试对消息进行编码和解码 重定向到他们或从他们那里重定向;但是,您必须验证编码和 解码正确完成,仅对字段值进行。

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

    【讨论】:

      猜你喜欢
      • 2012-12-14
      • 2012-12-21
      • 2017-03-21
      • 1970-01-01
      • 2012-06-30
      • 1970-01-01
      • 1970-01-01
      • 2013-02-23
      • 2012-01-07
      相关资源
      最近更新 更多