2017-03-10 23 views
0

私はpaypal経由で有料ダウンロード用の書面によるダウンロードソフトウェアを使用しています。これは何年も問題なく動作しましたが、最終日にPayPalのIPNに問題が発生しました。各ダウンロードは、このPayPal IPNは期待通りに動作しません

<form action="https://www.paypal.com/cgi-bin/webscr" target="_top" method="post" target="_top" style="text-align: right"> 
<input type="hidden" name="cmd" value="_xclick"> 
<input type="hidden" name="business" value="[email protected]"> 
<input type="hidden" name="item_name" value="SOME PRODUCT Single License"> 
<input type="hidden" name="item_number" value="20001"> <input type="hidden" name="amount" value="69"> 
<input type="hidden" name="currency_code" value="EUR"><input type="hidden" name="button_subtype" value="services"> 
<input type="hidden" name="no_note" value="0"> 
<input type="hidden" name="notify_url" value="https://www.example.com/path1/path2/path3/?no_cache=1&tx_ppdownload_pi1%5Baction%5D=notify&tx_ppdownload_pi1%5Bcontroller%5D=Transaction"> 
<input type="hidden" name="image_url" value="http://www.example.com/files/logo.png"> 
<input type="hidden" name="return" value="https://www.example.com/path1/path2/path3/?no_cache=1&tx_ppdownload_pi1%5Baction%5D=return&tx_ppdownload_pi1%5Bcontroller%5D=Transaction"> 
<input type="hidden" name="cancel_return" value="https://www.example.com/path1/path2/path3/?no_cache=1&tx_ppdownload_pi1%5Baction%5D=cancel&tx_ppdownload_pi1%5Bcontroller%5D=Transaction"> 
<button class="btn btn-lg btn-success btn-block" style="border-radius: 0;">Purchase now <br /><small>secure via PayPal</small></button> 

あり異なる製品とのページに複数のフォームのようなルックスのために、独自のフォームを持っています。数日から、私はこの問題を抱えています:

サンドボックスとライブ:購入後、新しいレイアウトと新しいリンクがショップに戻ります。数日前、そのリンクは私のリターンURLと呼ばれ、取得/ポストデータがいくつかありました。そのデータにはtxn_idが含まれていました。通知URLでPayPalは常にトランザクションを送信し、返信urlとtxnidを使用してトランザクションを確認して情報を表示することができました。

キャンセルURLも無視されます。私はボタンをクリックすることができ、私はpaypalに来た。数日前に私はキャンセルをクリックすることができましたし、cancel_returnに戻って情報を表示しました。 cancel_returnは、今ではほとんどのケースである。他のパラメータなしの

https://www.example.com/path1/path2/path3/?no_cache=1

。 10例のうち7例では、追加のパラメータはpaypalページのキャンセルリンクにありません。

10件のうち7件でnotify_urlが呼び出されることはなく、おそらくパラメータも欠落している可能性があります。

10の10の場合return_urlにはtxn_idが含まれず、10のうち7つのケースでreturn urlにはフォームからのパラメータが欠落しています。

最初の悪い支払い(お金を得た、正しいreturn_urlとnotify_urlの呼び出しは数日前でした)。先月、私は、エラーのない、さまざまな製品を使って、異なるページから約60件の取引をしました。

私は今何が間違っているのか分かりません。

+0

'no_cache = 1'の後に何がありますか? URLはあなたが望むものではないようです。 – aynber

+0

こんにちはaynber、あなたのコメントのためのthx。これはMVCアプリケーションです。その他のパラメータは、IPNが呼び出す必要があるコントローラ/アクションです。このパラメータは、ユーザーに適切なコンテンツ(完了した/保留中/失敗した戻り値)またはcancel_returnを示すために重要です。 URLSでパラメータが見つからない場合、ユーザーは製品のページのみを表示します。 –

+0

買い手がPayPalにログインしている場合、私は今ライブシステム上で不足しているパラメータurlを見ることができます。 notify_url、returnおよびcancel_returnは、クライアントブラウザにpaypalログイン/セッションがない場合、正しく処理されます。これは奇妙なことですか? –

答えて

0

2017年3月8日現在、PayPalのIPN処理で問題が発生し始めました。トランザクションが '&'(複数の値を区切るなど)を含むURL(return、cancel_return、およびnotify_url)を渡すと、PayPalは最初の '&'の後のすべてのコンテンツのURLを削除します。

この投稿は、問題を報告する最初の一つであったとのurlencodeを使用することをお勧めします:QueryString values removed from the IPN endpoint by PayPal

私は'&amp;'(エンコードされたバージョン)と、そのちょうど「&」を置き換える自分のPayPalフォームにいくつかの変更を行いましたうまくいくようだ。

この問題はPayPalに報告されています(これまでにも多くの人がおそらく)。うまくいけば、彼らはそれを修正するでしょう。また、この問題は断続的であると思われます。また、リンクされている上記の投稿のように、あなたが接続しているPayPalサーバーに依存している可能性があります。

+0

詳細な回答ありがとうございます。今ではnotify_urlが毎回動作しているようです。 cancel_urlとreturn_urlはありません。私はPayPalがこの問題を速やかに解決できることを願っています。 –

+0

これはPayPal側のバグかどうか、あるいは、それを強制し始めたばかりでなく、いつも必要としているかどうかについての情報はありますか? – ThiefMaster

+0

私は先週paypalにサポートリクエストを送信しました。早急に私はこれに対する答えをここに発表します。 –

関連する問題