Status field value can be customized by your own, so you can set ANY state value in this step.

--------------------------------------------------
From: "Vikram Vaswani" <[email protected]>
Sent: Monday, August 17, 2009 7:01 PM
To: <[email protected]>
Subject: Re: [oxid-dev-general][Fwd:    Re:Urgent       
questiononpaymentgatewayintegration]> Hi Arvydas,

Sorry, one more question :)

In the code below, you suggested overriding the order::_getNextStep method and performing the redirection to alertpay here. However, isn't this a little dangerous, because the order status is set to 'OK' before order::_getNextStep method is invoked? So IMO, if the payment transaction fails for any reason, the order status will be OK even though the payment is not made.

Please advise, it is possible I have misunderstood the execution chain.

Vikram

Arvydas wrote:
--------------------------------------------------
1. forget oxPaymentGateway::executePayment() - in your case you don't need it at all;
2. make a module for order with these:

<?php
   // set payment method as active
   protected $_blActive = true;

   // set Alertpay merchant name
   protected $loginId = 'XXX';

   // set Alertpay gateway URL
   protected $gatewayUrl = 'https://www.alertpay.com/PayProcess.aspx';

   protected function _getNextStep( $iSuccess )
   {
       // defining that everything was fine
       if ( is_numeric( $iSuccess ) && $iSuccess > 0 && $iSuccess < 2 )
           $oOrder = oxNew( 'oxorder' );
if ( $oOrder->load( $this->getOrderId() ) && $oOrder->oxorder__oxpaymenttype->value == 'alertpay' ) {
               // your code goes here
               $oCur = $this->getConfig()->getActShopCurrencyObject();

               $formData = array(
                   'ap_purchasetype'   => 'item-goods',
                   'ap_merchant'       => $this->loginId,
                   'ap_currency'       => $oCur->name,
                   'ap_quantity'       => '1',
'ap_returnurl' => 'http://oxid.localhost/index.php?cl=order&fnc=processalertPay&sid=' . $this->getSession()->getId(),
                   'ap_itemname'       => 'Shopping Cart',
'ap_description' => $this->getConfig()->getActiveShop()->oxshops__oxname->value,
                   'ap_amount'         => $dAmount,
'ap_cancelurl' => 'http://oxid.localhost/index.php?cl=payment&payerror=4&sid=' . $this->getSession()->getId(), 'apc_1'

_______________________________________________
dev-general mailing list
[email protected]
http://dir.gmane.org/gmane.comp.php.oxid.general

Reply via email to