Skip to content

MaGuruDev/MonoCore

Repository files navigation

MaGuru MonoCore — Monobank Integration Core for Magento 2

Magento 2 Stable Version Total Downloads License

FREE infrastructure module. Provides the shared HTTP clients, encrypted configuration, ECDSA webhook verification, and exception hierarchy used by all other MaGuru Monobank modules.


Requirements

Component Version
Magento Open Source / Adobe Commerce 2.4.4+
PHP 8.1–8.5
MaGuru_Core ^1.0.1
ext-openssl any
ext-json any
guzzlehttp/guzzle ^7.5

Installation

composer require maguru/module-mono-core
bin/magento module:enable MaGuru_MonoCore
bin/magento setup:upgrade
bin/magento cache:flush

Configuration

Stores → Configuration → MaGuru → Monobank Integration

Field Description
Enabled Enable/disable the integration
HTTP Timeout Guzzle request timeout in seconds (default: 15)
Connect Timeout TCP connect timeout in seconds (default: 5)
Debug Logging Write detailed request/response logs to var/log/mono_core.log

Acquiring API Token, Chast Store ID and Chast Secret are configured in the same admin section but are contributed by MaGuru_MonoPayment and MaGuru_MonoChast respectively — see their READMEs. They only appear once the corresponding module is installed.


Features

  • AcquiringClient — Guzzle HTTP client for api.monobank.ua with X-Token auth and error mapping (403→AuthException, 404→NotFoundException, 429→RateLimitException, 500→ApiException)
  • ChastClient — Guzzle HTTP client for Monobank Частини API with HMAC-SHA256 signature header
  • WebhookVerifier — ECDSA P-256 / SHA-256 verification of X-Sign webhook signatures with pubkey caching and auto-retry on key rotation
  • CLIbin/magento mono:acquiring:validate-token to verify your API token
  • Exception hierarchyApiException, AuthException, RateLimitException, NotFoundException

Developer Notes

This module provides interfaces only — no UI, no payment method.

Other modules interact via:

// In di.xml
<preference for="MaGuru\MonoCore\Api\AcquiringClientInterface"
            type="MaGuru\MonoCore\Model\Client\AcquiringClient"/>

Inject AcquiringClientInterface or ChastClientInterface in your service — never instantiate clients directly.


Tests

bin/clinotty php vendor/bin/phpunit -c app/code/MaGuru/MonoCore/Test/Unit/phpunit.xml

57 unit tests · PHPStan Level 8 ✅


Support


License

Free to use. See LICENSE.txt for details.

About

Monobank Integration Core Module for Magento 2 — HTTP client, config, ECDSA webhook verification

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors