我的代码如下:
$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>";
但是在付款成功后,我的返回脚本notify.php
没有收到任何变量。
当我尝试print_r()
$_REQUEST
时,它会返回一个空数组。
答案 0 :(得分:1)
TL; DR:您的notify_url
不能 localhost ,因为PayPal会向您发送IPN消息(来自外部),这意味着您的开发机器必须暴露于互联网。
展示计算机的一种方法是使用ngrok之类的工具,或类似serveo之类的工具。 完成此操作后,将 notify_url 设置为该公共URL以接收IPN消息。
但是,请注意:
当然,有时为什么事情会在昨天而不是今天起作用。最好的选择是抵制他们,继续与那些在这个领域具有实际能力的人一起生活和事业。