1

私たちは、Spree をベースとし、Heroku でホストされているオンライン ストアを構築しています。チェックアウトをできるだけ簡単にしたいので、PayPal Express Checkout と Instant Update API を使用して送料を決定することにしました。

HTTP 経由でチェックアウト プロセスをテストしたところ、すべてが完全に機能しました。ユーザーが配送先住所を入力すると、PayPal がバックグラウンドでサーバーにクエリを実行し、配送料を取得しました。

ただし、SSL に切り替えると、送料が更新されず、デフォルトの定額料金に戻ります。今回はアプリが HTTPS、つまりhttps://myapp.herokuapp.com経由でアクセスされることを除いて、すべてが同じであるため、何が問題なのかわかりません。

ログを確認したところ、PayPal のサーバーがクエリを作成したことがわかりましたが、PayPal のチェックアウト ページで送料が更新されていません。

何が悪いのか何か考えはありますか?

アップデート:

さらにテストした結果、PayPal はトランザクション設定で設定されたタイムアウトに従っていないようです。単純な "sleep(x)" をコールバック メソッドに追加して、人為的に遅延 (x 秒) を誘発しました。通常の HTTP を介しても、わずか 1 秒の遅延で PayPal が応答を無視するのに十分です。

最大タイムアウトは 6 秒のはずですが、実際にはまったくそうではないようです。そして、それを HTTPS (接続の確立に時間がかかる) と組み合わせると、そもそもコールバックが失敗した理由と考えられます。

PayPal にチケットを送信しましたが、PayPal が対応してくれるかどうか、または何か対応してくれるかどうかわかりません...

4

2 に答える 2

0

コールバックから返された配送オプションを PayPal が無視できる理由はたくさんあるようです。

PayPal のサイトで、コールバックへの最近の呼び出しの履歴を、返された応答と拒否の理由とともに保持するものを見たいと思います - 便利な IPN 履歴にいくぶん似ています.

于 2013-03-12T15:37:14.553 に答える
0

あなたが私の疑念をほぼ確認したので、ここにあなたの本当のドメイン名を投稿してよかった.

*.herokuapp.com問題は、単一のドメインの SSL だけでなく、ワイルドカード SSL (証明書が に発行されていることがわかります) を使用していることだと確信しています。

www.MicroPedi.com5 つの名前の UCC 証明書である UCC 証明書で同じ問題が発生しています。PayPalは、それへの呼び出しさえ拒否します(私はログを記録しており、サンドボックスを使用している場合を除いて何も来ていません).


これを確認するために、(単一の SSL で) 正常に動作している以前のエクスプレス チェックアウトの実装があり、新しいアプリケーションにその古い URL を指定すると、魔法のように再び動作し始めました。これはシングル ネーム SSL です。実際、これは高価なgreen bar証明書の 1 つです。

私は PayPal サポートに直接手紙を書きましたが、今のところ回避策として考えられる唯一のことは、適切なドメインから私の UCC ドメインにリダイレクトするプロキシ ページを作成することだけです。

于 2013-03-27T10:29:25.093 に答える