Я только что создал простую форму оплаты, используя страницу оплаты (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); никогда не достигается ...
Кто-нибудь может помочь?
Спасибо