c# - 为什么 Paypal 沙盒不处理付款?

标签 c# paypal-sandbox

我正在制作一个电子商务网站,而 Paypal 集成似乎可以正常工作。我有一个购物车,它把里面的所有元素加起来,加上运费,然后用这些行把这个数字发送到 Paypal 。

string address = "https://api-3t.sandbox.paypal.com/nvp?USER=<username>&PWD=<password>&VERSION=71.0&SIGNATURE=<signature>&METHOD=SetExpressCheckout&PAYMENTREQUEST_0_AMT=" + lblTotal.Text + "&PAYMENTREQUEST_0_CURRENCYCODE=USD&RETURNURL=http://www.secretskeletonminiatures.com/checkout.aspx&CANCELURL=http://www.secretskeletonminiatures.com/cart.aspx&PAYMENTREQUEST_0_PAYMENTACTION=Sale";

    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(address);

然后我使用 HTTPWebResponse 从 paypal 中提取响应并解析出 token 并将用户重定向到

Response.Redirect("https://www.sandbox.paypal.com/us/cgi-bin/webscr?cmd=_express-checkout&useraction=commit&token=" + token);

当用户使用 paypal 然后登录并点击“立即付款”按钮并被重定向到我网站的结帐页面。

看起来一切正常。但是当我检查沙盒账户时,实际上并没有转账。

最常见的原因是重定向 url 中缺少 useraction=commit 参数,但它就在那里,所以这不是问题。

最佳答案

对于后来偶然发现这个问题的任何人。 我确实解决了。一旦用户在确认 paypal 付款后返回您的网站,您仍然必须向 paypal 服务器发送 DoExpressCheckoutPayment 请求以处理付款。

您可以向 DoExpressCheckoutPayment 提供 PayerID 和 TOKEN 来处理它。 PayerID 附加在您的 RETURNURL 的 URL 中,或者可以通过使用 TOKEN 调用 GetExpressCheckoutDetails 来检索。

关于c# - 为什么 Paypal 沙盒不处理付款?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6554998/

相关文章:

paypal - 无法升级到专业帐户 - Paypal Sandbox

php - 使用 PayPal-PHP-SDK 的异常 [Http 响应代码 400]

c# - CustomAttribute 名称可以简化

C# - .net 核心中的 Dns.GetHostEntry(uri.Host)?

c# - 从 WPF 应用程序附加到现有控制台的解决方法?

c# - Process.StandardOutput.ReadToEnd() 和无关的换行符

paypal - Paypal 中的 DoAuthorization 有何用途?

paypal - 避免用户在 Paypal 上支付已经支付的项目

.net - Paypal 沙箱所有付款都处于待处理状态,所有待处理状态都是单方面的

c# - 是否可以使用 IntPtr 在另一个程序中激活选项卡?