Razorpay — популярный платежный шлюз в Индии, используемый на веб-сайтах электронной коммерции или любых платных услугах. В несколько шагов вы можете начать собирать деньги со своих клиентов, используя эту услугу.
Сегодняшний пост будет посвящен созданию учетной записи на Razorpay и интеграции с приложением node.js.
Шаг 1. Настройка учетной записи RazorPay
Перейдите на https://dashboard.razorpay.com/signup и введите свой адрес электронной почты и необходимую информацию.
По умолчанию он создает тестовую среду, в которой вы можете поиграть со всеми параметрами. Вы можете активировать свой аккаунт, заполнив форму KYC в разделе «Мой аккаунт -> Профиль -> Активация аккаунта».
Теперь перейдите в «Настройки -> API-ключи», чтобы сгенерировать API-ключи для подключения к узлу. Загрузите ключи и сохраните их в надежном месте.
Шаг 2. Настройка Node.js
Установите пакет Razorpay с помощью npm.
npm i --save razorpay
Теперь давайте создадим файл index.js и создадим экземпляр Razorpay с key_id и key_secret, которые мы загрузили в качестве ключей API.
const rzp = new Razorpay({ key_id: "YOUR_KEY_ID", key_secret: "YOUR_KEY_SECRET", })
Создайте заказ и отправьте идентификатор заказа обратно для оформления заказа.
const rzpOrder = await rzp.orders.create({ amount: amount * 100, // rzp format with paise currency: 'INR', receipt: "receipt#1" //Receipt no that corresponds to this Order, payment_capture: true, notes: { orderType: "Pre" } //Key-value pair used to store additional information }) // To create recurring subscription const subscriptionObject = { plan_id: PLAN_ID, total_count: 60, quantity: 1, customer_notify: 1, notes, } const subscription = await rzp.subscriptions.create(subscriptionObject)
Передайте идентификатор заказа для создания объекта проверки
<button id=”rzp-button1">Pay</button> <script src=”https://checkout.razorpay.com/v1/checkout.js"></script> <script> var options = { “key”: “YOUR_KEY_ID”, // Enter the Key ID generated from the Dashboard "name": "Test Company", "order_id": "rzpOrder.id", // For one time payment "subscription_id" : "subscription.id" // For recurring subscription "prefill": { "name": "Test User", "email": "[email protected]", "contact": "9999999999" }, "theme": { "color": "#3399cc" }, // This handler function will handle the success payment "handler": function (response) { alert(response.razorpay_payment_id); alert("Payment Successfull") }, }; var rzp1 = new Razorpay(options); document.getElementById('rzp-button1').onclick = function (e) { rzp1.open(); e.preventDefault(); } rzp1.on('payment.failed', function (response) { alert(response.error.code); alert(response.error.description); alert(response.error.source); alert(response.error.step); alert(response.error.reason); alert(response.error.metadata.order_id); alert(response.error.metadata.payment_id); } </script
Если все верно, пользователь будет перенаправлен на страницу оформления заказа Razorpay.
Вы можете зафиксировать платеж автоматически или с помощью метода захвата. Webhooks позволяет вам получить ответ от сервера Razorpay.
Вы можете подписаться на определенное событие из вебхука Razorpay и сохранить данные в своей БД.
Вы можете настроить веб-перехватчики с панели инструментов для режима реального времени и тестового режима отдельно.
Теперь вам нужно проверить подлинность события веб-перехватчика, отправленного Razorpay.
const requestedBody = JSON.stringify(req.body) const receivedSignature = req.headers['x-razorpay-signature'] const expectedSignature = crypto.createHmac('sha256', RAZORPAY_WEBHOOK_SECRET).update(requestedBody).digest('hex') if (receivedSignature === expectedSignature) { // Store in your DB } else { res.status(501).send('received but unverified resp') }
Вывод
И это все. Вы все готовы начать свой бизнес онлайн-платежей. Для получения дополнительной информации посетите официальную документацию по интеграции RazorPay.
Спасибо, что прочитали. Первоначально опубликовано на https://noob2geek.in 12 апреля 2021 г.
Дополнительные материалы на plainenglish.io