WooCommerce Guide to Indonesia Payment Plugin
WooCommerce Guide to Indonesia Payment Plugin
Overview of Main Payment Methods in Indonesia
In the Indonesian market, WooCommerce sites need to support the following major payment methods:
- bank transfer: Direct transfers from local banks such as Mandiri, BCA, BNI, etc.
- electronic wallet (e.g. for money): OVO, DANA, LinkAja
- Convenience Store Payments: Indomaret and Alfamart offline payments
- Credit/debit cards: Visa/Mastercard Locally Issued Cards
- instalment: Akulaku et al.
Recommended WooCommerce plugin solutions
1. Midtrans (most comprehensive solution)
- Supports almost all local payment methods in Indonesia
- Provides the official WooCommerce plugin (download link)
- Features:
- OVO/DANA/LinkAja integration
- Indomaret/Alfamart counter payments
- BCA KlikPay/Mandiri ClickPay and other internet banking interfaces
2. Xendit Payment Gateway
- Xendit WooCommerce Plugin
- Channels of support:
- OVO and DANA e-wallets
- Alfamart/Indomaret Convenience Store Payment Code Generator is powerful!
3. DOKU for WooCommerce
- Doku Official Plugin
- Advantages of deep integration between Mandiri and BCA Bank are evident
API Docking Technical Points (Developer Reference)
// Midtrans Basic Configuration Sample Code Snippet (add to functions.php)
add_filter('woocommerce_payment_gateways', 'add_midtrans_gateway');
function add_midtrans_gateway($methods) {
$methods[] = 'WC_Gateway_Midtrans';
return $methods.
}
// Xendit callback handling example
add_action('woocommerce_api_wc_xendit_callback', 'xendit_callback_handler');
function xendit_callback_handler() {
// Verify signature and handle order status update logic...
}
PCI Compliance and Security Recommendations
- SAQ A certification requirements apply to most third-party integrated gateway solutions
- SSL certificates must be valid and up-to-date
- CVV/CVC should not be stored on the merchant server
FAQ Frequently Asked Questions
Q: The payment code generated by Indomaret cannot be scanned by customers?
→ Check that the "store payment code" option is enabled and make sure that the size of the QR code is large enough!
Q: OVO deals are always pending?
→ Confirm that you have properly configured OVO's API key and enabled the channel in the Midtrans/XENDIT backend
For more detailed implementation documentation, visit each service provider's developer portal for the latest SDKs and specifications.
# WooCommerce guide to interfacing with Indonesia Payment Plugin (continued)
In-depth configuration and optimisation
1. Localised currency and language settings
- Mandatory Indonesian Rupiah (IDR) settlement:
"`php
// Add the following to the theme's functions.php
add_filter('woocommerce_currency', function() {
return 'IDR';
});
“`
- Multi-language support: It is recommended to install the WPML or Polylang plugin to ensure that the payment page has an Indonesian language option!
2. Deep configuration of specific payment channels
OVO eWallet special settings:
- Midtrans backend needs to be enabled separately for OVO production mode (whitelisted numbers only in test mode)
- Xendit requires an additional OVO Merchant ID.
Payment at the Alfamart/Indomaret counter:
"`php
// Customise convenience store payment instructions (example)
add_filter('midtrans_indomaret_instructions', function($instructions) {
return "Present this code at Indomaret counter within 24 hours“;
});
“`
3. Special treatment by the Mandiri Bank
Mandiri ClickPay is required:
1. `payment_type` set to `mandiri_clickpay`
2. Server Key must use v2 API key.
3. IPN callback URLs need to be filed on the bank's end
API Advanced Integration Solution
Webhook secure authentication sample code (Midtrans version):
"`php
function 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;
}
“`
UI/UX optimisation recommendations
1. Mobile-first design: Indonesia 90% e-commerce traffic comes from mobile phones to ensure:
- OVO/DANA button no smaller than 48x48px
- Alfamart QR code automatically adapts to the width of the screen
2. Step-by-step payment guide UI (CSS can be added).
"`css
/* Local payment method grouping on WooCommerce checkout page */
.payment_methods li[id*="midtrans"] label img,
.payment_methods li[id*="xendit"] label img {
max-height:30px !important;
}
“`
KYC Compliance Requirements Special Points of Attention
Attention is required according to Bank Indonesia Regulation No. X:
1. Transaction limit control:
- E-Wallet Single ≤ 10,000,000 IDR
- Bank Transfer Single Day Accumulation ≤ 250,000,000 IDR
2. Customer authentication process (for transactions over 5 million IDRs):
"`javascript
// JS front-end collection of tax codes (NPWP)
jQuery(document).on('change','#billing_country',function(){
if(jQuery(this).val() === 'ID'){
jQuery('#npwp_field').show().attr('required',true); }
});
“`
CDN and Performance Tuning Recommendations (for Indonesian Network Environment)
| CDN Providers | Jakarta Node Count | Surabaya Node Count | Makassar Node Count |
|———–|————–|—————|—————-|
| Akamai | 8 | 4 | 2 |
| Cloudflare | 12 | 6 | 3 |
Recommended Configuration:
In `wp-config.php` add.
"`php
define('WP_CACHE_KEY_SALT','yourdomain_id'); // Cache partition identifiers accelerate CDN identification of regional traffic characteristics...
“`
For further details on the technical implementation of a specific payment channel or if you encounter a specific error code problem, you can provide a more specific description of the scenario to continue the discussion.