Дорогие товарищи программисты, имеется форма написанная на JS. Подключил её к онлайн кассе яндекс, при передаче параметров, мне необходимо, чтобы цена была плавающей, т.е пользователь вводит и она автоматически добавляется к объекту. С фиксированной ценой оплата проходит. Очень нужна Ваша помощь, я в этом плане новичок, бьюсь уже несколько суток.. Вот ссылка на форму :
http://pay-makerich.plp7.ru/
Вот код формы :
<form action="https://money.yandex.ru/eshop.xml" method="post">
<input name="shopId" value="533786" type="hidden"/>
<input name="scid" value="792608" type="hidden"/>
<input name="sum" class="sum" value='12' type="hidden" placeholder="0.00"><br><br>
<span style="font-size: 18px;"><span style="color: rgb(0, 0, 0);">Введите сумму (*):<br>
<input name="sumDouble" class="sumDouble" value='' onkeyup="sum.value = this.value" type="text" placeholder="0.00"><br><br>
Введите Имя (*)<br>
<input required name="customerNumber" class="customerNumber" value="" size="30"><br><br>
Введите Телефон (*)<br>
<input name="custName" value="" size="30" require><br><br>
Введите Email (*)<br>
<input required name="customerContact" class="email" onkeyup="cps_email.value = this.value" value="" placeholder="Укажите адрес электронной почты" size="30"/><br>
Комментарии к заказу<br>
<textarea name="orderDetails" value="" rows="5" cols="30" wrap="soft"></textarea><br><br>
<input name="paymentType" value="AC" type="hidden"/>
<input name="cps_email" class="cps_email" value="" type="hidden"/>
<input name="ym_merchant_receipt" class="ym_merchant_receipt"
value=""
type="hidden"/>
<input type="submit" class='button' value="Заплатить"/></span></span>
</form>
<script>
let sum = document.querySelector('.sum').value,
ym = document.querySelector('.ym_merchant_receipt'),
sumDouble = document.querySelector('.sumDouble');
massivValue = {
"customerContact": "+79680810048",
"taxSystem": 1,
"items":[{
"quantity": 1,
"price": {"amount": `${sum}`},
"text": "Образовательный продукт от Андрея Чаплюкова",
"tax": 1,
"paymentMethodType": "full_prepayment",
"paymentSubjectType": "commodity"}]
}
ym.value = JSON.stringify(massivValue);
console.log(ym.value);
var validateContact = function(value) {
var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/,
phoneReg = /^\+7[0-9]{10,11}/;
isEmail = value.match(emailReg);
isPhone = value.match(phoneReg);
return (isEmail || isPhone);
}
var formatReceipt = function(form) {
var customerContactValue = form.customerContact.value;
massivValueObject = JSON.parse(ym.value);
ym.value["items"][0].price.amount = sum;
if(validateContact(customerContactValue)) {
massivValueObject.customerContact = customerContactValue;
ym.value = JSON.stringify(massivValue);
form.submit();
} else {
alert('Неверно введен контакт покупателя. Ограничения: только цифры (+792100000000) или адрес электронной почты.')
return false;
}
};
</script>
Буду очень благодарен любым решениям..
При вводе 12 в поле сумма, оплата начнёт проходить, можете проверить.