为什么Paypal Sandbox不处理付款

本文关键字:处理 付款 Sandbox Paypal 为什么 | 更新日期: 2023-09-27 18:00:51

我正在制作一个电子商务网站,贝宝集成似乎正在发挥作用。我有一个购物车,它汇总了里面的所有商品,加上运费,然后用这些行把这个数字发给贝宝。

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从贝宝获取响应,解析出令牌并将用户重定向到

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

当用户访问贝宝时,登录并点击"立即付款"按钮,然后被重定向到我网站的结账页面。

所以一切看起来都很好。但当我检查沙盒账户时,没有一笔钱被转移。

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

为什么Paypal Sandbox不处理付款

致稍后遇到此问题的其他人。我确实解决了这个问题。一旦用户在贝宝上确认付款后返回您的网站,您仍然需要向贝宝服务器发送DoExpressCheckoutPayment请求以处理付款。

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

当我集成paypal时,我也遇到了同样的问题,他们的系统似乎有一些修改。

如果你转到你的买家账户,你可以看到你的付款处于待定状态,并在几天内获得批准,这与商家账户的行为相同。