NestJS Monobank

Створення платежу

Як створити платіж, використовуючи картковий токен

У цьому розділі ми розглянемо, як створити платіж за допомогою модуля nestjs-monobank та методу createWithCardToken.

Виклик методу для створення платежу

Метод createWithCardToken дозволяє створити платіж, використовуючи дані токенізованої картки.

import { Injectable } from '@nestjs/common';
import { type CardTokenRequest, MonobankService } from 'nestjs-monobank';

@Injectable()
export class PaymentService {
     constructor(private readonly monobankService: MonobankService) {}

     async createPayment() {
          const paymentData: CardTokenRequest = {
               invoiceId: 'p2_9ZgpZVsl3',
               cardToken: '67XZtXdR4NpKU3',
               cvc: '123'
          };

          const payment = await this.monobankService.createWithCardToken(paymentData);
          return payment.status;
     }
}

Обробка відповіді від API

Метод повертає об'єкт типу CardToken, що містить статус транзакції та супутню інформацію.

{
     "invoiceId": "2210012MPLYwJjVUzchj", // ідентифікатор рахунку (інвойсу)
     "tdsUrl": "https://example.com/tds/url", // URL для проходження 3DS-підтвердження (опціонально)
     "status": "success", // статус транзакції
     "failureReason": "Неправильний CVV код", // причина невдачі транзакції (заповнюється тільки при помилці)
     "amount": 4200, // сума транзакції у копійках (наприклад, 4200 = 42.00 грн)
     "ccy": 980, // код валюти згідно ISO 4217 (наприклад, 980 = гривня)
     "createdDate": null, // дата створення токену картки (може бути null, якщо ще не встановлено)
     "modifiedDate": null // дата останньої модифікації токену картки (може бути null)
}

Отримані дані можна використовувати для відображення статусу платежу користувачу, перенаправлення на сторінку 3DS-підтвердження (якщо потрібно), обробки помилок або оновлення статусу замовлення у вашій системі.