Пользовательская платежная интеграция
Категория:
Темы в этом документе:
- Сторонняя обработка платежей в Monetization
- Асинхронная обработка платежей
- Синхронная обработка платежей
Сторонняя обработка платежей в Monetization
Сторонняя обработка платежей поддерживается двумя способами: synchronous и asynchronous. Synchronous method требует немедленного ответа от вашего payment integration component. Asynchronous method экспортирует invoices из Monetization, а затем импортирует payments позже.
Информация:
Обычно оптимальный способ обработки зависит от вашего use case.Асинхронная обработка платежей
При asynchronous payment processing вы экспортируете invoices из Monetization, а payments полностью обрабатываются вне Monetization. После получения результатов обработки платежей вы импортируете их через CSV files или API Monetization.
Экспорт invoices
Invoices можно экспортировать из Monetization двумя способами: настроить invoice export mapper и scheduled exporting job для выгрузки files в SFTP location, либо подписаться на invoice creation через webhook. Во втором случае при создании нового invoice Monetization отправляет invoice request на указанный URL address.
Exporting job - CSV file to SFTP
Чтобы экспортировать invoices как CSV files, настройте Invoice Export mapper, который сопоставляет invoice parameters с columns CSV file. В Monetization это настраивается в Business configuration Export Invoice mappers.
Рисунок 1: Example of invoice export mapper configuration
Invoice exports планируются через Exporting Jobs. Это могут быть one-off tasks или автоматические tasks за конкретные periods. Exporting Job сохранит exported CSV file в соответствующее SFTP location, например storage/invoice/folder_name/file_name.csv.
Рисунок 2: Example of invoice export job
Notification - webhook method
Экспорт invoices через webhooks позволяет получать invoices сразу после создания. Для этого настройте Invoice Notification Rule, которая отправляет каждый created invoice как JSON body request на указанный URL address вместе с заранее настроенными headers.
Рисунок 3: Example of invoice creation webhook configuration
Импорт payments
Payments можно импортировать через CSV file в SFTP location или через API call. В обоих случаях payment import должен содержать данные, достаточные для сопоставления payment с customer, invoice или bill.
CSV file import via SFTP
Для CSV import настройте import mapper, который сопоставляет columns CSV file с payment fields в Monetization. Затем загрузите CSV file в согласованное SFTP location, откуда Monetization сможет его обработать.
Import via API call
API import используется, когда ваша интеграция получает payment result и сразу отправляет его в Monetization. API request должен быть authenticated и содержать payment reference, amount, currency, status и связанные identifiers.
Authentication
Для API calls используйте стандартную authentication Monetization. Credentials и token handling зависят от вашей tenant configuration.
Payment import request
Payment import request должен передавать результат оплаты. Если payment успешен, Monetization применяет его к соответствующему invoice или bill. Если payment failed или canceled, статус должен отражать результат обработки.
Синхронная обработка платежей
Synchronous payment processing используется, когда Monetization напрямую вызывает сторонний payment provider во время customer, card или transaction operation. Ваша интеграция должна вернуть ответ немедленно, чтобы Monetization мог продолжить workflow.
Настройка стороннего payment provider
Сторонний payment provider настраивается в System configuration Payment gateways. Укажите URL, API key и при необходимости headers, которые нужны вашей интеграции.
Customer operations
Customer operations позволяют Monetization создать, обновить, прочитать или удалить customer record у внешнего payment provider.
Create customer (without card)
Create customer используется, когда Monetization создает customer у payment provider без сохранения card. Request обычно содержит customer identifiers, name, email и billing data. Response должен вернуть external customer reference.
Update customer
Update customer используется, когда customer data меняется в Monetization и эти изменения нужно передать payment provider.
Read customer
Read customer используется для получения текущего customer state у payment provider.
Delete customer
Delete customer используется, когда customer больше не должен существовать у payment provider или должен быть deactivated.
Card operations
Card operations управляют setup и удалением card/payment method.
Setup (setup card request)
Setup card request создает или подготавливает card setup у payment provider. В зависимости от provider это может вернуть redirect URL, setup token или другой reference, который нужен для завершения card registration.
Delete card
Delete card удаляет card или payment method у payment provider. Response должен подтвердить, что удаление выполнено или что card больше не активна.
Transaction operations
Transaction operations используются для authorization, capture, charge, void и refund.
Authorization
Authorization резервирует сумму на payment method, но еще не списывает ее окончательно.
Capture
Capture подтверждает ранее выполненную authorization и завершает списание.
Charge
Charge выполняет прямое списание без отдельного authorization step.
Void
Void отменяет transaction, которая еще не была окончательно captured или settled.
Refund
Refund возвращает клиенту полностью или частично уже списанную сумму.
Error handling
Интеграция должна возвращать понятные error responses, чтобы Monetization мог показать корректный статус операции и сохранить diagnostic information. Ошибки должны различать validation errors, authentication errors, provider errors, network/timeouts и business declines.