POST-данные через Ajax на Яндекс Платежный Шлюз

У меня есть форма, которая размещена примерно так;

<form action="https://money.yandex.ru/eshop.xml" method="post">
<input name="shopId" value="1234" type="hidden"/>
<input name="scid" value="4321" type="hidden"/>
<input name="sum" value="100.50" type="hidden">
<input name="customerNumber" value="abc000" type="hidden"/>
<input name="shopArticleId" value="567890" type="hidden"/>
<input name="paymentType" value="AC" type="hidden"/>
<input name="orderNumber" value="abc1111111" type="hidden"/>
<input name="cps_phone" value="79110000000" type="hidden"/>
<input name="cps_email" value="[email protected]" type="hidden"/>
<input type="submit" value="Pay"/>
</form>

Это пример из яндекс документы. Но моя собственная форма будет выглядеть аналогично. У меня вопрос, как я могу проверить, что sum (сумма денег) равна общей стоимости предметов?

Для других платежных шлюзов мне удалось добиться этого с помощью ajax. Поэтому сначала отправьте запрос в мою базу данных, а затем перенаправьте (хотя это, вероятно, не то слово) на платежный шлюз. А потом, когда ответ возвращается, я могу сравнить его с записью в моей базе данных.

Но как это будет работать здесь? Их шлюз, похоже, не учитывает такого рода обработку токенов.

Забывая о специфике шлюза, можно ли просто «публиковать» данные, используя ajax?

ОБНОВИТЬ

Как насчет использования этого?

$.ajax({
method: 'POST',
url: 'https://money.yandex.ru/eshop.xml',
data: {
shopId: shopId,
scid: scid,
etc: etc
}
}

0

Решение

Да. возможно просто «опубликовать» данные через AJAX. Вот небольшой базовый пример.

<form id="exampleForm">

<input name="name" value="A random name" />
<input type="submit" value="Post through AJAX">

</form>

<script>
$( "#exampleForm" ).submit(function( event ) {

// Stop default form submit
event.preventDefault();

//Serialize the form data
var formData = $(this).serializeArray();

// Send the data using post
var posting = $.post( 'HERE THE DESTINATION URL OF THE POST', formData, function(responseData
{
//An action when the POST request is done
}));

});
</script>

Не забудьте включить библиотеку JQuery.

ОБНОВИТЬ
Для кросс-просмотра AJAX-запроса вам необходимо использовать dataType ‘JSONP. Согласно вашему запросу образца вы можете попробовать это:

$.ajax({

url: 'https://money.yandex.ru/eshop.xml',
data: {
shopId: shopId,
scid: scid,
etc: etc
},
type: 'POST',
dataType: 'jsonp',
success: function()
{
alert('Success callback');
},
error: function()
{
alert('Error callback');
}
});
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]