0

我有一个这样发布的表格;

<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>

这是来自Yandex 文档的示例。但我自己的表格看起来很相似。我的问题是,我如何测试sum(金额)与物品的总成本相同?

对于其他支付网关,我已经设法使用 ajax 实现了这一点。所以首先向我的数据库提交一个查询,然后重定向(尽管这可能不是正确的词)到支付网关。然后当响应返回时,我可以将其与数据库中的记录进行比较。

但是这将如何在这里工作?他们的网关似乎没有考虑到这种令牌处理。

忘记网关细节,是否可以使用ajax“发布”数据?

更新

用这个怎么样?

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

1 回答 1

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'); 
    }
});     
于 2015-11-11T09:53:26.420 回答