WooCommerce Руководство по плагину оплаты в Индонезии
WooCommerce Руководство по плагину оплаты в Индонезии
Обзор основных методов оплаты в Индонезии
На индонезийском рынке сайты WooCommerce должны поддерживать следующие основные способы оплаты:
- банковский перевод: Прямые переводы из местных банков, таких как Mandiri, BCA, BNI и др.
- электронный кошелек (например, для денег): OVO, DANA, LinkAja
- Платежи в магазинах бытовой техники: офлайн-платежи Indomaret и Alfamart
- Кредитные/дебетовые карты: Карты Visa/Mastercard местного выпуска
- рассрочка: Akulaku et al.
Рекомендуемые решения для плагинов WooCommerce
1. Midtrans (наиболее комплексное решение)
- Поддерживает почти все местные способы оплаты в Индонезии
- Предоставляет официальный плагин WooCommerce (ссылка для скачивания)
- Особенности:
- Интеграция OVO/DANA/LinkAja
- Встречные платежи Indomaret/Alfamart
- BCA KlikPay/Mandiri ClickPay и другие интерфейсы интернет-банкинга
2. Платежный шлюз Xendit
- Плагин Xendit WooCommerce
- Каналы поддержки:
- Электронные кошельки OVO и DANA
- Alfamart/Indomaret Convenience Store Payment Code Generator - это мощно!
3. DOKU для WooCommerce
- Официальный плагин Doku
- Преимущества глубокой интеграции между Mandiri и BCA Bank очевидны
Технические моменты API Docking (Справочник разработчика)
// Пример фрагмента кода базовой конфигурации Midtrans (добавить в functions.php)
add_filter('woocommerce_payment_gateways', 'add_midtrans_gateway');
function add_midtrans_gateway($methods) {
$methods[] = 'WC_Gateway_Midtrans';
return $methods.
}
// Пример обработки обратных вызовов Xendit
add_action('woocommerce_api_wc_xendit_callback', 'xendit_callback_handler');
function xendit_callback_handler() {
// Проверяем подпись и обрабатываем логику обновления статуса заказа...
}
Рекомендации по соответствию требованиям PCI и безопасности
- Требования сертификации SAQ A применимы к большинству интегрированных шлюзов сторонних производителей
- SSL-сертификаты должны быть действительными и обновленными
- CVV/CVC не должны храниться на сервере продавца
Часто задаваемые вопросы
В: Код платежа, сгенерированный Indomaret, не может быть отсканирован покупателями?
→ Убедитесь, что опция "хранить код оплаты" включена, и убедитесь, что размер QR-кода достаточно велик!
В: Сделки OVO всегда отложены?
→ Убедитесь, что вы правильно настроили API-ключ OVO и включили канал в бэкенде Midtrans/XENDIT.
Для получения более подробной документации по внедрению посетите портал разработчиков каждого поставщика услуг, чтобы ознакомиться с последними версиями SDK и спецификациями.
# Руководство по взаимодействию WooCommerce с плагином Indonesia Payment Plugin (продолжение)
Углубленная настройка и оптимизация
1. локализованные настройки валюты и языка
- Обязательные расчеты в индонезийских рупиях (IDR):
"`php
// Добавьте следующее в файл functions.php темы
add_filter('woocommerce_currency', function() {
return 'IDR';
});
“`
- Поддержка нескольких языков: рекомендуется установить плагин WPML или Polylang, чтобы убедиться, что на странице оплаты есть возможность выбора индонезийского языка!
2. Глубокая настройка конкретных каналов оплаты
Специальные настройки OVO eWallet:
- Бэкэнд Midtrans должен быть включен отдельно для производственного режима OVO (белые номера только в тестовом режиме).
- Для Xendit требуется дополнительный идентификатор OVO Merchant ID.
Оплата на стойке Alfamart/Indomaret:
"`php
// Настройте инструкции по оплате в магазине (пример)
add_filter('midtrans_indomaret_instructions', function($instructions) {
return "Предъявите этот код на стойке Indomaret в течение 24 часа“;
});
“`
3. Особое отношение со стороны банка Mandiri
Требуется Mandiri ClickPay:
1. `тип_платежа` установлен на `mandiri_clickpay`
2. Ключ сервера должен использовать ключ API v2.
3. URL-адреса обратного вызова IPN должны быть заполнены на стороне банка
API Advanced Integration Solution
Пример кода безопасной аутентификации Webhook (версия Midtrans):
"`php
функция verify_midtrans_signature($request) {
$server_key = YOUR_SERVER_KEY;
$signature_key = $request['signature_key'];
unset($request['signature_key']);
ksort($request).
$string_to_hash = implode("", array_map(function ($v, $k) {
return "$k$v";
}, array_values($request), array_keys($request)))).
return hash('sha512', $string_to_hash . $server_key) === $signature_key;
}
“`
Предложения по оптимизации пользовательского интерфейса/UX
1. Дизайн, ориентированный на мобильные устройства: в Индонезии 90% трафика электронной коммерции поступает с мобильных телефонов, чтобы обеспечить:
- Кнопка OVO/DANA размером не более 48x48px
- QR-код Alfamart автоматически адаптируется к ширине экрана
2. Пошаговый пользовательский интерфейс руководства по оплате (можно добавить CSS).
"`css
/* Локальная группировка способов оплаты на странице оформления заказа WooCommerce */
.payment_methods li[id*="midtrans"] label img,
.payment_methods li[id*="xendit"] label img {
max-height:30px !important;
}
“`
Требования к соблюдению KYC Особое внимание
Внимание необходимо в соответствии с Постановлением Банка Индонезии № X:
1. Контроль предельных значений транзакций:
- Единый электронный кошелек ≤ 10,000,000 IDR
- Банковский перевод ≤250,000,000 IDR в день в совокупности
2. процесс аутентификации клиента (для транзакций на сумму свыше 5 млн НРД):
"javascript
// JS front-end для сбора налоговых кодов (NPWP)
jQuery(document).on('change','#billing_country',function(){
if(jQuery(this).val() === 'ID'){
jQuery('#npwp_field').show().attr('required',true); }
});
“`
Рекомендации по настройке CDN и производительности (для индонезийской сетевой среды)
| Провайдеры CDN | Количество узлов в Джакарте | Количество узлов в Сурабайе | Количество узлов в Макассаре |
|———–|————–|—————|—————-|
| Akamai | 8 | 4 | 2 |
| Cloudflare | 12 | 6 | 3 |
Рекомендуемая конфигурация:
В `wp-config.php` добавьте.
"`php
define('WP_CACHE_KEY_SALT','yourdomain_id'); // Идентификаторы разделов кэша ускоряют определение CDN региональных характеристик трафика...
“`
Для получения более подробной информации о технической реализации конкретного канала оплаты или при возникновении конкретной проблемы с кодом ошибки вы можете предоставить более конкретное описание сценария, чтобы продолжить обсуждение.