使用Magento API将付款方式设置为购物车

时间:2013-02-14 13:56:45

标签: magento

我正在使用Magento API创建订单。当我想向购物车添加付款方式时,我的代码失败了:

$paymentMethod = array(
    “method” => “paypal_standard”
);

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

我收到以下错误:不允许付款方式。

在系统管理部分 - >配置 - > PayPal我设置了网站付款标准,但我没有启用系统中的任何选项 - >配置 - >付款方式导致没有可用于PayPal。 我打电话的时候:

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

方法我得到一个空数组,因为没有任何可用的付款方式集。有人知道在Magento中保存PayPal付款设置的方式和位置吗?

如果我设置了另一种付款方式,例如“checkmo”,那么订单就可以了。问题是我只需要允许Paypal标准付款。

所以我的问题是:如何将PayPal的付款方式设置为购物车,以便我的订单成功创建?

感谢。

2 个答案:

答案 0 :(得分:1)

我也面临这个问题并找到理由。

$ method-> canUseInternal()用于付款方式api。当我们在付款方法中使用paypal或其他可重定向的方法时,在这种情况下,$ method-> canUseInternal()会得到false值。

因此,对于这种类型的情况,我们需要创建自己的自定义编码。

api function 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;
        }

答案 1 :(得分:0)

要使用Paypal付款,您需要将您的客户重定向到Paypal。因此,您可能无法使用此付款方式使用API​​。我建议您查看付款方式的isAvailable()来自定义此行为。