2

我在使用 Express Checkout 时遇到问题。我尝试了网络上提供的所有解决方案,但我无法使其工作!我将 VB 2012 用于 Web 和 ASP.NET。我在网站上构建了一个购物车并尝试集成 PayPal Express Checkout(目前使用 Sandbox 中的测试帐户)。当我单击 PayPal 按钮时,它会显示错误:

10001 内部错误:处理请求超时

调试应用程序我发现问题出在他尝试拨打电话时:

Try
    Using myWriter As New StreamWriter(objRequest.GetRequestStream())
          myWriter.Write(strPost)
    End Using
Catch e As Exception
End Try

其中 strPost 如下:

METHOD=SetExpressCheckout&RETURNURL=http%3a%2f%2flocalhost%3a63223%2fCheckout%2fCheckoutReview.aspx&CANCELURL=http%3a%2f%2flocalhost%3a63223%2fCheckout%2fCheckoutCancel.aspx&BRANDNAME=PayPal+Sample+Application&PAYMENTREQUEST_0_AMT=36&PAYMENTREQUEST_0_ITEMAMT=36&PAYMENTREQUEST_0_PAYMENTACTION=Sale&PAYMENTREQUEST_0_CURRENCYCODE=USD&L_PAYMENTREQUEST_0+_NAME=Modena&L_PAYMENTREQUEST_0_AMT=36&L_PAYMENTREQUEST_0_QTY=1&USER=minni_1356740302_biz_api1.gmail.com&PWD=1356740320&SIGNATURE=AlYEmGf5ECuFHhwJgGlXJ.tMCTY0AFMcAx3nUjv6Ssg4RlD7YYwyoOJb&VERSION=88.0&BUTTONSOURCE=PP-ECWizard

有什么问题?

我真的需要帮助......感谢任何和所有帮助。提前致谢!

4

1 回答 1

4

此错误可能仅表示 PayPal 沙箱服务器存在问题,或者可能表示您的请求存在问题。不过,我刚才能够使用 SetExpressCheckout 成功进入沙盒,所以我猜它一定与您的请求有关。

我马上看到的一件事是,您将无法在 ReturnURL 和 CancelURL 中使用 localhost,因为在使用时它将从 PayPal 的服务器上运行。因此,“localhost”将是他们的服务器,而不是您的服务器,并且重定向将不起作用。您需要使用自己的公共 IP 地址或设置某种域来指向您的测试服务器。这可能是他们的服务器不喜欢的。

我注意到的另一件事是,您只是将值 36 用于您的金额。PayPal 文档指定您需要在金额值上使用两位小数,因此您需要确保并传递 36.00。

我注意到的下一件事(可能是导致您的问题的原因)是您的一个参数名称无效:[L_PAYMENTREQUEST_0+_NAME]

你需要把那个+从那里拿出来。我敢打赌这会解决你的问题,但我仍然会解决其他问题。

于 2012-12-30T09:56:52.297 回答