VibeFox Razorpay for OpenCart — Допомога
Вимоги
OpenCart: 3.0.x (перевірено на 3.0.5.0) або 4.0.2 і новіші (перевірено на 4.1.0.3).
PHP: 8.0 або новіша версія.
Обліковий запис Razorpay: вам потрібні Key ID і Key Secret вашого облікового запису Razorpay для тестового режиму, а для робочого режиму — після активації облікового запису. Настійно рекомендовано вебхук із секретом на ваш вибір (див. Налаштування). Платежі у валютах, відмінних від INR, потребують увімкненої в обліковому записі Razorpay опції International Payments.
Ліцензійний ключ VibeFox: купується на vibefox.net. Один ключ працює на одному домені.
Встановлення
Архів для завантаження — це один zip-файл із пакетами для обох версій OpenCart. Розпакуйте його на своєму комп’ютері. Він містить README.txt, пакет для OpenCart 3 wcp_razorpay_payment-oc3-(version).ocmod.zip і пакет для OpenCart 4 wcp_razorpay_payment.ocmod.zip. Встановлюйте лише пакет для вашої версії OpenCart. Ліцензійний ключ однаковий для обох версій.
OpenCart 3
1. В адміністративній частині перейдіть до Extensions > Installer, натисніть Upload і виберіть файл wcp_razorpay_payment-oc3-(version).ocmod.zip. Розширення не містить модифікацій OCMOD, тож Extensions > Modifications оновлювати не потрібно. Замість інсталятора можна скопіювати вміст папки upload цього пакета в кореневу папку вашого магазину.
2. Перейдіть до Extensions > Extensions і виберіть тип Payments. Знайдіть VibeFox Razorpay Payment і натисніть Install (зелена кнопка +). Вашому адміністратору потрібне право змінювати список платіжних розширень.
3. Натисніть Edit (кнопка з олівцем), щоб відкрити сторінку налаштувань. Вставте ваш ліцензійний ключ VibeFox у поле License key у блоці ліцензії у верхній частині сторінки та натисніть Activate (див. Ліцензійний ключ).
4. Введіть Test Key ID і Test Key Secret, налаштуйте вебхук у Razorpay Dashboard і введіть його секрет (див. Налаштування).
5. Увімкніть Enable/Disable і натисніть Save. Перевірте платіж при увімкненому Test mode. Коли все буде готово, введіть ключі Live і вимкніть Test mode.
OpenCart 4
1. В адмін-панелі перейдіть до Extensions > Installer, натисніть Upload і виберіть файл wcp_razorpay_payment.ocmod.zip. Не перейменовуйте файл: OpenCart 4 бере код розширення з назви файлу, і перейменований пакет не працює.
2. Пакет з’являється у списку встановлених розширень на тій самій сторінці. Натисніть Install (зелена кнопка +) поруч із ним.
3. Перейдіть до Extensions > Extensions і виберіть тип Payments. Знайдіть VibeFox Razorpay Payment, натисніть Install (зелена кнопка +), а потім Edit (кнопка з олівцем).
4. Введіть ліцензійний ключ, ключі Razorpay і вебхук так само, як у кроках з 3 до 5 для OpenCart 3. Сторінка налаштувань і її поля однакові в обох версіях. Відрізняється лише URL вебхука (див. Вебхук).
Нова установка починає роботу з вимкненим способом оплати та увімкненим тестовим режимом.
Налаштування
Усі налаштування розташовані на сторінці розширення: Extensions > Extensions > Payments > VibeFox Razorpay Payment > Edit. Розділи переліковані ліворуч; кнопка Save під списком зберігає всю сторінку. Без права на зміну розширення сторінка показує налаштування, але не може їх зберегти.
Над налаштуваннями сторінка пояснює, що замовлення отримує статус лише після перевірки платежу в Razorpay, і показує сповіщення: відсутні ключі поточного режиму (тоді Razorpay не відображається під час оформлення замовлення), Key ID не починається з rzp_test_ у тестовому режимі або з rzp_live_ у робочому режимі, увімкнено тестовий режим, секрет вебхука порожній, або валюта магазину за замовчуванням не INR і потребує International Payments в обліковому записі Razorpay. Сповіщення оновлюються після кожного збереження.
Під час збереження поле Title має містити від 1 до 128 символів (Enter a title for the payment method (1 to 128 characters).), Sort Order має бути цілим числом (від’ємні числа дозволені), Total має бути числом не менше 0, а геозона та кожен статус замовлення мають існувати. Інакше нічого не зберігається. Пробіли, вставлені разом із Key ID, видаляються.
Razorpay
Enable/Disable: Enable Razorpay Payment Gateway вмикає або вимикає спосіб оплати. За замовчуванням: вимкнено.
Title: назва способу оплати, яку бачить покупець під час оформлення замовлення. Вона також зберігається в замовленні як назва способу оплати. За замовчуванням: UPI, Cards, NetBanking. Обов’язкове поле, до 128 символів.
Description: текст, який покупець бачить на кроці Confirm Order над кнопкою підтвердження. За замовчуванням: Pay securely via UPI, Credit/Debit Card, or Internet Banking through Razorpay.
Sort Order: позиція Razorpay серед способів оплати під час оформлення замовлення. Залиште поле порожнім або введіть ціле число.
Geo Zone: пропонувати Razorpay лише для платіжних адрес у вибраній геозоні. За замовчуванням: All zones. Геозони налаштовуються в System > Localisation > Geo Zones.
Total: сума замовлення у валюті магазину за замовчуванням, яку має досягти замовлення, щоб було запропоновано Razorpay: число не менше 0. Залиште поле порожнім, щоб пропонувати Razorpay за будь-якої суми.
API-ключі
Ключі можна отримати в Razorpay Dashboard у розділі Account & Settings > API Keys (на сторінці є посилання туди). Перемкніть Dashboard у тестовий режим, щоб створити тестові ключі (rzp_test_...). Робочі ключі (rzp_live_...) доступні після активації облікового запису.
Test mode: використовує ключі тестового режиму, тож реальні гроші не списуються. За замовчуванням: увімкнено. Вимкніть його, щоб приймати реальні платежі. Платежі, захоплення та повернення коштів за замовленням завжди використовують ключі режиму, у якому було оплачено замовлення, тому зміна режиму пізніше не впливає на наявні замовлення. Поки режим увімкнено, покупці бачать Razorpay Test mode: no real money will be charged. на кроці Confirm Order і на сторінці оплати.
Test Key ID: Key ID з Razorpay Dashboard у тестовому режимі. Починається з rzp_test_.
Test Key Secret: Key Secret з Razorpay Dashboard у тестовому режимі.
Live Key ID: Key ID з Razorpay Dashboard у робочому режимі. Починається з rzp_live_.
Live Key Secret: Key Secret з Razorpay Dashboard у робочому режимі.
Збережені секрети більше ніколи не показуються. Поле залишається порожнім і показує Saved — leave empty to keep it. Вводьте нове значення, лише якщо хочете його змінити. Щоб видалити збережене значення, позначте Clear the saved value on save під полем і натисніть Save.
Оплата
Payment Action: момент, коли списуються гроші. За замовчуванням: Authorize & Capture.
Вебхук
Вебхук підтверджує платежі навіть тоді, коли покупець закриває браузер одразу після оплати, і фіксує повернення, зроблені в Razorpay Dashboard. У Razorpay Dashboard перейдіть до Account & Settings > Webhooks і додайте вебхук у тестовому режимі та ще один у робочому режимі. Використовуйте URL, що відображається в полі Webhook URL у цьому розділі. У OpenCart 3 він має такий вигляд: https://your-store/index.php?route=extension/payment/wcp_razorpay_payment/webhook, а в OpenCart 4 — https://your-store/index.php?route=extension/wcp_razorpay_payment/payment/wcp_razorpay_payment.webhook. Він формується з адреси вітрини вашої установки OpenCart. Скопіюйте його точно так, як його показують налаштування. Введіть у Razorpay секрет на ваш вибір і виберіть ці події (вони також перелічені в цьому розділі):
Webhook Secret: секрет, який ви ввели під час створення вебхука. Використовуйте той самий секрет для тестового та робочого вебхуків, бо розширення має одне поле для обох. Вебхуки без дійсного підпису відхиляються. Без вебхука платіж підтверджується лише тоді, коли покупець повертається з вікна, або коли покупець пізніше знову починає оплату того самого кошика.
Замовлення
OpenCart створює замовлення на кроці Confirm Order без статусу (відсутнє замовлення). Замовлення отримує статус лише після того, як Razorpay підтвердив платіж. Невдалий або покинутий платіж залишає замовлення без статусу, а кошик зберігається. В OpenCart немає статусів Authorized та On hold, тому ви обираєте наявні статуси; причину пояснюють примітки до замовлення. Кожне поле нижче перелічує ваші статуси замовлень OpenCart.
Order Status After Payment: платіж захоплено, сума та валюта збігаються. За замовчуванням: В обробці.
Authorized Status: Authorize Only: кошти зарезервовано, але ще не захоплено. За замовчуванням: Очікується.
On Hold (Review) Status: ручна перевірка: оплачена сума або валюта відрізняється від суми замовлення, платіж надійшов для скасованого замовлення, або підпис вікна був дійсним, але платіж не вдалося перевірити через API Razorpay. За замовчуванням: Очікується. Ви можете створити власні статуси в System > Localisation > Order Statuses і вибрати їх тут.
Cancelled Status: розширення ніколи не встановлює цей статус. Він лише повідомляє розширенню, які замовлення скасовано: платіж, захоплений пізніше для такого замовлення, переводить його на перевірку замість повторного відкриття; авторизований платіж лише додає примітку. За замовчуванням: Скасовано.
Refunded Status: встановлюється, коли платіж повністю повернено, з вкладки замовлення або в Razorpay Dashboard. За замовчуванням: Повернено.
Додатково
Enable Logging: журнал записується у файл razorpay_p_debug.log.php у папці логів OpenCart (storage/logs). Відкрити файл через веб неможливо. Помилки та попередження завжди записуються; ця опція додає деталі для налагодження. Ключі, підписи та контактні дані покупців ніколи не записуються. За замовчуванням: вимкнено.
Log: показує розмір і останні записи журналу. Натисніть Clear log, щоб очистити його.
Delete Data on Uninstall: якщо увімкнено, видалення розширення прибирає налаштування шлюзу та журнал. Замовлення, а також їхні транзакції та повернення Razorpay завжди зберігаються. За замовчуванням: вимкнено.
Імпорт / експорт
Export: Download JSON зберігає налаштування у файл JSON. Секретні ключі не експортуються.
Import: вставте раніше експортований JSON і натисніть Import, щоб відновити налаштування. Збережені секретні ключі залишаються.
Оформлення замовлення
На кроці Payment Method покупець вибирає спосіб оплати (за замовчуванням UPI, Cards, NetBanking). На кроці Confirm Order покупець бачить ваш опис і примітку After "Confirm Order" the Razorpay Checkout window opens to pay securely (UPI, cards, NetBanking, wallets). OpenCart створює замовлення на цьому кроці, все ще без статусу. Коли покупець натискає Confirm Order, розширення створює замовлення Razorpay на точну суму та валюту замовлення і відкриває сторінку Razorpay payment вашого магазину. Там автоматично відкривається вікно Razorpay Checkout із заповненими іменем, електронною поштою та телефоном покупця. В OpenCart 4 покупець обирає спосіб оплати кнопкою Choose у блоці способу оплати, у вікні Payment method options, і натискає Confirm Order внизу сторінки оформлення замовлення. У Razorpay платіж відображається як Order # і номер замовлення. Якщо вікно закрито, покупець може натиснути Pay Now, щоб відкрити його знову, або Choose another payment method, щоб повернутися до оформлення замовлення. Кошик зберігається.
Після успішного платежу покупець бачить Please wait while we process your payment... Розширення перевіряє підпис Razorpay, отримує платіж через API Razorpay і порівнює суму та валюту із замовленням. Замовлення позначається оплаченим лише після підтвердження від Razorpay. Далі замовлення отримує статус звичайним для OpenCart способом, зі звичайними листами про замовлення та оновленням складських залишків, а покупець бачить сторінку успішного оформлення замовлення OpenCart. Якщо підпис дійсний, але платіж на цей момент не вдалося отримати, замовлення отримує статус On Hold (Review) Status, і вебхук підтвердить його пізніше.
OpenCart 3 створює нове замовлення щоразу, коли відображається крок Confirm Order. OpenCart 4 зберігає одне замовлення для оформлення та оновлює його, тож після закриття вікна або вибору Choose another payment method покупець оплачує те саме замовлення. Перш ніж почнеться новий платіж, розширення перевіряє відкриті замовлення Razorpay того самого кошика: вже оплачене, наприклад тому, що покупець закрив браузер і вебхука немає, застосовується замість запиту другого платежу, а решта більше не пропонуються. Якщо покупець оплачує те саме замовлення знову, його замовлення Razorpay повторно використовується, коли сума, валюта та режим не змінилися; інакше створюється нове. Якщо кошик уже оплачено іншим замовленням, покупець одразу потрапляє на сторінку успішного оформлення.
Повідомлення, які може бачити покупець:
В OpenCart 4, якщо замовлення в процесі оформлення закрито магазином або вже оплачене для іншого вмісту кошика (наприклад, кошик з того часу змінився, зокрема кількість), покупець повертається до оформлення з повідомленням Your previous order is already closed or paid. Please confirm the order again: the cart will be paid with a new order., а наступне натискання Confirm Order оплачує нове замовлення. В OpenCart 4 повідомлення, що повертають до оформлення, наприклад це, Payment session not found. Please try again. і We could not verify your payment., показуються над сторінкою оформлення.
Вебхук також працює, коли магазин перебуває в режимі обслуговування: OpenCart 3 пропускає запити платіжних розширень, а в OpenCart 4 розширення додає стартову дію для вебхука та результату вікна оплати.
Розширення приймає лише разові платежі. Воно не підтримує підписки та регулярні платежі, збережені картки, Razorpay Magic Checkout, Payment Links або Route (розділені платежі), а також віджети пропозицій чи розстрочки.
Замовлення та повернення
Статуси замовлень
Без статусу (відсутнє замовлення): покупець не оплатив, спроба платежу не вдалася або Razorpay ще не підтвердив платіж. В Sales > Orders такі замовлення показуються лише з фільтром Order Status, встановленим на Missing Orders.
Order Status After Payment (за замовчуванням В обробці): платіж захоплено та підтверджено. Примітка показує ідентифікатор платежу Razorpay (pay_...), суму та спосіб підтвердження (callback, webhook, синхронізація або адміністратор).
Authorized Status (за замовчуванням Очікується): платіж лише авторизовано (Authorize Only). Захопіть його, щоб завершити замовлення.
On Hold (Review) Status (за замовчуванням Очікується): встановлюється в таких випадках, кожен із приміткою: оплачена сума або валюта не збіглися із замовленням, платіж захоплено для скасованого замовлення або платіж не вдалося перевірити через API Razorpay у цей момент. Перевірте замовлення та або виконайте його, або поверніть кошти.
Cancelled Status: платіж, що надходить пізніше для скасованого замовлення, не відкриває його автоматично: авторизований платіж не захоплюється і лише отримує примітку, а захоплений платіж переводить замовлення на перевірку. Повторне повідомлення про платіж, який уже оплатив замовлення, нічого не змінює, навіть якщо ви скасували замовлення пізніше.
Refunded Status (за замовчуванням Повернено): платіж повністю повернено.
Якщо для вже оплаченого замовлення надходить додатковий платіж, замовлення не змінюється. Примітка пропонує повернути його в Razorpay Dashboard, якщо це не було задумано. Пізній платіж за старішим замовленням уже оплаченого кошика залишає те старе замовлення без статусу, а оплачене замовлення отримує примітку. Пізнє payment.failed для оплаченого замовлення лише додає примітку.
Примітки — це записи в History замовлення, які покупець не бачить.
Вкладка VibeFox Razorpay Payment
У Sales > Orders відкрийте замовлення, оплачене через Razorpay. Унизу сторінки замовлення, поруч із History та Additional, вкладка VibeFox Razorpay Payment показує Payment ID з позначкою Test mode для тестових платежів, Razorpay order, Status платежу, Paid / refunded (суму, яку списав Razorpay, і суму повернення), кнопку захоплення, форму повернення, історію повернень і Razorpay notes замовлення. Вкладка показується користувачам, які мають доступ до розширення. Захоплення та повернення потребують права змінювати розширення (встановлюється в System > Users > User Groups).
Захоплення (Authorize Only)
Відкрийте замовлення зі статусом Authorized Status, натисніть Capture Razorpay payment на вкладці та підтвердіть Capture the authorized Razorpay payment? Платіж захоплюється в тому режимі, в якому його було авторизовано, а замовлення переводиться в Order Status After Payment без сповіщення покупця та без зміни складських залишків, як і при ручній зміні статусу. Якщо Razorpay відмовляє, вкладка та примітки показують Razorpay capture failed: з причиною. Захоплення, зроблене в Razorpay Dashboard, завершує замовлення через вебхук.
Повернення коштів
На вкладці введіть Amount (підставляється сума, яку ще не повернуто), за бажанням Reason (optional), і натисніть Refund via Razorpay. Підтвердіть запитання Refund this amount through Razorpay? This cannot be undone. Підтримуються повне та часткове повернення. Повернення виконується в сумі та валюті, які списав Razorpay, тому після розбіжності суми ви можете повернути максимум те, що покупець фактично сплатив, а не суму замовлення. Більша сума показує Invalid refund amount: at most та саму суму. Повернення надсилається ключами того режиму, у якому було здійснено платіж. Якщо Razorpay не приймає повернення, вкладка показує Razorpay refund failed: з причиною, і повернення не фіксується. Успішне повернення додається до історії повернень і приміток з ідентифікатором повернення Razorpay, сумою та статусом. Повне повернення встановлює замовлення у статус Refunded Status без сповіщення покупця та без повернення товарів на склад. Часткове повернення статус не змінює. Повернення доступні після захоплення платежу.
Повернення товарів у Sales > Returns не повертають гроші через Razorpay.
Повернення, зроблені в Razorpay Dashboard, надходять через вебхук і фіксуються один раз в історії повернень (позначка Razorpay Dashboard) та в примітках. Коли замовлення повністю повернено, його статус стає Refunded Status. Повернення з Dashboard в іншій валюті або більше за суму, яку можна повернути, автоматично не фіксується; примітка просить внести його вручну.
Ліцензійний ключ
Розширення працює з ліцензійним ключем VibeFox, отриманим на vibefox.net. Блок ліцензії License — VibeFox Razorpay Payment є першим блоком у Extensions > Extensions > Payments > VibeFox Razorpay Payment > Edit, над налаштуваннями. Вставте ключ у License key і натисніть Activate. Після цього блок показує ключ у замаскованому вигляді, статус (наприклад, дату, до якої ліцензія активна, і ваш домен) та кнопки Check now для повторної перевірки статусу, Change key для введення іншого ключа та Remove key для видалення ключа з цього магазину. Нижче розташовані рядок Product: opencart-payment-razorpay та посилання Manage licenses and domains in your account, яке відкриває ваш обліковий запис vibefox.net. Змінювати ключ можуть лише адміністратори з правом Modify на розширення. Тексти блоку відповідають мові адмін-панелі (включено англійську та російську).
Якщо ключ не приймається, блок пояснює причину, наприклад Key not found, This key belongs to another product, Domain limit reached або License expired on з датою. Після зміни адреси магазину або після звільнення слота домену у вашому обліковому записі натисніть Check now. Якщо сервер ліцензій недоступний, розширення продовжує працювати за останнім відомим статусом.
Один ключ працює на одному домені: адреса магазину з конфігурації OpenCart. Видалення ключа з магазину не звільняє слот домену. Звільніть його у своєму обліковому записі vibefox.net.
Без активного ключа Razorpay не відображається покупцям під час оформлення замовлення. Якщо платіж все одно розпочато, покупець бачить This payment method is not available. Please choose another one. Адміністратор, який увійшов в адмін-панель у тому самому браузері, усе ще бачить спосіб оплати в магазині, позначений як (unlicensed — visible to admins only), тож ви можете налаштувати та перевірити розширення до купівлі ключа. В OpenCart 4 цей попередній перегляд недоступний: магазин не бачить входу адміністратора, тож без активного ключа спосіб оплати приховано для всіх. Після одноразового відкриття сторінки Edit на Dashboard адмін-панелі з’являється нагадування. Закрийте його кнопкою ×, щоб приховати на 7 днів. Наявні замовлення не змінюються: платежі, які вже розпочато, і далі підтверджуються, а захоплення та повернення працюють.
Коли ліцензія спливає, розширення продовжує працювати, але оновлення та підтримка потребують продовження. Статус автоматично перевіряється знову, коли ви відкриваєте Dashboard або сторінку Edit адмін-панелі: раз на день протягом перших 14 днів після введення ключа, потім раз на тиждень. Cron-завдання не потрібне. Видалення розширення завжди прибирає ліцензійний ключ і статус ліцензії.
Усунення несправностей
Razorpay не відображається під час оформлення замовлення: перевірте, що ліцензія активна, Enable/Disable увімкнено, а поточний режим має обидва ключі: Test Key ID і Test Key Secret у тестовому режимі, Live Key ID і Live Key Secret у робочому режимі. Сторінка налаштувань показує сповіщення, якщо їх немає. Також перевірте, що платіжна адреса входить до вибраної Geo Zone, і що замовлення досягає Total, заданого в налаштуваннях.
Платіж пройшов, але замовлення залишається без статусу: вебхук не працює. У Razorpay Dashboard перевірте, що вебхук існує в режимі, яким ви користуєтесь (Test або Live), що його URL точно збігається з показаним у Webhook URL, і що вибрано всі п’ять подій. Перевірте, що Webhook Secret збігається із секретом у Razorpay. Замовлення також отримує статус, коли покупець повертається з вікна або знову починає оплату того самого кошика.
Вебхук відповідає Webhook secret not configured: Webhook Secret порожній. Введіть секрет вебхука Razorpay. Razorpay пізніше знову надішле подію.
Вебхук відповідає Invalid signature або Missing signature: секрет у налаштуваннях відрізняється від секрету вебхука Razorpay. Введіть однаковий секрет в обох місцях, для тестового та робочого вебхуків.
Вебхук відповідає Retry later: розширенню не вдалося підтвердити захоплення через API Razorpay, не вдалося встановити статус замовлення, або кошик у цей момент оновлював інший запит. Razorpay автоматично надішле подію знову. Причина зазначена в Log.
URL вебхука в браузері показує Method not allowed: це нормально. URL приймає лише запити від Razorpay.
Замовлення має статус перевірки: прочитайте примітки на вкладці VibeFox Razorpay Payment. Сума або валюта не збіглися із замовленням, платіж надійшов для скасованого замовлення, або його не вдалося перевірити через API Razorpay у цей момент, і він очікує на вебхук.
Покупець бачить помилку під час оплати: перегляньте поле Log на сторінці розширення. Помилки записуються навіть за вимкненого Enable Logging. Неправильні ключі показують повідомлення, що спосіб оплати наразі недоступний. Інші причини від Razorpay показуються після Razorpay could not accept this payment:.
Вікно не відкривається: скрипт Razorpay Checkout заблоковано блокувальником контенту або з’єднанням. Покупець бачить повідомлення та може перезавантажити сторінку.
На вкладці немає форми захоплення або повернення: вкладка пояснює причину: платіж ще не захоплено, його повністю повернено, ваша група користувачів не має права змінювати розширення, або не налаштовано ключі того режиму, в якому здійснено платіж (The payment was made in Test mode, but the Test Key ID / Key Secret are not configured. або те саме для робочого режиму). Введіть ключі цього режиму та спробуйте знову.
Видалення
Перейдіть до Extensions > Extensions, виберіть тип Payments і натисніть Uninstall (червона кнопка −) поруч із VibeFox Razorpay Payment. Ліцензійний ключ і статус ліцензії цього розширення завжди видаляються. OpenCart завжди видаляє власні налаштування розширення: Enable/Disable, Sort Order, Geo Zone, Total і статуси замовлень розділу Orders, які повертаються до значень за замовчуванням під час повторного встановлення. У OpenCart 4 також видаляються події розширення та його стартова дія, яка пропускає вебхук у режимі обслуговування. Якщо Delete Data on Uninstall увімкнено, видаляються решта налаштувань шлюзу (назва, опис, тестовий режим, ключі, дія оплати, секрет вебхука, журналювання) та журнал. Якщо вимкнено, вони зберігаються для повторного встановлення. Транзакції та повернення Razorpay завжди зберігаються, тож замовлення, оплачені раніше, можна захопити та повернути й після повторного встановлення. Наявні замовлення зберігають свої примітки про оплату.
В OpenCart 4, щоб видалити також файли розширення, після цього перейдіть до Extensions > Installer і натисніть Uninstall (помаранчева кнопка −) поруч із VibeFox Razorpay Payment у списку встановлених розширень, а потім Delete (червона кнопка з кошиком), щоб видалити завантажений пакет.
Razorpay є торговельною маркою її власника. Це розширення не пов’язане з Razorpay і не схвалено Razorpay.
