Php Paypal沙盒不返回任何变量

Php Paypal沙盒不返回任何变量,php,paypal,paypal-sandbox,paypal-ipn,Php,Paypal,Paypal Sandbox,Paypal Ipn,我的代码如下: $paypal_url = 'https://www.sandbox.paypal.com/cgi-bin/webscr'; $paypal_id = 'payments@business.com'; $str .= "<form method='post' action='".$paypal_url."'>"; $str .= "<input type='hidden' name='business' value='".$p

我的代码如下:

    $paypal_url = 'https://www.sandbox.paypal.com/cgi-bin/webscr'; 
    $paypal_id = 'payments@business.com';

    $str .= "<form method='post' action='".$paypal_url."'>";
    $str .= "<input type='hidden' name='business' value='".$paypal_id."'>";
    $str .= "<input type='hidden' name='cmd' value='_xclick'>";
    $str .= "<input type='hidden' name='item_name' value='Room'>";
    $str .= "<input type='hidden' name='item_number' value='".getRoom($id)."'>";
    $str .= "<input type='hidden' name='currency_code' value='USD'>";
    $str .= "<input type='hidden' name='no_shipping' value='1'>";
    $str .= "<input type='hidden' name='amount' id='paypal_cost' value='".getBal($id)."'>";
    $str .= "<input name='notify_url' value='http://localhost/tropicana/guests/notify.php' type='hidden'>";
    $str .= "<input type='hidden' name='cancel_return' value='http://localhost/tropicana/guests/payments.php'>";
    $str .= "<input type='hidden' name='return' value='http://localhost/tropicana/guests/notify.php'>";
    $str .= "<button type='submit' name='submit' class='form-control btn-danger'>Pay $".getBal($id)." with <i>PayPal</i>";

    $str .= "</form>";
$paypal\u url='1!'https://www.sandbox.paypal.com/cgi-bin/webscr'; 
$paypal\u id='1payments@business.com';
$str=”;
$str=”;
$str=”;
$str=”;
$str=”;
$str=”;
$str=”;
$str=”;
$str=”;
$str=”;
$str=”;
$str.=“支付$”.getBal($id)。“使用贝宝”;
$str=”;
但是在成功付款后,我的返回脚本
notify.php
没有收到任何变量


当我尝试打印请求时,它返回一个空数组。

TL;DR:您的
notify\u url
不能是本地主机,因为PayPal将(从外部)向您发送IPN消息,这意味着您的开发机器必须暴露于internet

公开计算机的一种方法是使用类似或类似的工具。 完成此操作后,将您的通知url设置为该公共url以接收IPN消息

但是,请注意:

  • 如果您使用免费ngrok选项,您的随机子域(例如13bf0ee2.ngrok.com)将在每次ngrok重新启动时更改
  • 如果您测试订阅,您以前使用ngrok notify_url创建的计划将不再有效,并且您将不会收到重复的IPN消息
  • 因为PayPal沙盒是一个很大的垃圾,你可能根本不会收到IPN消息,因为它们完全是坏服务

当然,有时候你会挠头,为什么昨天的事情有效,而不是今天。最好的选择是抵制他们,继续你的生活和业务,与在这一领域有实际能力的人合作。

交易完成后,是在notify.php上重定向吗?是的,返回到脚本和打印($请求);空数组是否正确?是的。它是空的检查此[Paypal响应]()[可能重复]