编辑:
让我重新表述我的问题。我试图在重定向到贝宝之前将订单插入 mysql 数据库。现在,我必须分两步完成。按下将重定向到存储订单的另一个页面的按钮,然后重定向到包含 Paypal Checkout 按钮的另一个页面。
贝宝按钮本身就是一个带有隐藏输入的表单。我想知道是否有办法一步到位。即当我按下paypal 按钮时,它会在重定向到paypal 之前将我的订单输入到mysql 数据库中。
编辑:
让我重新表述我的问题。我试图在重定向到贝宝之前将订单插入 mysql 数据库。现在,我必须分两步完成。按下将重定向到存储订单的另一个页面的按钮,然后重定向到包含 Paypal Checkout 按钮的另一个页面。
贝宝按钮本身就是一个带有隐藏输入的表单。我想知道是否有办法一步到位。即当我按下paypal 按钮时,它会在重定向到paypal 之前将我的订单输入到mysql 数据库中。
是的,您可以发出一个header()
更新Location:
header('Location: https://www.paypal.com/cgi-bin/webscr?' . http_build_query($vars));
$vars
所有必要的变量在哪里:
$vars = array(
'cmd' => '_xclick',
'business' => $paypal_email,
'lc' => 'GB',
'item_name' => $item_name,
'item_number' => $item_number,
'amount' => number_format($amount, 2),
'notify_url' => $notify_url,
'return' => $return_url,
'currency_code' => 'USD',
'button_subtype' => 'goods',
'no_note' => 0,
'tax_rate' => 0,
);
这将导致浏览器在没有页面加载的情况下重定向到 PayPal。
在您的选择付款页面中,当点击提交时,将订单保存在您的订单表中,但将状态设置为 0 或未完成。然后,创建一个可用于在 paypal 中返回 url 的另一个文件。你可以称之为confirmation.php。在其中编写一个代码,将状态更新为 1,这意味着付款成功,现在可以处理订单了。
在您的贝宝连接脚本中,将返回 url 设置为 Confirmation.php 以便执行更新状态。
差不多就是这样。