Skip to content

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

Open
Avanzato opened this issue Feb 3, 2019 · 2 comments

Comments

@Avanzato
Copy link

Avanzato commented Feb 3, 2019

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)

Предположу, что такое поведение из-за удаления куска в коммите 9204bab от 28/01/19:
<label> <input type="radio" name="kassa_payment_method" value="<?php echo $method ?>"<?php echo ($index == 0 ? ' checked' : ''); ?> /> <img src="<?php echo $image_base_path . '/' . $method; ?>.png" alt="<?php echo $language->get($key); ?>" /> <?php echo $language->get($key);?> </label>

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

@ostulov
Copy link

ostulov commented Feb 4, 2019

Добрый день!

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

@Avanzato
Copy link
Author

Avanzato commented Feb 4, 2019

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

  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 форма наполняется так:
    `
                            <br>
                
            <div class="buttons">
        <div class="pull-right">
            <button class="btn btn-primary" id="continue-button" type="button">Перейти к оплате</button>
        </div>
    </div>
        </form>

`

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

# for free to subscribe to this conversation on GitHub. Already have an account? #.
Labels
None yet
Development

No branches or pull requests

3 participants
@Avanzato @ostulov and others