2015-08-21 32 views
3

用戶通過In-context Express Checkout支付後,PayPal重新加載頁面,並將用戶重定向到由後端「returnUrl」參數指定的頁面。paypal:在上下文快速結賬後留在頁面

但是,這會清除當前頁面。

有沒有辦法避免成功結帳後重新加載頁面?

+0

這確實是一個非常需要的功能。單頁應用程序不需要或不需要刷新/重定向等。PayPal In-Context似乎只是一半的想法,因爲SPA沒有被考慮! –

+0

目前難住這個問題,貝寶似乎暗示,這是可能的https://www.paypal.com/webapps/mpp/digital-goods >>'它是如何工作的' – Alan

回答

3

在您的頁面中包含一個iframe並使用該iframe來啓動該過程。由於iframe是啓動PayPal上下文窗口的iframe,因此它將被重定向到您的returnURL。因此,您的原始頁面保持其在調用之前的確切狀態,變量和全部。

下面是一個例子...

我有checkout.html名爲paypaliframe一個無形的iframe中。 Paypaliframe中沒有用戶界面,只包含與PayPal相關的js功能。

在checkout.html頁面中,當PayPal被選爲付款選項時,我點擊我的結賬按鈕。該「點擊」事件告訴iframe來設置交易:

paypaliframe.contentWindow.setupAutorization() 

iframe的執行setupAutorization()函數,會從貝寶的交易標記,然後開始在上下文結帳過程:

paypal.checkout.initXO(); 
paypal.checkout.startFlow(paypal.checkout.urlPrefix + token) 

現在顯示上下文結帳窗口,我們看到新窗口重定向到PayPal網站。客戶輸入他的登錄名,同意你的交易,然後Paypal將iframe重定向到你的returnUrl。該RETURNURL頁面在iframe中加載

後,你只要告訴父頁面遵循直通下一個步驟:

$(window).load(function() { 
    parent.continueAfterPaypal(); 
}); 

TLDR;使用iframe啓動上下文簽出,然後使用iframe的returnURL頁面告知父級繼續在事物停止的地方繼續。