[英]paypal payment gateway integration
我正在将paypal付款网关集成到一个site。支付成功后,我将其重定向到success.php
文件。 在success.php
文件中,我包括了所有插入参数和一条成功消息。 付款后,它将正确重定向到success.php
文件,但显示付款失败消息,并且没有数据插入数据库。 以下是我的success.php
页面代码
<?php
include 'dbConfig.php';
//Get payment information from PayPal
$item_number = $_GET['item_number'];
$txn_id = $_GET['tx'];
$payment_gross = $_GET['amt'];
$currency_code = $_GET['cc'];
$payment_status = $_GET['st'];
//Get product price from database
$productResult = $db->query("SELECT price FROM products WHERE id = = '".$item_number."'");
$productRow = $productResult->fetch_assoc();
$productPrice = $productRow['price'];
if(!empty($txn_id) && $payment_gross == $productPrice){
//Check if payment data exists with the same TXN ID.
$prevPaymentResult = $db->query("SELECT payment_id FROM payments WHERE txn_id = '".$txn_id."'");
if($prevPaymentResult->num_rows > 0){
$paymentRow = $prevPaymentResult->fetch_assoc();
$last_insert_id = $paymentRow['payment_id'];
}else{
//Insert tansaction data into the database
$insert = $db->query("INSERT INTO payments(item_number,txn_id,payment_gross,currency_code,payment_status) VALUES('".$item_number."','".$txn_id."','".$payment_gross."','".$currency_code."','".$payment_status."')");
$last_insert_id = $db->insert_id;
}
?>
<h1>Your payment has been successful.</h1>
<h1>Your Payment ID - <?php echo $last_insert_id; ?></h1>
<?php }else{ ?>
<h1>Your payment has failed.</h1>
<?php } ?>
我做错了什么?
正如Van Hoa所建议的那样,当您将用户重定向到成功页面时,贝宝不会将付款信息作为参数发送。 PayPal仅会发回令牌和付款人ID。
当从Paypal.com将买家重定向回您的网站时,PayPal会将Express Checkout交易令牌和唯一的PayPal买家ID作为GET参数附加到您的RETURN URL; 这些GET参数分别命名为token和PayerID 。
PayPal文档 (添加了重点)
您可以使用返回的令牌通过GetExpressCheckoutDetails
付款详细信息,并将您从PayPal取回的令牌传递给它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.