Как отключить PayPal IPN в Magento? - PullRequest
1 голос
/ 21 февраля 2012

Когда люди делают успешный платеж через PAyPal в моем интернет-магазине Magento, он автоматически создает счет с уникальным номером счета.По причинам, связанным с бухгалтерским учетом, я должен отключить его.

Я искал несколько недель, но до сих пор не нашел решения этой проблемы.Что я знаю, так это то, что это вызвано IPN.Проблема в том, что я не знаю, как отключить это, не повредив мой магазин или платежи PayPal.

Некоторые дополнительные характеристики: - Версия: Magento 1.6.2.0 - Стандартный PayPal

Файлы, содержащие IPN: www / app / code / core / Mage / Paypal / controllers

Ответы [ 5 ]

2 голосов
/ 21 февраля 2012

«Отключение» является довольно расплывчатым, но на стороне Magento нет параметров конфигурации, которые позволили бы вам принимать стандартные платежи PayPal с использованием системы IPN, но не создавать счета.Вы пытаетесь написать собственный код для этого.Вот некоторые отправные точки.

PayPal IPN работает с URL-адресом обратного вызова.То есть, как только PayPal обработал платеж, он получает конкретный URL из Magento с определенным набором данных в поле сообщения.Затем на основе этой информации предпринимаются соответствующие действия (создается счет, выдается кредит и т. Д.).Поэтому самым быстрым способом достижения вашей цели было бы изменение URL-адреса IPN в конфигурации PayPal.Это означает, что PayPal все еще уведомляет URL, но не Magento URL, и счет никогда не создается.

Если это не работает или имеет неприемлемые побочные эффекты, вот интересующие вас кодовые точки. Предположим, вы используете стандартную установку Magento PayPal с IPN-URL, настроенным на

http://yourstore.example.com/paypal/ipn/

Magento обработает этот запрос с помощью метода indexAction в

#File: app/code/core/Mage/Paypal/controllers/IpnController.php
public function indexAction()
{
    if (!$this->getRequest()->isPost()) {
        return;
    }

    try {
        $data = $this->getRequest()->getPost();
        Mage::getModel('paypal/ipn')->processIpnRequest($data, new Varien_Http_Adapter_Curl());
    } catch (Exception $e) {
        Mage::logException($e);
    }
}

Бизнес-логика для этого метода (включая создание вашего счета-фактуры) начинается в модели paypal/ipn.В стандартной системе это разрешается в классе по

#File: app/code/core/Mage/Paypal/Model/Ipn.php
class Mage_Paypal_Model_Ipn
{
    ....
}

. Отследите код отсюда, чтобы найти метод, который вы хотите rewrite, и внесите необходимые изменения в функциональность (не создавая счет-фактуру).Лучше всего будет создать учетную запись разработчика в PayPal, чтобы вы могли неоднократно нажимать на URL, пока не найдете нужный код в нужном месте.

Удачи!

1 голос
/ 21 декабря 2015

вместо взлома ваших основных файлов Magento, просто отключите IPN в PayPal.

По умолчанию для PayPal IPN существует три состояния:

Вкл. Выкл. Отключено Первая опция позволит вамукажите URL-адрес IPN в своем профиле PayPal, и у вас будет доступ к «Истории IPN» на вкладке «История».Все данные IPN для вашей учетной записи будут отправлены на указанный вами URL-адрес, если вы не переопределите их с помощью notify_url / NOTFIFYURL для каждой транзакции.

Второй вариант отключит IPN для вашей учетной записи, но вы можетевсе еще используйте его, устанавливая notify_url / NOTIFYURL для каждой транзакции.Это то, что использует Magento.

Третий вариант прекратит генерировать сообщения IPN для вашей учетной записи, даже если ваша корзина покупок (в данном случае Magento) специально запрашивает сообщения IPN, отправив notify_url / NOTIFYURL.Сообщения IPN не будут доставляться.

Чтобы установить для IPN значение «Отключено», сначала установите для него значение «Вкл» в своей учетной записи PayPal и введите URL-адрес для IPN-адреса (хотя это может быть любой адрес, простовведите http://www.google.com/, например).После включения найдите параметр «Прекратить прием сообщений IPN (отключено)».Используйте это для полного отключения IPN.

Источник: - https://lastdropofink.co.uk/tools/magento/magento-paypal-ipn/

0 голосов
/ 21 декабря 2015

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

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

Включение займет всего несколько минут, и я покажу вам, как включить IPN для вашего сайта Magento.Это будет означать, что когда вы получаете заказ через PayPal Express, например, вы можете увидеть детали транзакции в Magento, и если вы используете eSellerPro и у вас включен eSellerPro Connector для обработки заказа на продажу, ваши данные заказа и оплаты будут совпадатьавтоматически.

Настройка этого займет не более нескольких минут, и вот 6 простых шагов для этого:

1 Войдите в PayPal

2 Наведите на «Профиль »и выберите« Мои настройки продаж »

3 В середине страницы нажмите« Обновить »рядом с« Уведомления о мгновенных платежах »

Теперь введите следующие данные:

URL уведомления - это просто http://your -magento-store.com / paypal / ipn / , заменяющий «your-magento-store.com» адресом вашего сайта.<= Это та часть, которая обычно всех сбивает с толку, так как они не уверены, что сюда вводить.Сообщения IPN - установите для этого параметра значение «Принимать сообщения IPN (включено)». Нажмите «Сохранить» </p>

. Это все, что сделано.

Чтобы проверить, работает ли IPN или нет, достаточно просто, просто выполните тестовую транзакцию.через ваш веб-сайт (для этого вам понадобится дополнительная учетная запись PayPal), а через несколько минут проверьте, что заказ в вашей админ-панели Magento был обновлен с данными транзакции PayPal.

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

0 голосов
/ 21 февраля 2012

Или вместо взлома ваших основных файлов Magento просто отключите IPN в PayPal.

По умолчанию для IPP PayPal существует три состояния:

  1. Вкл.
  2. Выкл.
  3. Отключено

Первый вариант позволит вам указать URL-адрес IPN в вашем профиле PayPal, и у вас будет доступ к «Истории IPN» на вкладке «История».Все данные IPN для вашей учетной записи будут отправлены на указанный вами URL-адрес, если вы не переопределите его с помощью notify_url / NOTFIFYURL для каждой транзакции.

Второй вариант отключит IPN для вашей учетной записи, но вы все равно можете использовать его, установив notify_url / NOTIFYURL для каждой транзакции.Это то, что использует Magento.

Третий вариант прекратит генерировать сообщения IPN для вашей учетной записи, даже если ваша корзина покупок (в данном случае Magento) специально запрашивает сообщения IPN, отправив notify_url / NOTIFYURL.Сообщения IPN не будут доставлены вообще.

Чтобы установить для IPN значение «Отключено», сначала установите для него значение «Вкл» в своей учетной записи PayPal и введите URL-адрес для IPN-адреса (хотя это может быть любой адрес, просто введите http://www.google.com/ дляпример).
После включения найдите параметр «Прекратить прием сообщений IPN (отключено)».Используйте это, чтобы полностью отключить IPN.

0 голосов
/ 21 февраля 2012

Если я правильно понял, вам следует изменить Платежное действие на Авторизация для вашего метода оплаты PayPal. Смотрите больше информации там: http://www.magentocommerce.com/knowledge-base/entry/setting-up-paypal-for-your-magento-store#1.1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...