3

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') 

method 利用可能な支払い方法が設定されていないため、空の配列を取得します。Paypalの支払い設定がMagentoに保存される方法と場所を知っている人はいますか?

「checkmo」などの別の支払い方法を設定すると、注文は正常に作成されます。問題は、Paypal の標準支払いのみを許可する必要があるということです。

私の質問は次のとおりです。注文が正常に作成されるように、カートの支払い方法を PayPal に設定するにはどうすればよいですか?

ありがとう。

4

2 に答える 2

1

私もこの問題に直面しており、その理由を見つけています。

支払い方法 API で使用される $method->canUseInternal()。その場合、支払い方法APIでpaypalまたはその他のリダイレクト可能な方法を使用すると、 $method->canUseInternal() はfalse値を取得します。

したがって、このタイプの状況では、独自のカスタム コーディングを作成する必要があります。

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 に答える