Я вставляю информацию об оплате PayPal в таблицу «Платежи». Структура таблицы следующая:
CREATE TABLE `payments` (
`payment_id` int(11) NOT NULL AUTO_INCREMENT,
`txn_id` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`payment_gross` float(10,2) NOT NULL,
`currency_code` varchar(5) COLLATE utf8_unicode_ci NOT NULL,
`payment_status` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`payer_email` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`payment_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
Платеж успешно сохранен. Я хочу получить информацию из той же таблицы на txn_id, полученную от PayPal при перенаправлении на страницу «success. php». Код, который я использую, выглядит следующим образом:
include 'config/database.php';
include 'DBController.php';
file_put_contents("log.txt", print_r($_POST, true));
//Get payment information from PayPal
//$id = isset($_GET['id']) ? $_GET['id'] : '';
//$txn_id= isset($_GET['tx']) ? $_GET['tx'] : '';
//$payment_gross = isset($_GET['amt']) ? $_GET['amt'] : '';
//$currency_code = isset($_GET['cc']) ? $_GET['cc'] : '';
//$payment_status = isset($_GET['st']) ? $_GET['st'] : '';
//$txn_id = $_GET['tx'];
//$payment_gross = $_GET['amt'];
//$currency_code = $_GET['cc'];
//$payment_status = $_GET['st'];
$txn_id = $_POST['txn_id'];
$payment_gross = $_POST['mc_gross'];
$currency_code = $_POST['mc_currency'];
$payment_status = $_POST['payment_status'];
$payer_email = $_POST['payer_email'];
$item_name = $_POST['item_name'];
$item_number = $_POST['item_number'];
$receiver_email = $_POST['receiver_email'];
file_put_contents("log1.txt", print_r($txn_id, true));
if(!empty($txn_id))
{
$db = new DBController();
//Check if payment data exists with the same TXN ID.
$param_type="s";
$param_value_array = array($txn_id);
$paymentResult = $db->runQuery1("SELECT payment_id FROM payments1 WHERE txn_id = ?",$param_type,$param_value_array);
if(!$paymentResult== 0)
0 строк возвращается.