我在 PayPal 上使用网站支付标准。所以我有一个自定义购买页面,它本质上是我的许可证列表(从数据库中提取):
licence type A: $100
licence type B: $200
licence type C: $300
他们选择其中之一(单选按钮),然后单击购买按钮。这会将页面发布到我的处理 PHP 页面,该页面从上一页获取选定的 licence_id,然后使用它从数据库中选择正确的许可证信息(价格、许可证期限)等。然后它为用户存储一个新许可证(但标记为未付款,因为尚未发生 Paypal 付款)。
然后我的 PHP 代码使用以下代码重定向到 Paypal 网站进行付款:
// Set the transaction details to be sent to PayPal
$urlParams = array(
'cmd' => '_cart',
'upload' => 1,
'charset' => 'utf-8',
'business' => my_business_email@domain.com,
'return' => 'http://mysite.com/paymentprocessed.php',
'currency_code' => 'NZD',
'amount_1' => $licencePrice,
'item_name_1' => $licenceName,
'quantity_1' => 1
);
// Build the URL
$urlParams = http_build_query($urlParams, '', '&');
$url = 'https://www.sandbox.paypal.com/cgi-bin/webscr';
header('location:' .$url. '?' . $urlParams);
exit();
这实质上是重定向用户并通过 GET 将参数发送到 PayPal。令人惊讶的是它的工作原理!然而,明显的安全问题是用户只需编辑地址栏中的变量并更改价格即可获得便宜/免费的许可证。
那么是否可以让我的 PHP 页面改为 POST 信息并将浏览器重定向到该页面,以便用户可以完成 paypal 交易?因此,关键数据从我的网络服务器直接发布到 PayPal,用户将无法编辑付款信息。
我想你可以使用 IPN 来确保他们支付了正确的金额,我仍然会这样做。但我仍然不希望通过 GET 发送所有内容。
谢谢!