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