【发布时间】: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
【问题讨论】:
-
您确定您正在阅读整个回复吗?如果您添加代码(当然共享的秘密和密钥较少。对于问题。
-
我很抱歉。我已经编辑了我的问题以包含构建请求的代码和我收到的响应。