我有一个问题,我似乎无法弄清楚。 我有一个网站,你可以选择一些优惠并购买。 此过程的步骤如下:
1)他喜欢的客户选择报价(index.php)并继续(buy.php)页面
2)在(buy.php)页面,他选择数量和付款方式
3)当客户按下购买时,他被重定向到(payment.php),其中所有数据再次被验证并进行一些数据库记录。 Payment.php页面将用户处理到选定的支付网关(在我的网站之外)。
所以问题是我可以将buy.php页面中的$ _POST数据交换到payment.php,付款页面会认为数据是正确的。
之前我只是检查付款页面的价格是否是我的$数组中允许的价格之一,我对此没有任何问题。但现在我提供折扣,我无法判断进来的数量是否确实正确。
这通常是如何处理的?我刚接触付款。
感谢。
答案 0 :(得分:2)
尝试使用产品ID的数据库表和价格以及金额(或百分比)的折扣表。当用户提交订单时,将带有各自数量的产品ID以及任何折扣的ID发送到付款脚本。让它处理最终的价格计算。
答案 1 :(得分:2)
支付提供商通常的做法如下:
现在当你收到POST时,你可以使用你的秘密字符串重新创建它应该伴随的哈希值,并将它与你得到的哈希值进行比较(也就是在帖子中,显然也不要哈希)。如果它相等,那么未被篡改的值。如果不是,你应该拒绝付款。
由于您还在帖子中包含日期,用户/订单ID等,因此无法更改其他订单的帖子。更改帖子中的其中一个值也意味着必须更改HASH,但由于用户无法创建HASH,因此不会这样做。