PayPal IPN обновляет мою базу данных со сторонних сайтов продаж, но не с моего собственного сайта - PullRequest
0 голосов
/ 06 июня 2018

Пытаюсь выяснить это, так как это меня беспокоит уже несколько дней.

Что я пытаюсь сделать:

Получить платеж через мойвеб-сайт, использующий simpleCartJs и имеющий возвращаемый IPN для обновления базы данных с деталями платежа.

Что работает:

  • Оплата через веб-сайт не работает вообще.
  • PayPal подтверждает платеж и отправляет сообщение IPN и получает код 200
  • Оплата через сторонние сайты ОБНОВЛЯЕТ обновлять мой веб-сайт

Что не работает

  • Платеж через мой веб-сайт не будет обновлять базу данных, однако, если платежи осуществляются через сторонние сайты (например, ebay), обновите мою базу данных, поскольку у меня в PayPal IPN включен мой IP-адрес

Что у меня сейчас есть

  • Я включил уведомления IPN в Paypal, и они перенаправляют файл правильно (поскольку сторонние поставщики обновляют базу данных правильно)

Мой файл IPN

require_once(dirname(__FILE__).'/paypal.class.php');  

$p = new paypal_class;             

if ($p->validate_ipn() && !empty($p->ipn_data['payment_status']) && $p->ipn_data['payment_status'] == 'Completed') {



                    $mc_gross = $_POST['mc_gross'];
                    $payer_id = $_POST['payer_id'];
                    $payment_date = $_POST['payment_date'];
                    $first_name = $_POST['first_name'];
                    $last_name = $_POST['last_name'];
                    $payer_email = $_POST['payer_email'];
                    $payment_status = $_POST['payment_status'];
                    $payer_status = $_POST['payer_status'];
                    $address_name = $_POST['address_name'];
                    $address_country = $_POST['address_country'];
                    $address_zip = $_POST['address_zip'];
                    $address_state = $_POST['address_state'];
                    $address_city = $_POST['address_city'];
                    $address_street = $_POST['address_street'];
                    $mc_shipping = $_POST['mc_shipping'];
                    $mc_currency = $_POST['mc_currency'];
                    $ipn_track_id = $_POST['ipn_track_id'];



    $stmt = $con->prepare("INSERT into orders (mc_gross, payer_id, payment_date, first_name, last_name, payer_email, payment_status, payer_status, address_name, address_country, address_zip, address_state, address_city, address_street, mc_shipping, mc_currency, ipn_track_id) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");    
    $stmt->bind_param("sssssssssssssssss", $mc_gross, $payer_id, $payment_date, $first_name, $last_name, $payer_email, $payment_status, $payer_status, $address_name, $address_country, $address_zip, $address_state, $address_city, $address_street, $mc_shipping, $mc_currency, $ipn_track_id);
    $stmt->execute();
    $stmt->close();


    }

Любая помощь в решении этой проблемы была бы удивительной, пожалуйста.

...