Anton_Belgorod
@Anton_Belgorod
Директор компании оператора связи

Яндекс.Касса формирование скрипта ya_merchant_receip?

Добрый день! Имеем яндекс.кассу по 54-ФЗ.
Есть форма в корой есть поля sum и customerContact
<form class="needs-validation" action="https://money.yandex.ru/eshop.xml" method="post" onsubmit="formatReceipt(this);return false;">
   	                                                                 
 <input required="" name="shopId" value="<TMPL_var shopId>" type="hidden">
 <input required="" name="scid" value="<TMPL_var scid>" type="hidden">

 <input required="" name="sum" value="" size="43"><br />
  <input required="" name="paymentType" value="AC" type="hidden">
  <input required="" name="customerContact" value="" placeholder="Укажите телефон +7NNNxxxXXxx или электронный адрес для получения чека" size="43"><br>
 <input name="ym_merchant_receipt" value='{"customerContact": "","taxSystem": 3, "items":[{"quantity": 1, "price": {"amount": 1.00},  "tax": 1,"text": "Услуга предоставления доступа в интернет"}]}' type="hidden"/>
<button type="submit" class="btn btn-outline-success">Произвести оплату</button>	
    </form>


нужно сумму которую введет клиент подставить в строку "price":{"amount": сюда сумма}
кода java script
ниже код в котором уже реализована передача телефона либо почты, нужно еще так же добавить в скрипте передачу суммы.
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, 
            receipt = form.ym_merchant_receipt.value,
            receiptObject = JSON.parse(receipt);

        if(validateContact(customerContactValue)) {
            receiptObject.customerContact = customerContactValue;
            form.ym_merchant_receipt.value = JSON.stringify(receiptObject);
            form.submit();
        } else {
            alert('Неверно введен данные. Ограничения: только цифры (+792100000000) или адрес электронной почты.')
            return false; 
        }
    };


Помогите передать данные поля сумм
  • Вопрос задан
  • 635 просмотров
Пригласить эксперта
Ответы на вопрос 2
@ngicaknnxamexex
Не сочтите за грубость, но Вам нужно уйти с подобными вопросами на фриланс биржу.
А если по сути, то вот рабочий код:
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, 
            receipt = form.ym_merchant_receipt.value,
            sum = form.sum.value, // ВОТ ЭТОТ КУСОК ДОБАВИЛСЯ
            receiptObject = JSON.parse(receipt);

        if(validateContact(customerContactValue)) {
            receiptObject.customerContact = customerContactValue;
            form.ym_merchant_receipt.value = JSON.stringify(receiptObject);
            form.submit();
        } else {
            alert('Неверно введен данные. Ограничения: только цифры (+792100000000) или адрес электронной почты.')
            return false; 
        }
    };

Замените его на тот кусочек, который Вы указали выше.
Ответ написан
Комментировать
Anton_Belgorod
@Anton_Belgorod Автор вопроса
Директор компании оператора связи
Данный момент
sum = form.sum.value, // ВОТ ЭТОТ КУСОК ДОБАВИЛСЯ
абсолютно не решил проблему, скрипт по прежнему не работает!!! Введенная сумма из формы не подставляется в нужную строку и не передается скриптом. Ждем доработки. Очень требуется помощь. Фриланс да. Но я уже там был и более неадекватных там не видел из 10 предложенных никто не помог, а суммы гнут как за космический корабль!
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы