почему я получаю payment_status как ожидающий на песочнице PayPal? - PullRequest
2 голосов
/ 02 января 2012

Я всегда получаю ответ «Pending» [payment_status] из песочницы paypal, поэтому мой код для вставки данных в базу данных вообще не работает. Всякий раз, когда я делаю заказ и завершаю оплату, это ответ, который я получаю из возвращенных данных

Array
(
    [mc_gross] => 12.00
    [protection_eligibility] => Ineligible
    [address_status] => confirmed
    [item_number1] => 2
    [payer_id] => TRCLJTHLNCJ7Q
    [tax] => 0.00
    [address_street] => 1 Main St
    [payment_date] => 20:15:44 Jan 01, 2012 PST
    [payment_status] => Pending
    [charset] => windows-1252
    [address_zip] => 95131
    [mc_shipping] => 10.00
    [mc_handling] => 0.00
    [first_name] => Test

он всегда находится на рассмотрении, когда все, что касается оплаты, завершено и сам обзор тестового счета показывает, что платеж был завершен.

, поэтому эта часть кода вообще не работает из-за "Ожидания"

if (!$fp) {
// HTTP ERROR
} else {
fputs ($fp, $header . $req);
while (!feof($fp)) {
$res = fgets ($fp, 1024);
if (strcmp ($res, "VERIFIED") == 0) {

    if ($_POST['payment_status'] == 'Completed'
          && no_paypal_trans_id($_POST['txn_id'])
            && $paypal_email == $_POST['receiver_email']
            && $paypal_currency == $_POST['mc_currency']
            && payment_amount_correct($shipping, $_POST)
            )
    {
     // process payment
         create_order($_POST);

    }

}
else if (strcmp ($res, "INVALID") == 0) {
// log for manual investigation
}
}
fclose ($fp);
}

есть идеи как это исправить? или почему это происходит в ответе PayPal?

Ответы [ 6 ]

12 голосов
/ 02 января 2012

Отключите «Проверка платежа» для учетной записи на https://developer.paypal.com/> «Тестовые счета».

Примечание. Эта информация также доступна в ответе 'pending_reason', который предоставит более информативную информацию о том, почему он ожидает (как вы можете видеть, это происходит в реальной среде для проверки платежей через PayPal или транзакций echeck).

3 голосов
/ 21 ноября 2013

После решения этой проблемы и небольшого изменения PayPal в интерфейсе пользователя,

Вот точные инструкции от Техническая поддержка продавца PayPal :

Благодарим Вас за обращение в службу технической поддержки продавца.

Пожалуйста, следуйте приведенным ниже инструкциям, чтобы отключить функцию проверки платежей для своей учетной записи в песочнице:

  • Перейти на Веб-сайт PayPal для разработчиков
  • Войдите в свою учетную запись разработчика
  • Нажмите Приложения
  • Нажмите «Песочницы»
  • Нажмите на адрес электронной почты, который вы хотели бы отключить опцию проверки платежей и нажмите Профиль после его развертывания
  • Нажмите Настройки
  • И выберите Выкл. Для проверки платежа.
  • Нажмите Закрыть

!!! Убедитесь, что вы делаете это на своем PayPal SandBox Merchant Account !

& Вот как это выглядит:

enter image description here

0 голосов
/ 03 февраля 2016

Если учетная запись песочницы, которая получает платеж, имеет тип «Личный», то IPN отправит payment_status = Pending.

0 голосов
/ 21 ноября 2015

Я получал эту информацию при отправке неправильного адреса электронной почты:

[pending_reason] => односторонний

Если у кого-то это тоже будет, попробуйте изменить адрес электронной почты вашего бизнеса (не вашего клиента / покупателя, а продавца).

0 голосов
/ 10 сентября 2013

Войдите в свою учетную запись разработчика Sandbox. Нажмите на ссылку Тестовые аккаунты. Вы должны увидеть свои тестовые аккаунты в правой части экрана. Обратите внимание на столбец «Просмотр платежей». Если вы видите Включено для ваших учетных записей, нажмите на него, Теперь вы должны увидеть Disabled.

С уважением,

0 голосов
/ 02 октября 2012

Если решение «Проверка платежа», предоставленное Робертом, не работает, другая причина, по которой это может произойти, заключается в том, что у вашего аккаунта продавца есть возможность принять или отклонить платеж, если у покупателя есть неподтвержденный адрес или другая валюта.В этом случае вам необходимо войти в систему в качестве продавца и принять платеж, и вы получите еще один IPN с payment_status = Completed

Шаги:

  1. открыть песочницу PayPal
  2. нажмите "тестовые аккаунты "слева
  3. выберите аккаунт продавца и нажмите" Войти в тестовый сайт песочницы "внизу
  4. Вы должны увидеть все платежи с возможностью принять или отклонить каждый из них
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...