URL-адрес возврата встроенного платежа, показанный в iframe

Я пытаюсь реализовать адаптивные платежи как встроенный платеж с лайтбоксом.

Он работает нормально, пока пользователь не совершит платеж, но после того, как пользователь завершит платежную страницу, указанную return url, загружается в iframe. Я ожидаю, что он будет загружен в окне НЕ в iframe. Ниже приведен код, который у меня есть. Я что-то пропустил?

Среда
Java (платформа для игр)
PayPal_Platform_Java_SDK_N

Ожидаемый сценарий переноса страницы
Страница A – (нажатие кнопки «Оплатить через PayPal»)
диалоговое окно PayPal – (нажатие кнопки «закрыть»)
Страница B

СтраницаA.html

<form action="https://www.sandbox.paypal.com/webapps/adaptivepayment/flow/pay" target="PPDGFrame">
  <dl>
    <dt></dt>
    <dd>
      <input id="type" type="hidden" name="expType" value="light">
      <input id="paykey" type="hidden" name="paykey" value="AP-KEY">
      <input type="submit" id="paypalSubmitBtn" value="Pay with paypal" />
    </dd>
  </dl>
</form>
<script type="text/javascript"> 
  var dgFlow;
  $(function(){
    dgFlow = new PAYPAL.apps.DGFlow({ trigger: 'paypalSubmitBtn' });
  }); 
</script>

СтраницаB.html

<p>Thank you for your payment!</p>

<script type="text/javascript">
  function handleEmbeddedFlow() {
    if (top && top.opener && top.opener.top) {
      top.opener.top.dgFlow.closeFlow();
    }
    else{
      top.dgFlow.closeFlow();
    }
    top.close();
  }

  jQuery.event.add(window, "load", function(){
    alert("window.load");
    handleEmbeddedFlow();
  });
</script>

Я также заметил, что dgFlow не может быть разрешено в другом случае top.dgFlow.closeFlow(); в PageB.html.


person TAT    schedule 09.02.2012    source источник
comment
Мне просто интересно, преуспели ли в этом другие разработчики, которые пытаются сделать то же самое....   -  person TAT    schedule 20.02.2012
comment
Хорошо, лайтбокс работает, но, как уже упоминалось, мини-браузер, скорее всего, будет отображаться для 90% пользователей, потому что кто на самом деле остается авторизованным в PayPal? Я получаю тот же результат, что и вы, returnUrl и cancelUrls появляются в IFrame. Очень надоедливый. Вы нашли исправление для этого? Можно ли получить URL-адрес IFrame перед его закрытием?   -  person Jordan    schedule 23.05.2012


Ответы (1)


Вы можете попытаться определить, работает ли страница в iframe, и если это так, перенаправить на страницу напрямую.

Как обнаружить: Как определить, загружается ли веб-страница внутри iframe или непосредственно в окно браузера?

Как перенаправить: перенаправить родительскую страницу из IFrame

person Sire    schedule 03.01.2013