3

PayPal Adaptive Payments API で非常に厄介な問題が発生しています。ライトボックス化された iframe に支払いを埋め込もうとしています。指示に従ってすべてを実装しました。支払いに行ってボタンをクリックすると、ライトボックス化された iframe が開き、問題なく支払いが実行されます。ただし、支払いをキャンセルするか、支払いを行って paymentSuccess を呼び出すと、iframe 内にチェックアウト ページが読み込まれ、閉じられません。アラートが必要なピノが表示されないため、 paymentCanceledはまったく呼び出されません。

いくつかのコードをお見せしていますが、実際には、まだ機能していない Wordpress プラグインから取得したものであり、ページの「機能するバージョン」をお見せすることはできません。とにかく、さらに詳細が必要な場合は、お問い合わせください。利用できるようにします.

PayPal の JavaScript

 <script type="text/javascript" charset="utf-8">
            var dgFlow = new PAYPAL.apps.DGFlow({trigger: 'post_pay_counter_paypal_execute_payment'});

            function MyEmbeddedFlow(embeddedFlow) {
                  this.embeddedPPObj = embeddedFlow;
                  this.paymentSuccess = function () {
                       this.embeddedPPObj.closeFlow();
                       // handle payment success here
                       top.close();
                  };
                  this.paymentCanceled = function () {
                       alert('pippo');
                       this.embeddedPPObj.closeFlow();
                       // handle payment cancellation here
                       top.close();
                  }

            }
            var myEmbeddedPaymentFlow = new MyEmbeddedFlow(dgFlow);
   </script>

皆さん、ありがとうございました!

4

1 に答える 1

4

私の問題は解決しました。コードは次のとおりです。

jQuery(document).ready(function($) {
   //Manage the closing of the iframe when payment is executed/canceled
   if (window != top) {
      top.location.replace(document.location);
   }
}

//Initialize PayPal embedded payment flow. Now loading it on document ready so that we only have it if user prepares payment, not just loads the page...
var dgFlow = new PAYPAL.apps.DGFlow({trigger: 'post_pay_counter_paypal_execute_payment'});
于 2012-09-29T09:47:58.230 に答える