3

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

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

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

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

在系统->配置->贝宝的管理部分,我设置了网站支付标准,但我没有在系统->配置->支付方法中启用任何选项,因为没有可用于贝宝的选项。当我打电话时:

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

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

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

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

谢谢。

4

2 回答 2

1

我也面临这个问题并找到原因。

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

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

api函数参考:

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;
        }
于 2014-05-15T17:25:40.027 回答
0

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

于 2013-06-26T20:02:13.017 回答