2013-03-31 156 views
3

我有一个父页面,它有PayPal按钮。按下按钮将触发一个迷你浏览器,用户可以登录并付款。PayPal Express Checkout后重定向父页面

以下代码在用户付款成功后关闭PayPal mini浏览器。

// Add javascript to close Digital Goods frame. You may want to 
       // add more javascript code to 
       // display some info message indicating status of purchase in 
       // the parent window 
       response.setContentType("text/html"); 
       response.getWriter() 
         .println(
           "<script>\n alert(\"Payment Successful\");\n// add relevant message above or remove the line if not required \n window.onload = function(){\nif(window.opener){\nwindow.close();\n}\nelse{\nif(top.dg.isOpen() == true){\ntop.dg.closeFlow();\nreturn true;\n}\n}\n};\n</script>"); 

迷你浏览器已成功关闭,但我的应用程序上的父页面保持不变。如何使用付款状态更新父页面?

回答

5

我通过在window.close();之前添加以下JS代码来解决此问题,以便在父页面访问表单。获得表格后,我可以提交页面或显示关于状态的对话框通知。

window.onload = function() { 
    if (window.opener) { 
     window.opener.document.forms[0].submit(); // submit form 
     window.close(); 
    } else { 
     if (top.dg.isOpen() == true) { 
      top.document.forms[0].submit(); // submit form 
      top.dg.closeFlow(); 
      return true; 
     } 
    } 
};