2016-12-28 11 views
1

Я интегрирую paypal-платежный шлюз на одном из сайтов. После успешного платежа я перенаправляю его на файл success.php. В файле success.php я включил все параметры вставки и сообщение об успешном завершении. Он перенаправляет файл success.php должным образом после оплаты, но показывает сообщение об ошибке и данные не вставляются в базу данных. Ниже мой success.php кодовой страницыинтеграция с платежным шлюзом PayPal

<?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 } ?> 

, что я делаю неправильно?

+0

Нет подготовленных инструкций для одного. Вы [широко открыты для SQL-инъекций] (http://stackoverflow.com/documentation/php/5828/pdo/2685/preventing-sql-injection-with-parametrized-queries) – Machavity

ответ

0

Как предложено Ван Хоа, paypal не отправляет платежную информацию в качестве параметров при перенаправлении пользователя на страницу успеха. PayPal отправит обратно токен и идентификатор плательщика.

При перенаправлении покупателя на ваш сайт с paypal.com, PayPal присоединяет сделка Экспресс заказ токен и уникальный PayPal покупатель ID в качестве параметров GET вашего возвращения URL; эти параметры GET называются токен и PayerID.

PayPal docs (курсив добавлен)

Вы можете использовать возвращаемый маркер, чтобы получить информацию об оплате с помощью GetExpressCheckoutDetails и передавая ему фишку вы получите обратно от PayPal.

Смежные вопросы