2016-09-07 9 views
1

私はAdvanced In-Context Checkout integrationを使用しています。コンテキスト内チェックアウト:ポストメッセージ応答エラーの応答ハンドラが見つかりません

私はAJAXを行うと、そのドキュメントは、それを説明するのと同様に、これらの機能を利用:

paypal.checkout.setup() 
paypal.checkout.initXO() 
paypal.checkout.startFlow() 
paypal.checkout.closeFlow() 

を私は常にExecute the payment step後、この迷惑なエラーを取得します。彼らはどこにでも彼らのAPIドキュメントを説明するのは気にならなかった。それはちょうど行方不明です。

新しいエラー(「投稿メッセージの返信に対して応答ハンドラが見つかりません」+「+ window.location.href」の「+ t.name +」;

エラーは何を意味しますか?ポストメッセージ応答のためのどのような種類の応答ハンドラが必要ですか?それを提供する方法?

私のクライアント側のコードは、次のように簡単です:次のように

onCheckoutBtnClick(ev) { 
    paypal.checkout.initXO(); 
    $.post('/checkout', { 
     user: JSON.stringify(this.props.user), 
     data: JSON.stringify(this.props.WCs), 
    }) 
    .done(res => { 
     paypal.checkout.startFlow(res.approval_url); 
    }) 
    .fail(err => { 
     paypal.checkout.closeFlow(); 
    }); 
}, 

そして、サーバ側は次のとおりです。

router.post('/checkout', (req, res, next) => { 
    var payment_json = { 

     // huge config to create a payment 
     // the pivotal value is "return_url" 
     redirect_urls: { 
      "return_url": "http://example.com:3000/complete_payment", 
      "cancel_url": "http://example.com:3000/cancel_payment" 
     }, 
    } 
}); 

そしてreturn_urlコード

router.get('/complete_payment', (req, res, next) => { 
    paypal.payment.execute(req.query.paymentId, execute_payment_json, function (err, payment) { 

     // After this step the error in thrown on the client 
     res.redirect('http://example.com:3000/show_complete_page_to_buyer'); 
    }) 
}) 

答えて

1

それはこのように思えますサンドボックス問題のみです。サンドボックスでこのエラーを常に見て、本番モードではそれを見た。 私は、サンドボックスとプロダクションの多くの違いに不満を抱いているPaypalの開発者に郵送しました。

0

サンドボックスには私にも問題があります。これは、頻繁にリフレッシュするときに修正されることがあります。クロームの開発者ツールを使用します(Ctrl-Shiftキーを押しながらI)と私は、このスタックトレースを参照してくださいコンソールログを見直し:

types.js:19 Uncaught Error: No handler found for post message ack for message: postrobot_method from http://localhost:50834 in https://www.sandbox.paypal.com/webapps/hermes/button 
at Object._RECEIVE_MESSAGE_TYPE.(anonymous function) [as postrobot_message_ack] (https://www.paypalobjects.com/api/checkout.js:2514:33) 
at receiveMessage (https://www.paypalobjects.com/api/checkout.js:2465:77) 
at messageListener (https://www.paypalobjects.com/api/checkout.js:2486:13) 

私はエラーが他の場所で私のコードで未処理のJavaScript例外によってトリガすることができるにも認められてきました。

関連する問題