it is executed, at least on my pc I enabled its execution, but here is two
conditions:
1. create some user with existing email, do not use admin
2. when you create payment, please change its oxid field value (use php my
admin) to "alertpay" and check its setup (group, country assignment,
delivery set config)
--------------------------------------------------
From: "Vikram Vaswani" <[email protected]>
Sent: Monday, August 17, 2009 10:51 AM
To: <[email protected]>
Subject: Re: [oxid-dev-general][Fwd: Re:Urgent
questiononpaymentgatewayintegration]> Hi Arvydas,
We spoke about this some time ago. I tried using the code you sent below,
but when I click the final 'submit order' button, the new module
_getNextStep() method never gets executed.
I checked and the new class has been set up correctly in admin and it is
being instantiated correctly by OXID. I then added a breakpoint and
realized that it is because $iSuccess is always 3 and so the
_getNextStep() method is never executed. Any idea why this could be
happening?
Vikram
Arvydas wrote:
Here is what you need:
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' => $this->getSession()->getId(),
);
oxUtils::getInstance()->redirect( $this->gatewayUrl .
http_build_query( $formData ) );
}
}
if ( $iSuccess === 'AlertPayOK' && $oOrder->load(
$this->getOrderId() ) ) {
// you load order here and set its status to OK
$oOrder->oxorder__oxtransstatus = new oxField( "PAYMENT_OK" );
//saving
$oOrder->save();
// check code below
// means emailing succeded
$iSuccess = $oOrder->sendAlertPayEmails();
} elseif ( $iSuccess === 'AlertPayERROR' ) {
// you set this code to move user back to payment selection
page
// or you can simply return NULL and user will stay in order
confirmation page
$iSuccess = 2;
}
return parent::_getNextStep( $iSuccess );
}
public function processAlertPay()
{
// this function will be called when ap_returnurl will be executed
// so now you can check response parameters and do all other you
need
// on success you set
$iSuccess = 'AlertPayOK';
// on error you set
$iSuccess = 'AlertPayERROR';
// set
// you will be redirected now where needed..
return $this->_getNextStep( $iSuccess )
}
public function getOrderId()
{
return oxSession::getVar( 'sess_challenge' );
}
?>
3. additionally you need to handle email sending -
oxOrder::_sendOrderByEmail(), and send emails only when everything went
file:
<?php
protected function _sendOrderByEmail( $oUser = null, $oBasket = null,
$oPayment = null )
{
if ( $this->oxorder__oxpaymenttype->value != 'alertpay') {
return parent::_sendOrderByEmail( $oUser, $oBasket,
$oPayment );
}
return 1;
}
public function sendAlertPayEmails()
{
...
return $this->_sendOrderByEmail( $oUser = null, $oBasket = null,
$oPayment = null )
}
4. I did not check the code, probably errors contain.. but the idea
should be clear! ;)
where should I send my paypal account data? :D
_______________________________________________
dev-general mailing list
[email protected]
http://dir.gmane.org/gmane.comp.php.oxid.general
_______________________________________________
dev-general mailing list
[email protected]
http://dir.gmane.org/gmane.comp.php.oxid.general
_______________________________________________
dev-general mailing list
[email protected]
http://dir.gmane.org/gmane.comp.php.oxid.general