2013-02-14 69 views
3

我正在使用Magento API創建訂單。我的代碼在我想要將付款方式添加到購物車時失敗:將付款方式設置爲使用Magento API的購物車

$paymentMethod = array(
    「method」 => 「paypal_standard」 
); 

$resultPaymentMethod = $proxy->call(
    $sessionId, 
    「cart_payment.method」, 
    array(
     $shoppingCartId, 
     $paymentMethod 
    ) 
); 

我收到以下錯誤:付款方式是不允許的。

在系統 - >配置 - >貝寶的管理部分我已經設置網站付款標準,但我沒有啓用系統 - >配置 - >付款方式的任何選項,因爲沒有可用的貝寶。 當我打電話:

$proxy->call($session, 'cart_payment.list') 

方法我得到一個空數組,因爲沒有任何可用的付款方式設置。有人知道如何以及在Magento中保存了哪些PayPal付款設置?

如果我設置另一種支付方式,如「checkmo」,那麼訂單創建正常。事情是,我只需要允許貝寶標準付款。

所以我的問題是:如何將付款方式設置爲PayPal到購物車,以便我的訂單成功創建?

謝謝。

+0

我這裏有同樣的問題。我不能選擇PayPal,因爲它表示不允許:\ – Comforse 2013-03-13 14:30:02

回答

0

要用Paypal支付,您需要將您的客戶重定向到PayPal。由於這個事實,您可能不被允許使用這種使用API​​的支付方式。我建議您查看付款方式的isAvailable()以自定義此行爲。

1

我也面臨這個問題,並找到它的原因。

$ method-> canUseInternal()用於付款方法api。當我們在付款方法中使用paypal或其他可重定向的方法api時,方法$ method-> canUseInternal()會得到錯誤的值。

因此,對於這種類型的情況,我們需要創建自己的自定義編碼。

API函數refreance:

protected function _canUsePaymentMethod($method, $quote){ 
     if (!($method->isGateway() || $method->canUseInternal())) { 
      return false; } 

     if (!$method->canUseForCountry($quote->getBillingAddress()->getCountry())) { 
      return false; 
     } 

     if (!$method->canUseForCurrency(Mage::app()->getStore($quote->getStoreId())->getBaseCurrencyCode())) { 
      return false; 
     } 
相關問題