magento rediriger la caisse de paiement à une 3ème partie de la passerelle

Salut Les Gars
J'essaie de mettre en place mon nouveau mode de paiement de son travail très bien. Mais Mon exigence est un peu différent. J'ai besoin de rediriger l'utilisateur pour la passerelle de paiement la page. C'est de cette façon que je suis en train de mettre en œuvre

Lorsque l'utilisateur clique sur Commander mon Namespace_Bank_Model_Payment >> d'autoriser méthode est appelée. Ma passerelle Dit d'envoyer la première demande, compte tenu de la passerelle envoyer une URL & le Paiement de l'id. Sur cette Url, l'utilisateur doit être redirigé Où le client a réellement fait le paiement. J'ai deux actions dans le Contrôleur de succès & erreur pour gérer la réponse finale.

Que, ce code est appelé dans une requête ajax, je ne peux pas rediriger l'utilisateur vers un autre site web. Quelqu'un peut-il me guider comment l'accomplir?

Merci beaucoup à l'avance


Hey nick grâce,
Voici mon code, & j'Ai mis en œuvre getOrderPlaceRedirectUrl() méthode.

voici ma classe::

<?php
class Namespace_Hdfc_Model_Payment extends Mage_Payment_Model_Method_Abstract
{
protected $_isGateway = true;
protected $_canAuthorize = true;
protected $_canUseCheckout = true;
protected $_code = "hdfc";
/**
* Order instance
*/
protected $_order;
protected $_config;
protected $_payment;
protected $_redirectUrl;
/**
* @return Mage_Checkout_Model_Session
*/
protected function _getCheckout()
{
return Mage::getSingleton('checkout/session');
}
/**
* Return order instance loaded by increment id'
*
* @return Mage_Sales_Model_Order
*/
protected function _getOrder()
{   
return $this->_order;
}
/**
* Return HDFC config instance
*
*/
public function getConfig()
{
if(empty($this->_config))
$this->_config = Mage::getModel('hdfc/config');
return $this->_config;
}
public function authorize(Varien_Object $payment, $amount)
{
if (empty($this->_order)) 
$this->_order = $payment->getOrder();
if (empty($this->_payment))
$this->_payment = $payment;
$orderId = $payment->getOrder()->getIncrementId();
$order = $this->_getOrder();
$billingAddress = $order->getBillingAddress();
$tm = Mage::getModel('hdfc/hdfc');
$qstr = $this->getQueryString();
//adding amount
$qstr .= '&amt='.$amount;
//echo 'obj details:';
//print_r(get_class_methods(get_class($billingAddress)));
//adding UDFs
$qstr .= '&udf1='.$order->getCustomerEmail();
$qstr .= '&udf2='.str_replace(".", '', $billingAddress->getName() );
$qstr .= '&udf3='.str_replace("\n", ' ', $billingAddress->getStreetFull());
$qstr .= '&udf4='.$billingAddress->getCity();
$qstr .= '&udf5='.$billingAddress->getCountry();
$qstr .= '&trackid='.$orderId;
//saving transaction into database;
$tm->setOrderId($orderId);
$tm->setAction(1);
$tm->setAmount($amount);
$tm->setTransactionAt( now() );
$tm->setCustomerEmail($order->getCustomerEmail());
$tm->setCustomerName($billingAddress->getName());
$tm->setCustomerAddress($billingAddress->getStreetFull());
$tm->setCustomerCity($billingAddress->getCity());
$tm->setCustomerCountry($billingAddress->getCountry());
$tm->setTempStatus('INITIAL REQUEST SENT');
$tm->save();
Mage::Log("\n\n queryString = $qstr");
//posting to server
try{
$response = $this->_initiateRequest($qstr);
//if response has error;
if($er = strpos($response,"!ERROR!") )
{
$tm->setErrorDesc( $response );
$tm->setTempStatus('TRANSACTION FAILED WHILE INITIAL REQUEST RESPONSE');
$tm->save();
$this->_getCheckout()->addError( $response );
return false;
}
$i =  strpos($response,":");
$paymentId = substr($response, 0, $i);
$paymentPage = substr( $response, $i + 1);
$tm->setPaymentId($paymentId);
$tm->setPaymentPage($paymentPage);
$tm->setTempStatus('REDIRECTING TO PAYMENT GATEWAY');
$tm->save();
//prepare url for redirection & redirect it to gateway
$rurl = $paymentPage . '?PaymentID=' . $paymentId;
Mage::Log("url to redicts:: $rurl");
$this->_redirectUrl = $rurl;        //saving redirect rl in object
//header("Location: $rurl");   //this is where I am trying to redirect as it is an ajax call so it won't work
//exit;
}
catch (Exception $e) 
{  
Mage::throwException($e->getMessage());
}
}
public function getOrderPlaceRedirectUrl()
{
Mage::Log('returning redirect url:: ' . $this->_redirectUrl );   //not in log
return $this->_redirectUrl;
}
}

Maintenant getOrderPlaceRedirectUrl() son être appelé. Je peux voir le Mage::message de journal. mais l'url n'est pas là. Je veux dire la valeur de $this->_redirectUrl n'est pas là au moment de l'appel de fonction.

Et encore une chose, je ne suis pas l'intention de montrer à la clientèle toute la page comme "Vous êtes redirigé".

Merci pour votre question. Je suis pile sur 3D secure vérification des derniers jours, j'ai enfin eu ma réponse de votre question. Thx

OriginalL'auteur SAM | 2011-05-19