2016-06-09 91 views
4

我正在嘗試將PayPal in-context checkout集成到AngularJS應用下。一切正常:支付寶在上下文結帳 - 防止頁面重定向

  1. 通過REST API我把所有的細節並得到結賬標誌
  2. 然後,令牌被傳遞到客戶端應用程序
  3. 在上下文結賬被稱爲具有一定TOKEN

現在我想知道是否有辦法阻止在成功或取消場景後重定向頁面

以下是在客戶端應用程序的代碼段:

<button id="t2" type="submit">Pay</button> 
 

 
<script> 
 
    window.paypalCheckoutReady = function() { 
 
    paypal.checkout.setup("API_CREDENTIALS", { 
 
     environment: "sandbox", 
 
     button: ["t2"], 
 
     click: function (event) { 
 
     
 
     event.preventDefault(); 
 
     //init lightbox modal 
 
     paypal.checkout.initXO(); 
 
     
 
     //start checkout flow 
 
     paypal.checkout.startFlow(TOKEN); 
 
     } 
 
    }); 
 
    }; 
 
</script> 
 

 
<script src="//www.paypalobjects.com/api/checkout.js" async=""></script>

+0

我不知道你的頁面的具體情況。是否有可能將用戶重定向到他們所在的同一頁面? (我已經爲社交登錄做了這個)。如果在這個過程中數據丟失了,你可能會將它存儲在會話cookie中。 – zevnicsca

+0

@zevnicsca是的,它現在適用於重定向。我唯一的要求是避免任何形式的重定向 - 僅僅因爲一件事 - 用戶體驗。所以我需要知道什麼時候完成了PayPal腳本,以及如何完成(成功或錯誤),並使用Angular進行其餘的路由。 – nidzix

+0

您可以指定如何控制Angular路由的用戶體驗嗎?基本上,Express Checkout需要重定向,因爲您需要在返回頁面中執行付款,這意味着上下文彈出體驗僅在付款方面提供用戶授權/同意。 –

回答

0

的JS基於In-上下文彈出簡單地提供了一個前端體驗,並且使得所述支付的一部分概述如下,

  1. 在上下文彈出和用戶交互(給付款同意)序列
  2. 彈出自動關閉(由checkout.js controled,即刻)和瀏覽器重定向到您的desinated返回頁面
  3. 呼叫execute API在返回頁面完成支付
  4. 網絡掛接被觸發(通知你的網站有關交易狀態)

什麼你想中斷之間#2,#3的行爲,這是在付款流程的中間,你可以看看定製的定義API在您的redirect_urls對象方法PAY的有效載荷(您用於生成支付令牌),使用return_url與您的路由邏輯(通過組合URL和字符串查詢)在訂單確認頁面上向您的客戶顯示相應的內容(步驟#3)

當您的客戶取消/關閉彈出窗口時(步驟#2)

"redirect_urls": { 
"return_url": "http://www.return.com/routing/?stringQuery", 
"cancel_url": "http://www.cancel.com/routing/?stringQuery" 
} 

只是一定要調用execute呼叫你的回報頁之後