2013-03-31 4 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

Я решил это, добавив следующий код JS до window.close();, чтобы получить доступ к форме на родительской странице. После получения формы я могу отправить страницу или показать диалоговое уведомление о статусе.

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; 
     } 
    } 
};