mrkv_novapay_client_phone
Дозволяє переписати або скоригувати номер телефону, який передається в NovaPay як client_phone. Спрацьовує після дефолтної нормалізації українських форматів (+380…, 380…, 80…, 0…, 9-цифровий локальний).
Параметри
| # | Тип | Опис |
|---|---|---|
| 1 | string | Нормалізований телефон (E.164-формат, наприклад +380675776888), або порожній рядок, якщо вхідний номер не розпізнано |
| 2 | string | Сирий номер з білінг-форми, як його ввів покупець |
| 3 | WC_Order | Об'єкт замовлення, що оплачується |
Повертає: рядок. Порожній рядок призведе до показу стандартного повідомлення «Введіть валідний український мобільний номер».
Приклад
add_filter( 'mrkv_novapay_client_phone', function ( $phone, $raw, $order ) {
// Дозволяємо польські номери +48xxxxxxxxx
if ( preg_match( '/^\+?48\d{9}$/', preg_replace( '/\D+/', '', $raw ) ) ) {
return '+' . preg_replace( '/\D+/', '', $raw );
}
return $phone;
}, 10, 3 );
mrkv_novapay_api_base_url
Перевизначає базову URL-адресу NovaPay API. За замовчуванням плагін бере одну з двох констант залежно від чекбокса Test mode у налаштуваннях:
- Test mode увімкнено → https://api-qecom.novapay.ua
- Test mode вимкнено → https://api-ecom.novapay.ua
Параметри
| # | Тип | Опис |
|---|---|---|
| 1 | string | Дефолтна URL-адреса (без /-наприкінці) |
| 2 | bool | true, якщо в налаштуваннях увімкнено Test mode |
| 3 | array | Повний масив налаштувань гейтвея (merchant_id, private_key тощо) |
Повертає: рядок з валідною URL без слешу в кінці.
Приклад
add_filter( 'mrkv_novapay_api_base_url', function ( $url, $sandbox, $settings ) {
if ( ! $sandbox ) {
return 'https://api-ecom-custom.novapay.ua';
}
return $url;
}, 10, 3 );
Мета-поля замовлення
Усі дані з API NovaPay та постбеків зберігаються як стандартні мета-поля замовлення WooCommerce — їх можна читати через $order->get_meta( '_mrkv_np_…' ).
| Ключ | Тип | Опис |
|---|---|---|
| _mrkv_np_session_id | string (UUID) | Ідентифікатор сесії NovaPay |
| _mrkv_np_last_status | string | Останній отриманий статус: created, processing, holded, hold_confirmed, processing_hold_completion, paid, failed, processing_void, voided, expired |
| _mrkv_np_paytype | string | Метод оплати: card, wallet, apple_pay, google_pay |
| _mrkv_np_terminal_name | string | Назва термінала, через який пройшов платіж |
| _mrkv_np_processing_result | string | Текстовий результат від процесінгу (Successful, Expired card, Client verification unsuccess тощо) |
| _mrkv_np_rrn | string | RRN банківської транзакції (унікальний ID для звернень у банк) |
| _mrkv_np_approval | string | Код авторизації |
| _mrkv_np_card_pan | string | Маскований номер картки (526961xxxx7956) |
| _mrkv_np_card_type | string | Тип картки (VISA, MC тощо) |
| _mrkv_np_card_bank | string | Банк-емітент картки |
| _mrkv_np_card_country | string | Числовий код країни картки |
Приклад: знайти замовлення за RRN
$orders = wc_get_orders( [
'meta_key' => '_mrkv_np_rrn',
'meta_value' => '9350927',
'limit' => 1,
] );
REST-endpoint постбеків
Для прийому постбеків від NovaPay плагін реєструє WooCommerce API-endpoint:
{site_url}/wc-api/mrkv_novapay/
Цей URL автоматично передається в NovaPay як параметр callback_url при створенні кожної платіжної сесії. На рівні WordPress це зачіплення стандартного хука woocommerce_api_mrkv_novapay — за потреби ви можете додати власний обробник із вищим пріоритетом для логування або форвардингу подій у зовнішні системи.