Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Платежный терминал Тинькофф #120

Closed
Nelfimov opened this issue Nov 7, 2023 · 21 comments · Fixed by #124
Closed

Платежный терминал Тинькофф #120

Nelfimov opened this issue Nov 7, 2023 · 21 comments · Fixed by #124
Assignees

Comments

@Nelfimov
Copy link
Contributor

Nelfimov commented Nov 7, 2023

С чем связан запрос на фичу?

Необходимо добавить функционал оплаты через Тинькофф

Расскажите как вы это себе видите

Необходимо внедрить платежный терминал Тинькофф на сайт.

Используем наш виджет: https://github.com/atls/reactjs/tree/master/packages/payment-widget

Данные по терминалу у @Nelfimov @TorinAsakura

Приложите пример реализаций

Дизайн: https://www.figma.com/file/8zVI2XcuXPz7ohCSEEnw94/Drum-Instructor?type=design&node-id=1081-5422&mode=design&t=hVfbmiCuWgiCaF09-11

@absolemDev
Copy link
Contributor

@Nelfimov, а есть проект где уже внедрен данный терминал?
При внедрении получаю ошибку:

widget/dist/ui/input/input.component.js:18:0
Module not found: Can't resolve 'styled-system'

хотя зависимости прописал.

@Nelfimov
Copy link
Contributor Author

Nelfimov commented Nov 9, 2023

Внедрения нет, однако мы тестировали виджет. Проверяй зависимости, если что - пользуйся packageExtension у yarn.

@absolemDev
Copy link
Contributor

@Nelfimov, с предыдущем вопросом packageExtension помог, но теперь вот это:

Module not found: react-laag tried to access react-dom (a peer dependency) but it isn't provided by its ancestors; this makes the require call ambiguous and unsound.

@absolemDev
Copy link
Contributor

@Nelfimov, с предыдущем вопросом packageExtension помог, но теперь вот это:

Отбой, все норм

@absolemDev
Copy link
Contributor

@Nelfimov, я правильно понимаю что нам придется немного отклониться от стилей в макете? Как я понял в виджете стилизация ограничена.

@Nelfimov
Copy link
Contributor Author

Nelfimov commented Nov 9, 2023

Виджет создавали под «общее применение». Настройка действительно минимальная предусмотрена. Если по дизайну необходимо расширять - можешь предложить ПР в репозиторий с виджетом.

@absolemDev
Copy link
Contributor

@Nelfimov, подскажешь еще с одной проблемкой. yarn check ругается:

namespace 'react' has no exported member 'jsx'.

@Nelfimov
Copy link
Contributor Author

Nelfimov commented Nov 9, 2023

Очень странная ошибка. Покажи в каком файле и строке это

@absolemDev
Copy link
Contributor

Вот полный вывод yarn check:
Снимок экрана от 2023-11-10 09-06-34

@Nelfimov
Copy link
Contributor Author

Беглый вывод таков - у тебя несколько версий @types/react. Проверь исходники виджета.

Решение - привести к одному. Либо через resolutions либо весь проект перевести на 18 реакт

@absolemDev
Copy link
Contributor

absolemDev commented Nov 10, 2023

@Nelfimov, сейчас из админки мы получаем сумму в таком формате: "32 000 ₽". Можно конечно распарсить, или может создашь дополнительные поля к monthlyPayment и finalPriceForOneTimePayment чтобы получать уже валидные значения для подстановки в amount виджета.

@Nelfimov
Copy link
Contributor Author

Я посмотрю можно ли в админке поправить это поле и форматировать его уже на клиенте.

@absolemDev
Copy link
Contributor

В связи с ограничениями виджета по дополнительным полям (в частности поле telegram, чек-бокс для договора оферты) предлагаю подправить дизайн:

  1. Изменить кнопку "ОПЛАТИТЬ" на "ПОДТВЕРДИТЬ" .
    Снимок экрана от 2023-11-10 16-38-53
  2. Кнопка "ПОДТВЕРДИТЬ" должна открывать форму виджета с дополнительными полями, если это необходимо (например email куда будет отправляться чек) и кнопка "Оплатить". Из коробки это выглядит так:
    Снимок экрана от 2023-11-10 16-47-36
  3. Так же, можно отобразить дополнительную информацию о платеже. Например расписать платежи по датам если это рассрочка.

Еще встал вопрос: нужно ли поле telegram в форме на оплату?

@Nelfimov
Copy link
Contributor Author

Расширение виджета можешь начать с расшерения темы через пропсы:

https://github.com/atls/reactjs/blob/9c225ee27d48907d00806c63cbc9b6d84b61c163/packages/payment-widget/src/ui/widget.component.tsx#L21

@absolemDev
Copy link
Contributor

@Nelfimov, поправил верстку в проекте, форматирую цены с помощью FormattedNumber из react-intl.
Есть неточности:

  1. На странице Коннакол monthlyPaymentNumber = 8682, тогда как monthlyPayment = 8700
  2. На странице Открытие ритма finalPriceForInstallmentNumber = 117400 тогда как 8700*15=130500; finalPriceForOneTimePaymentNumber = 80000 тогда как там 3 курса по 40000, должно быть 120000.
  3. Так же, как я понял, на странице Открытие ритма не реализован функционал удаления курса из пакета и пересчета суммы. Или это задача для другого issue?

@Nelfimov
Copy link
Contributor Author

  1. На странице Коннакол monthlyPaymentNumber = 8682, тогда как monthlyPayment = 8700

Поправил.

  1. На странице Открытие ритма finalPriceForInstallmentNumber = 117400 тогда как 8700*15=130500; finalPriceForOneTimePaymentNumber = 80000 тогда как там 3 курса по 40000, должно быть 120000.

Это пока моковые цены. Верь тому что прилетает с сервера.

  1. Так же, как я понял, на странице Открытие ритма не реализован функционал удаления курса из пакета и пересчета суммы. Или это задача для другого issue?

Можешь сделать в рамках этой задачи, можешь сделать отдельно. По сути это же копипаста.

@absolemDev
Copy link
Contributor

@Nelfimov, обнаружил проблему с виджетом при динамическом изменении amount. Виджет, а точнее тинькоффский скрипт запоминает значение amount переданное при первом рендере. Дебаг показал что на странице присутствует поле amount с заданным значением
Снимок экрана от 2023-11-28 14-20-22
но в тоже самое время скрипт тянет другое значение
Снимок экрана от 2023-11-28 14-21-21

@Nelfimov
Copy link
Contributor Author

Подключай дебаг в IDE и проверяй на форке - благо так удобно. Проверяй есть ли реакция не изменения amount - должне быть частичный ререндер самого виджета, но не детей.

@Nelfimov
Copy link
Contributor Author

Попробуй прогнать полный цикл с тестовыми картами:

  • 4300 0000 0000 0777 11/22 111
  • 5000 0000 0000 0009
  • 4000 0000 0000 0119

@absolemDev
Copy link
Contributor

absolemDev commented Nov 30, 2023

@Nelfimov, удалил fork виджета, поправил зависимости, но сломался yarn dev:

It looks like you're trying to use TypeScript but do not have the required package(s) installed.

Please install @types/react by running:

        npm install --save-dev @types/react

If you are not trying to use TypeScript, please remove the tsconfig.json file from your package root (and any TypeScript files in your pages directory).

При этом yarn chech отрабатывает без ошибок

@Nelfimov
Copy link
Contributor Author

Поищи где у тебя сломался @types/react. Вероятнее всего в энтрипоинте.

Проверь его версии по проекту - виджет у нас написан на 18 реакте.

Попробуй снеси виджет и проверь ошибку.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants