C# 为什么Paypal沙箱不处理付款?

C# 为什么Paypal沙箱不处理付款?,c#,paypal-sandbox,C#,Paypal Sandbox,我正在制作一个电子商务网站,paypal的整合似乎正在发挥作用。我有一个购物车,它把里面所有的东西加起来,加上运费,然后用这些线把这个数字发送给贝宝 string address = "https://api-3t.sandbox.paypal.com/nvp?USER=<username>&PWD=<password>&VERSION=71.0&SIGNATURE=<signature>&METHOD=SetExpressCh

我正在制作一个电子商务网站,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);
当用户进入paypal,然后登录并点击“立即付款”按钮,并被重定向到我的网站的结帐页面

看来一切都很好。但当我检查沙箱账户时,没有一笔钱真正被转移


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

我在集成pay pal时也遇到了同样的问题,而且他们的系统似乎有一些修改


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

对于稍后遇到此问题的任何其他人。 我解决了。一旦用户在paypal上确认付款后返回您的站点,您仍然需要向paypal服务器发送DoExpressCheckoutPayment请求,以便处理付款


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

我在任一帐户上都没有看到任何未付款。金额是从买方帐户减去并添加到卖方帐户的吗?否,它们的余额与我开始时的余额相同。这意味着它们是作为授权发送的,而不是“销售”类型的交易。这与Brian的问题不同,Brian只是缺少DoExpressCheckoutPayment。在重定向到成功url后,我确实调用了
DoExpressCheckoutPayment
。我重新获取了付款详细信息,它显示
CHECKOUTSTATUS
PaymentActionCompleted
,但当我检查时,仪表板没有显示在交易选项卡中。
Response.Redirect("https://www.sandbox.paypal.com/us/cgi-bin/webscr?cmd=_express-checkout&useraction=commit&token=" + token);