Авторизуйтесь, а затем выполните программный захват с помощью Authorize.Net в Magento. - PullRequest
2 голосов
/ 21 июля 2010

Может ли кто-нибудь помочь мне в получении шагов авторизации и захвата (кода) с помощью Authorize.Net? Кажется, что все знают, как использовать оба одновременно, но нет никакого объяснения тому, как мы можем сделать это в отдельных шагах, сначала авторизоваться, а затем захватить (используя trasactionID).

Ответы [ 2 ]

5 голосов
/ 04 ноября 2010

Выполните следующие шаги для автоматического захвата ваших заказов после авторизации:

  1. Настройте способ оплаты для Авторизации (не прямой продажи)

  2. Создайте наблюдатель, который будет обрабатывать событие с именем sales_order_payment_place_end с помощью метода с именем automaticalyCaptureOrder

  3. Используйте следующий код метода наблюдателя:

     public function automaticalyCaptureOrder(Varien_Event_Observer $observer)
     {
         $payment = $observer->getEvent()->getPayment();
         // Add additional check for payment method instance, 
         // We need to be sure that only Authorize.Net payment will be captured
         if ($payment->getMethodInstance() instanceof Mage_Paygate_Model_Authorizenet) {
             $payment->capture(null); // null value tells Magento to create
                                      // an invoice automatically
         }
     }
    
  4. Расслабьтесь и отдохните:)

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

ОБНОВЛЕНИЕ:

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

$order->load($orderId); // Or $order->loadByIncrementId($incrementId);
$order->getPayment()->capture(null); // Capturing the payment
$order->save(); // Save updated information (transaction ids, order status)
0 голосов
/ 03 сентября 2010

Для транзакций CAPTURE требуется код авторизации, который возвращается из вашей транзакции AUTH. Ключ x_auth_code должен быть установлен на значение кода авторизации из запроса AUTH. В ответе AUTH с разделителями это поле № 5.

См. Стр. 13 руководства AIM. Также посмотрите на странице 58 в Приложении B минимальные обязательные поля для каждого типа транзакции.

Удачи.

...