2010-12-30 7 views
3

誰かがPayPal Express Checkoutを使って注文するとMagentoでこの奇妙な問題が発生します。毎回注文が来ると数秒後に注文がキャンセルされます。次のように残されたコメントは以下のとおりです。PayPal注文Magentoで自動的にキャンセルする

Canceled order online. Amount: $59.23. Transaction ID: "XXXXXXXXXXXXXXXXX-void". 

今、私たちの顧客は、彼らが自分の注文をキャンセルしていなかった宣誓をされ、私たちはPayPalのを頼むとき、彼らはそれが問題であると言う(IDは、念のため消さ)私たちの側に。

誰もこの問題について聞いたことがありますか?私はMagento Enterprise 1.8を実行しています。

+0

Magento発射時に詐欺防止機能が組み込まれていますか? PayPalのPayFlow Pro製品は、住所/郵便番号/ CSCの不一致の支払いを受け入れ、支払を無効にするかどうかを決めることになります。 – ceejayoz

+0

私はMagentoの詐欺防止機能に慣れていませんが、それはもう一つの道です。 –

+0

私はIPNが時々面白いことをすることを知っています。ステータスを設定しているモジュールをチェックすることができます。たとえば、magento(1.4)で注文を編集すると、デフォルトでpaypalトランザクションがキャンセルされます。 – Chris

答えて

2

私も同様の問題が発生しました。私はPayPal Expressでチェックアウトし、PayPalアカウントを持っていないユーザーに追跡しました。問題と修正がここに表示されます。すべてのユーザーがエラーに遭遇していない

http://www.magentocommerce.com/bug-tracking/issue/?issue=9894

顔が付き/なしのPayPalアカウントのステータスに関連することができます。ユーザーが私達の店の製品を購入することができますPayPalのエクスプレス(ないPayPalの標準)とMagentoの統合


ただし、2つの異なる状況があります。 1)お客様がPaypalアカウントを持っている場合、問題なしで購入プロセスを完了することができます。 2)しかし、お客様がPaypalアカウントを持っていない場合、またはPayPalクレデンシャルを使用したくない場合は、PayPalクレデンシャルを使用しないでクレジットカードを使用して商品を購入することをお勧めします。次のエラー:

"This payment cannot be processed using your paypal account at this time".

問題は売り手がお金を受け取ることですが、顧客はちょうど反対のと思うでしょう。

この問題は、PayPalサポートチームによって断念され、確認されています。

実際の問題は購入プロセスで、「DoExpressCheckoutPayment」PayPalの機能が呼び出されます。ただし、このエラーで購入プロセスが終了すると、 "successpageredirectrequested"というパラメータが "true"に設定されます。このフラグは、トランザクションを完了した後、顧客をPayPalにリダイレクトする必要があるかどうかを示します。しかし、これは時代遅れのPayPalの行動であり、使用すべきではありません。

Magentoはこのパラメータの機能を使用しているため、PayPalは再び「successpageredirectrequested」がtrueに設定されているため、PayPalにリダイレクトしようとすると、このエラーが返されます。

は、我々は「)(パブリック関数placeOrderActionを」それだけで機能を変更app/code/core/Mage/Paypal/Controller/Express/Abstract.php

で、Magentoののソースコードに少し変更を加える修正することができます。この関数の中、次のコードのための ルック:

// redirect if PayPal specified some URL (for example, to Giropay bank) 
$url = $this->_checkout->getRedirectUrl(); 
if ($url) { 
$this->getResponse()->setRedirect($url); 
return; 
} 
$this->_initToken(false); // no need in token anymore 
$this->_redirect(?checkout/onepage/success?); 
return; 
} 

は、私達はちょうど「場合」、ちょうどこのようにコメントする必要があります:

問題を修正するには十分だ
//if ($url) { 
//$this->getResponse()->setRedirect($url); 
// return; 
//} 

。しかし、これは現在の修正ではありません。Magentoの新しいバージョンで修正するには、Magentoのプログラマがこれを見直す必要があります。

+0

Magento 1.5.1でこの問題が発生したばかりで、声明が修正された場合はコメントしています。 –

関連する問題