yoomoney / cms-opencart2

YooKassa payment module for Opencart 2.x
https://yookassa.ru/developers
9 stars 17 forks source link

Некорректная работа формы yandex-money-payment-form #35

Open Avanzato opened 5 years ago

Avanzato commented 5 years ago

ocStore (OpenCart) 2.1.0.2.1, Y.CMS 1.2.2.

После обновления модуля до 1.2.2 не заполняется форма способов оплаты yandex-money-payment-form (catalog/view/theme/default/template/extension/payment/yandex_money/kassa_form.tpl), в связи с чем получаю ошибку при нажатии на кнопку "Перейти к оплате": VM42:17 Uncaught TypeError: Cannot read property 'value' of undefined at HTMLButtonElement.<anonymous> (<anonymous>:17:64) at HTMLButtonElement.dispatch (jquery-3.3.1.min.js:2) at HTMLButtonElement.y.handle (jquery-3.3.1.min.js:2)

Предположу, что такое поведение из-за удаления куска в коммите 9204bab696d3da00f9755f567e72205eb9a1300e от 28/01/19: `

<?php echo $language->get($key); ?>
                <?php echo $language->get($key);?>
            </label>`

При возвращении данного удаленного блока кода, штатный функционал возвращается (виден список способов оплаты и проиходит переход на страницу с вводом данных карты клиента.

ostulov commented 5 years ago

Добрый день!

Данный кусок кода остался в файле, но с добавлением условия на способ оплаты. Подскажите, на каком сайте можно воспроизвести данную проблему?

Avanzato commented 5 years ago

Приветствую. Функционал тестируется на среде с ограниченным доступом. Я могу воспроизвести кейс по шагам:

  1. Обновление модуля с 1.0.18 1.1. Главная > Установщик дополнений OCMOD > Загрузить (архив с гита - ycms2.oc20x21x.ocmod.zip). Через установщик дополнений из-за бага "автообновления модуля"
  2. Главная > Менеджер дополнений > Обновить
  3. Лог ---------------------------------------------------------------- MOD: Y.CMS 2.0 for Opencart 2.0.x - 2.3.x FILE: catalog/controller/account/order.php CODE: // History LINE: 366 FILE: admin/model/sale/order.php REGEX: ~o.date_added, o.date_modified FROM~ LINE: 160 REGEX: /\$query\s=\s\$this->db->query\(\$sql\);\s+return\s\$query->rows;/ LINE: 231 FILE: admin/language/english/sale/order.php REGEX: ~(\$_\[\'text_add\'\])~ LINE: 7 FILE: admin/language/russian/sale/order.php REGEX: ~(\$_\[\'text_add\'\])~ LINE: 7 FILE: system/library/mail.php CODE: basename(urlencode($attachment)) LINE: 149 LINE: 150 FILE: admin/controller/sale/order.php CODE: $results = $this->model_sale_order->getOrders($filter_data); LINE: 163 CODE: 'shipping_code' => $result['shipping_code'], LINE: 181 CODE: $data['button_add'] = $this->language->get('button_add'); LINE: 221 FILE: admin/view/template/sale/order_list.tpl REGEX: ~(\<\/i\>\<\/)(button|a)(\>)(\<\/td\>)~ LINE: 136 CODE: $('input[name^=\'selected\']:first').trigger('change'); LINE: 320 FILE: catalog/controller/common/footer.php CODE: $data['newsletter'] = $this->url->link('account/newsletter' LINE: 50 FILE: catalog/controller/checkout/success.php CODE: if (isset($this->session->data['order_id'])) { LINE: 10 FILE: catalog/view/theme/parnesmee/template/common/success.tpl CODE: <?php echo $footer; ?> LINE: 18 FILE: catalog/view/theme/parnesmee/template/common/footer.tpl CODE: <footer LINE: 29 CODE: <p><?php echo $powered; ?></p> NOT FOUND! FILE: admin/view/template/sale/order_info.tpl CODE: $('.alert').remove(); LINE: 385 LINE: 415 LINE: 445 LINE: 475 LINE: 505 LINE: 533 LINE: 567 LINE: 614 CODE: $('#button-history').on('click', function() { LINE: 594 FILE: catalog/view/theme/parnesmee/template/common/header.tpl CODE: </head LINE: 71 FILE: catalog/controller/product/product.php CODE: if ($product_info) { LINE: 181 CODE: $data['price'] = $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']); NOT FOUND! ----------------------------------------------------------------
  4. Главная > Платежи > Y.CMS 2.0 4.1. Галочка напротив "Включить приём платежей через Яндекс.Кассу" 4.2. Данные ТЕСТОВОГО магазина (секретный ключ с префиксом test_) 4.3. Проставляются параметры "Выбор способа оплаты > На стороне магазина {Банковские карты}" 4.4. Сохранить
  5. На фронте в момент checkout форма наполняется так: `


    `

Если поместить <?php print_r($method); ?> между строками 75 и 76 в kassa_form.tpl, вывод такой: bank_card Если поместить внутрь if-else (76-77 и 82-83) не отображается ничего.