Подтвердить что ты не робот

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

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

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

Сейчас я тестирую с помощью изолированной программной платформы PayPal.

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

  • Пользователь делает платеж - ok
  • Пользователь возвращается на мой сайт успешно - ok
  • Через несколько секунд PayPal вызывает мой сайт с использованием IPN - ok
  • Мой класс успешно проверяет входящие данные IPN.
  • PayPal возвращает "payment_status: Pending"

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

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

4b9b3361

Ответ 1

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

https://www.sandbox.paypal.com/businessmanage/preferences/payments

Обычно вы можете попасть туда, пройдя через "My Business Setup", но в настоящее время он перенаправляет на PayPal live (несмотря на то, что находится в "песочнице").

Перейдя на эту страницу, измените "Блокировать платежи, отправленные мне в валюте, которую я не держу" на "Нет, примите их и конвертируйте в..."

Кроме того, не забудьте подтвердить свой бизнес-аккаунт, используя интерфейс PayPal Sandbox и раздел "Тестовая электронная почта" API.

Ответ 2

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

Ответ 3

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

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

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

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

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

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

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

enter image description here

Ответ 4

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

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

  • Нажмите вкладку "Учетные записи тестов" слева. Вы должны были создать эти тестовые учетные записи для тестирования в Sandbox.

  • Найдите столбец "Обзор платежей".

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

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

Ответ 5

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

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

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

Шаги:

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

2. Обзор оплаты включен

Решение:

  • Войдите в свой Центр разработчиков.
  • Нажмите вкладку "Учетные записи тестов" слева. Вы должны были создать эти тестовые учетные записи для тестирования на Sandbox.
  • Найдите столбец "Обзор платежей".
  • Найдите учетную запись для песочницы, которую вы используете, и нажмите "Включено" в столбце "Обзор платежей".

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

Ответ 6

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

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

  • Затем я заметил последнее предложение Wes Hanney: "Подтвердите свой бизнес-аккаунт, используя интерфейс PayPal Sandbox". Попытка этого также не работала.

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


Что за хлопот!

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


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

Ответ 7

У меня была та же проблема, и ни одно из предложений здесь не работало. Тогда я понял, что проблема заключается в том, что я пытался сделать платеж с учетной записи в виде песочницы на активную учетную запись. Так, например, если ваша зарегистрированная учетная запись: [email protected], тогда все платежи в виде песочницы должны быть сделаны в [email protected], иначе они будут переведены в режим PENDING.

Ответ 8

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

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

Ответ 9

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

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

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

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

  • Установите новые имена и электронные письма и нажмите создать новую учетную запись

  • Откройте профиль обеих учетных записей и убедитесь, что Обзор платежей ВЫКЛ

  • Изменить вашу целевую учетную запись в вашем коде/приложении и поместить новую бизнес-учетную запись

  • Повторить транзакцию, используя новую учетную запись покупателя


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

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

Ответ 10

По умолчанию ваш бизнес-счет PayPal ограничен несколькими принятыми валютами, которые выбираются на основе ваших региональных настроек. Платежи, произведенные в непринятых валютах, останутся в состоянии ожидания/открытия. Для поддержки/принятия этих валют вам необходимо добавить их в список "принятых валют" на PayPal. Для этого выполните следующие действия:

  1. Войдите в PayPal, используя свой бизнес-аккаунт Paypal.
  2. Перейдите в "Профиль"> "Профиль и настройки"> "Мои деньги"> "Валюты"
  3. Добавьте валюты, которые вы хотите поддерживать.

Примечание. При использовании учетных записей "песочницы" при тестировании необходимо выполнить это также для учетной записи "песочницы" посредника после входа в эту учетную запись с помощью URL-адреса: https://www.sandbox.paypal.com/

Ответ 11

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

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

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

Ответ 12

Есть еще одна вещь, которую вам нужно проверить:

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

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

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

Ответ 13

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

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

Ответ 14

Я решил мой, удалив все учетные записи песочницы и воссоздал его.

Важные замечания:

Убедитесь, что счета используют ту же валюту с вашим кодом.