2012-04-21 73 views
0

我目前正在Magento中創建我的第一個自定義結賬頁面。我有一個可用的代碼 - 它創建了一個無薪訂單,因此下一步是根據所選的付款方式將客戶重定向到第三方付款網站。Magento:將客戶重定向到第三方支付網站

經過一番研究,似乎有一個名爲redirectUrl的參數,我應該能夠以某種方式得到,但我無法弄清楚如何。

如果我全錯了,請將我指回正軌!先謝謝你。

<?php 
    require_once 'app/Mage.php'; 

    Mage::app(); 

    $quote = Mage::getModel('sales/quote')->setStoreId(Mage::app()->getStore('default')->getId()); 

    // guest order 
    $quote->setCustomerEmail('[email protected]'); 

    // add sample product 
    $product = Mage::getModel('catalog/product')->load(8); 
    $buyInfo = array(
      'qty' => 1, 
    ); 
    $quote->addProduct($product, new Varien_Object($buyInfo)); 

    $addressData = array(
      'firstname' => 'Test', 
      'lastname' => 'Test', 
      'street' => 'Sample Street 10', 
      'city' => 'Somewhere', 
      'postcode' => '123456', 
      'telephone' => '123456', 
      'country_id' => 'SE' 
    ); 

    $billingAddress = $quote->getBillingAddress()->addData($addressData); 
    $shippingAddress = $quote->getShippingAddress()->addData($addressData); 

    $shippingAddress->setCollectShippingRates(true)->collectShippingRates()->setShippingMethod('flatrate_flatrate')->setPaymentMethod('checkmo'); 

    $quote->getPayment()->importData(array('method' => 'checkmo')); 

    $quote->collectTotals()->save(); 

    $service = Mage::getModel('sales/service_quote', $quote); 
    $service->submitAll(); 
    $order = $service->getOrder(); 

    echo 'Created order #' . $order->getIncrementId(); 
?> 

回答

1

在示例代碼中,您將Magento類用於獨立的PHP文件。這樣,Magento重定向將不起作用,因爲它是從Mage_Core_Controller_Front_Action的方法。你必須使用Magento控制器來嘗試這種重定向方式。

無論如何,你可以使用PHP header功能:header("Location: http://somepayment.com/complexUrl"); die;

+0

但我怎麼能獲取該付款方式的網址是什麼? – Ivar 2012-04-22 07:14:13

+0

您是否指的是從管理中的Payment Method Config部分獲取URL? – 2012-04-22 13:06:13

+0

不,來自選定付款方式的網址(樣本中的「checkmo」)。 – Ivar 2012-04-22 14:14:12