разбираюсь с api интернет-эквайринга, для успешной отправки формы необходимо передать параметр receipt, у которого есть ряд обязательных значений. Выглядит он подобным образом:
<input class="PayRow" type="hidden" name="receipt" value='{"Email": "test@test.ru","Items": [ {"Name": "Наименование товара 1","Price":10000,"Quantity": 1.00,"Amount": 10000 }]}'>
Значения Email и Items являются обязательными, при этом у Items обязательны Name, Price и Amount.
Email клиента я получаю в поле ввода перед оплатой, в другом поле вычисляется Amount, то есть эти два значения у меня есть.
Подскажите, пожалуйста - как можно заменить "test@test.ru" на e-mail клиента, а также в "Price":10000 и "Amount": 10000цифры на значение Amount (Price и Amount всегда будут равны, так как Quantity будет 1) автоматически на те, что у меня имеются.
Amount : <input class="PayRow" type="text" placeholder="Amount" name="paySum" id="priceId">
Email : <input class="PayRow" type="text" placeholder="E-mail" name="payEmail">
Проще всего в момент отправки формировать содержимое value, подставляя в нужные места значения полей:
$('button').click(function(){
let receipt = '{"Email": "'+$('#email').val()+'", "Items": [{"Name": "Наименование товара 1","Price": '+Number($('#priceId').val())+',"Quantity": 1.00,"Amount": '+Number($('#priceId').val())+'}]}';
$('[name="receipt"]').val(receipt);
console.log($('[name="receipt"]').val());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Amount : <input class="PayRow" type="text" placeholder="Amount" name="paySum" id="priceId"><br /><br />
Email : <input class="PayRow" type="text" placeholder="E-mail" name="payEmail" id="email"><br /><br />
<input class="PayRow" type="hidden" name="receipt" value="">
<button>Отправить</button>
const receipt = {
"Email": document.getElementById('mail').value,
"Items": [{
"Name": document.getElementById('name').value,
"Price":10000,
"Quantity": 1.00,
"Amount": 10000
}]
}
var saveData = $.ajax({
type: "POST",
url: "someaction.do/controller/action",
data: JSON.stringify(receipt),
dataType: "json",
success: function(resultData){
alert("Save Complete");
}
});
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости