我有一张像这样张贴的表格;
<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="user@domain.com" type="hidden"/>
<input type="submit" value="Pay"/>
</form>
这是the Yandex docs的一个例子。但我自己的形式看起来很相似。我的问题是,如何测试sum
(金额)是否与项目的总成本相同?
对于其他支付网关,我已设法使用ajax实现此目的。因此,首先向我的数据库提交一个查询,然后将其重定向(尽管可能不是正确的词)到支付网关。然后当响应回来时,我可以将它与我的数据库中的记录进行比较。
但这怎么会在这里工作?他们的网关似乎没有考虑到那种令牌处理。
忘记网关细节,是否可以发布&#34;发布&#34;使用ajax的数据?
更新
使用它怎么样?
$.ajax({
method: 'POST',
url: 'https://money.yandex.ru/eshop.xml',
data: {
shopId: shopId,
scid: scid,
etc: etc
}
}
答案 0 :(得分: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');
}
});