Portmone Україна
Картки, Apple/Google Pay, Privat24, hold (преавторизація). Офіційна документація: https://docs.portmone.com.ua/docs/uk/PaymentGatewayUa/. Комісія шлюзу: за договором з Portmone.
Доступи
payee_id, login, password і ключ підпису — видає менеджер Portmone. Тестовий режим вмикається менеджером; тестові картки 4444 3333 2222 1111 (успіх) та 4111 1111 1111 1111 (відмова).
- Змінні середовища
PORTMONE_PAYEE_IDPORTMONE_LOGINPORTMONE_PASSWORDPORTMONE_KEYPORTMONE_API_BASE (опц.)- Вебхук
POST /webhooks/portmone. Колбеки Portmone не підписані (form-POST на success_url або JSON-сповіщення) — Місток підтверджує кожен повторним запитомresultз login/password і звіряє payee_id та shopOrderNumber.
Що викликає Місток
| Запит | Поля / сенс |
|---|---|
POST https://www.portmone.com.ua/gateway/ (createLinkPayment) | payee{payeeId, login, dt, signature}, order{shopOrderNumber, billAmount, billCurrency, description, successUrl, failureUrl, preauthFlag, expTime} → {linkPayment} |
POST /gateway/ (result) | масив рахунків (shopBillId, status, billAmount, cardMask); Місток перечитує його після кожного колбеку |
POST /gateway/ (return) | повернення (повне/часткове) |
POST /gateway/ (confirmPreauth) | списання холду |
POST /gateway/ (rejectPreauth) | зняття холду (повна сума) |
Статуси
CREATED → created · PREAUTH → hold · PAYED → success · REJECTED → failure (так само для прострочених) · RETURN → reversed, коли повернення покривають оплачену суму.
Модель Містка: created → processing → (hold →) success | failure | expired | reversed. Замовлення в Shopify отримує оплату лише на success і лише після звірки суми й валюти з нашим записом.
Пісочниця
Окремого тестового хоста немає. Підпис: UPPER(HMAC-SHA256(key, UPPER(payeeId+dt+hex(shopOrderNumber)+billAmount)+UPPER(hex(login)))), dt = YYYYMMDDHHmmss.
Обмеження
- тільки UAH
- shopOrderNumber ≤ 120 символів
- часткове зняття холду неможливе
- success_url отримує POST — Місток приймає його на /return
Не підтверджено живим прогоном
Реалізовано за офіційними доками та SDK; перший прогін на тестових ключах обов’язковий.
- часовий пояс dt (Europe/Kyiv)
- поле commission як комісія
- формат closeInvoice
- документація обрізається після розділу 3 — формати взято з офіційних модулів WooCommerce/PrestaShop