2010-07-21 4 views
2

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

+0

Это может помочь http://scriptbaker.com/creating-magento-order-programmatically-and-charging-saved-credit-card/ –

ответ

0

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

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

Удачи.

5

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

  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. Сядьте и расслабьтесь :)

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

UPDATE:

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

$order->load($orderId); // Or $order->loadByIncrementId($incrementId); 
$order->getPayment()->capture(null); // Capturing the payment 
$order->save(); // Save updated information (transaction ids, order status) 
+0

Иван, спасибо за информацию, но как я разрешаю первый и, допустим, через 10 дней я могу захватить. Мне нужно авторизоваться, чтобы отправить предметы клиенту, и я запишу, как только судоходная компания сообщит мне, что клиент получил предметы. Где Magento хранит информацию о кредитной карте в базе данных? – Isy

+0

Проверьте обновленный контент ответа. –

+0

Ну, я не думаю, что вы прямо ответили на вопрос Изи, но информация, которую вы предоставили, является удивительной. Действительно полезно мне хотя бы! Благодарю. – shaune

 Смежные вопросы

  • Нет связанных вопросов^_^