Страница HPP с глобальными платежами без iframe EventListener не запущена успешной транзакцией - PullRequest
0 голосов
/ 08 февраля 2020

Я только что создал простую форму оплаты, используя страницу оплаты (HPP), размещенную на платформе Global Payments, но я получаю странную ошибку в моей странице iframe, и мой EventListener никогда не запускается.

Ваша транзакция прошла успешно, но при подключении к веб-сайту продавца возникла проблема. Пожалуйста, свяжитесь с продавцом и сообщите ему, что вы получили это сообщение об ошибке.

Вот пример моего кода: Форма:

<php?

// Params initialisation to fill the form before posting it
...
<style>
    iframe{
        border: none;
        height: 600px;
        width: 500px;
    }
    .center{
        margin: auto;
        width: 500px;
    }
</style>
</head>

<script>
    //********************************************************************************
    // Document Ready functions
    //********************************************************************************
    $( document ).ready(function(event) {
        console.log( "ready!" );
        $('#GP').submit();
    });

    //********************************************************************************
    // Anonymous functions
    //********************************************************************************
    $(function() {
        // Adding event listener to process Window's messages, to capture
        // communications coming from GP Iframe
       if (window.addEventListener) {
            window.addEventListener ("message", GPResponseParser, false);
        } else {
            if (window.attachEvent){
                window.attachEvent("onmessage", GPResponseParser);
            }
        }

    });
    //********************************************************************************
    // Standard functions
    //********************************************************************************
    function GPResponseParser(event){
        alert(event.data); /* NEVER TRIGGERED */
    }
</script>

<form id="GP" action="https://pay.sandbox.realexpayments.com/pay" method="POST" target="gpframe">
  <input type="hidden" name="TIMESTAMP" value="<?=$TIMESTAMP?>">
  <input type="hidden" name="MERCHANT_ID" value="<?=$MERCHANT_ID?>">
  <input type="hidden" name="ACCOUNT" value="<?=$ACCOUNT?>">
  <input type="hidden" name="ORDER_ID" value="<?=$ORDERID?>">
  <input type="hidden" name="AMOUNT" value="<?=$AMOUNT?>">
  <input type="hidden" name="CURRENCY" value="<?=$CURRENCY?>">
  <input type="hidden" name="AUTO_SETTLE_FLAG" value="1">
  <input type="hidden" name="COMMENT1" value="Abonnement Annuel">
  <input type="hidden" name="HPP_VERSION" value="2">
  <input type="hidden" name="HPP_CHANNEL" value="ECOM">
  <input type="hidden" name="HPP_LANG" value="fr">
...
  <input type="hidden" name="MERCHANT_RESPONSE_URL" value="">
  <input type="hidden" name="CARD_PAYMENT_BUTTON" value="Pay Invoice">
  <input type="hidden" name="CUSTOM_FIELD_NAME" value="Custom Field Data">
  <input type="hidden" name="SHA1HASH" value="<?=$SHA1HASH?>">
</form>

<div class="center">
    <iframe id="gpframe" name="gpframe"></iframe>
</div>

</body>
</html>

Чего я пытаюсь достичь здесь является то, что я хочу отобразить страницу HPP на моей странице оплаты. php, содержащую информацию о транзакции и фрейм, содержащий страницу HP HPP. Все транзакции будут выполняться внутри iframe, и я хочу прослушать iframe, чтобы получить результат транзакции и обработать его, во второй раз я буду использовать ajax связь с моим сервером для обновления БД.

Форма опубликовано на ready () и страница HPP отображается в моей форме, но после успешной транзакции я получаю сообщение об ошибке внутри iframe и прослушиватель документов не запускается.

Наверное, ничего серьезного, но я застрял и alert (event.data); никогда не достигается ...

Кто-нибудь может помочь?

Спасибо

...