Paypal IPN всегда возвращает «payment_status: Pending» в песочнице?

Я пытаюсь внедрить PayPal на своем веб-сайте.

Я использую этот класс: http://www.micahcarrick.com/php-paypal-ipn-integration-class.html

Сейчас я тестирую тестовую программу PayPal.

Вот проблема:

  1. Пользователь делает платеж – нормально
  2. Пользователь возвращается на мой сайт успешно – ok
  3. Через несколько секунд PayPal называет мой сайт с помощью IPN – ok
  4. Мой класс успешно проверяет входящие данные IPN.
  5. PayPal возвращает «payment_status: Pending»

Я не знаю, почему IP-адрес PayPal переадресовывает с состоянием платежа в ожидании?

Кто-нибудь знает, что я делаю неправильно?

Solutions Collecting From Web of "Paypal IPN всегда возвращает «payment_status: Pending» в песочнице?"

Когда вы войдете в свою тестовую бизнес-учетную запись, вручную перейдите к:

https://www.sandbox.paypal.com/ca/cgi-bin/?cmd=_profile-pref&source=acct_setup&fli=true

Вы, как правило, сможете добраться туда, выполнив «Мой бизнес-настройку», но в настоящее время он перенаправляет на PayPal в прямом эфире (несмотря на то, что он находится в песочнице).

Когда вы на этой странице, измените «Блокировать платежи, отправленные мне в валюте, которую я не держу», чтобы «Нет, принять их и преобразовать в …»

Кроме того, не забудьте подтвердить свой бизнес-аккаунт, используя интерфейс API-интерфейса PayPal Sandbox и «Test Email» в API.

Моя проблема заключалась в том, что мой торговый счетчик песочницы был сделан как британский пользователь (и GBP в качестве валюты). Когда я попытался пройти заказы в датской кроне (DKK), это скажет мне, что покупка была «невостребованной» в представлении продавца. Как только был принят один заказ в DKK, и я решил создать новую валюту в DKK, IPN отправил мне все сообщения «payment_status = completed».

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

Вот точные инструкции технической поддержки PayPal Merchant :

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

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

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

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

& То, что это выглядит:

введите описание изображения здесь

Вы можете решить эту проблему с помощью следующей инструкции.

  1. Войдите в свой Центр разработчиков.

  2. Нажмите вкладку «Проверить учетные записи» слева. Вы должны были создать эти тестовые учетные записи для тестирования на Sandbox.

  3. Найдите столбец «Обзор платежей».

  4. Найдите учетную запись песочницы, которую вы используете, и нажмите «Включено» в столбце «Обзор платежей».

  5. Это должно измениться на «Отключено», и теперь платежи, полученные с вашего баланса, и кредитная карта будут завершены мгновенно.

Две возможные причины:

1. У продавца есть возможность принять или отклонить платеж

В этом случае вам необходимо войти в систему как продавец и принять оплату, и вы получите еще один IPN с помощью payment_status = Completed

шаги:

  1. Войдите в свой центр разработчика
  2. нажмите «тестовые учетные записи» слева
  3. выберите учетную запись продавца и нажмите «Ввести тестовую площадку песочницы» внизу
  4. Вы должны увидеть панель управления продавцом с возможностью принять или отклонить любой платеж (вам может потребоваться переуступка на этом этапе с использованием учетных данных тестовой учетной записи продавца)

2. Просмотр платежей включен

Решение:

  1. Войдите в свой Центр разработчиков.
  2. Нажмите вкладку «Проверить учетные записи» слева. Вы должны были создать эти тестовые учетные записи для тестирования на Sandbox.
  3. Найдите столбец «Обзор платежей».
  4. Найдите учетную запись песочницы, которую вы используете, и нажмите «Включено» в столбце «Обзор платежей».

Это должно измениться на «Отключено», и теперь платежи, полученные с вашего баланса, и кредитная карта будут завершены мгновенно.

  1. Я изменил « Allow payments sent to me in a currency I do not hold Yes во всех учетных записях пользователей в «песочнице», но она все еще не работает.

  2. Я также попытался создать те же самые валюты в форме PayPal, и для учетных записей пользователей песочницы здесь. Создание новой валюты первичной. Преобразование денег в новую валюту. Все еще нет успеха.

  3. Затем я заметил последнее предложение ответа Уэса Хэнни: «Подтвердите свой бизнес-аккаунт, используя интерфейс PayPal Sandbox». Попытка этого тоже не сработала.

  4. MGPalmer предложил в своем ответе создать немецкий торговый счет. Не работает.

Какая хлопот!

Через час, когда я был близок к тому, чтобы вытащить компьютер из окна, я понял, что забыл одно. Изменение моего адреса электронной почты получателя в форме PayPal на адрес электронной почты продавца песочницы. Это решило это для меня.

PS: Может быть, ошибка глупого новичка? Но может быть полезно для других, сталкивающихся с той же ситуацией.

У меня была та же проблема, и ни одно из предложений здесь не работало. Тогда я понял, что проблема заключается в том, что я пытался сделать платеж с учетной записи в виде песочницы на активную учетную запись. Например, если ваша зарегистрированная учетная запись: email@example.com то все платежи в виде песочницы должны быть email-facilitator@example.com по email-facilitator@example.com иначе они попадут в режим PENDING.

Аналогичная проблема здесь – мой торговый счетчик (sandbox) был создан как в США, и я пытался делать платежи в евро.

Для меня неважно, какие настройки я изменил, он работал только после создания новой торговой учетной записи в Германии.

Никакие решения выше не работали для меня, но помогли мне найти решение.

Если вы используете учетную запись по умолчанию и покупателя, возможно, это решение будет работать для вас.

  1. Перейдите в developer.paypal > sandbox.accounts
    https://developer.paypal.com/developer/accounts/

  2. Войдите в систему и нажмите значок клона в своем бизнес-аккаунте sandobx и учетной записи покупателя.

  3. Установите новые имена и электронные письма и нажмите « Создать новую учетную запись».

  4. Откройте профиль обеих учетных записей и убедитесь, что Payment Review выключен

  5. Измените целевую учетную запись в коде / приложении и разместите новую учетную запись

  6. Повторить транзакцию с использованием новой учетной записи покупателя


Это решение не только решило мою проблему. Благодаря этому дизайн sandox.paypal изменился на новый дизайн, который использует реальные учетные записи .

Это важно, потому что некоторые данные, полученные IPN в этом случае, могут отвечать на другое имя.

Решение – это то, что @Jadeye объясняет:

Перейти на сайт разработчика PayPal

  1. Войдите в свою учетную запись разработчика (песочница)
  2. Нажмите «Приложения»
  3. Щелкните вкладки Sandbox
  4. Нажмите на адрес электронной почты, на который вы хотите отключить опцию «Просмотр платежей», и нажмите «Профиль» после его расширения.
  5. Нажмите «Настройки»
  6. И выберите «Выкл.» Для проверки платежей.
  7. Нажмите Закрыть

Вам еще нужно проверить:

Сделайте так, чтобы языковая кодировка вашей учетной записи PayPal была установлена ​​в UTF-8. В некоторых случаях по умолчанию установлено значение «windows-1256». Чтобы изменить его на UTF-8, вам необходимо:

  • зайдите в свой профиль, затем «мои инструменты продажи»,
  • там внизу нажмите «Кодирование языка кнопки PayPal»,
  • На следующей странице вам нужно нажать «Дополнительные параметры», где вы можете, наконец, установить кодировку

Каждой учетной записи Paypal, которую я установил в Германии, по умолчанию была установлена ​​кодировка «windows …». Затем IPN не будет работать с веб-сайтом с кодировкой UTF-8, даже в Woocommerce или EDD или эспрессо события.

Проблема в том, что если валюта отсутствует в вашей торговой учетной записи PayPal, будет помечена как «невостребованная», поэтому она возвращает статус «ожидающий»,

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