Back

VibeFox iPay88 for WooCommerce — Help

Requirements

WordPress: 6.0 or later.

WooCommerce: 7.0 or later, installed and active. Without WooCommerce the plugin refuses to activate.

PHP: 8.0 or later.

iPay88 merchant account: the Merchant Code and Merchant Key are issued by iPay88 when your merchant account is activated. They are also shown in the iPay88 merchant portal. If you are not a merchant yet, apply on the iPay88 website. Keep the Merchant Key secret: it signs the payments.

Request URL: your website address must be registered with iPay88 as the request URL. Otherwise the iPay88 page shows "Permission not allow".

Store currency: Malaysia — MYR, and USD, SGD, AUD, CAD, EUR, GBP, HKD, CNY, TWD, INR, IDR, PHP or THB if the multi-currency option is enabled on your iPay88 account; Philippines — PHP or USD; Indonesia — IDR; Thailand — THB.

VibeFox license key: bought on vibefox.net. One key works on one domain.

Installation

1. In WordPress go to Plugins > Add New > Upload Plugin, choose the plugin ZIP file and click Install Now. You can also upload the wcp_ipay88_payment folder to /wp-content/plugins/ by FTP.

2. Click Activate.

3. Open the settings: WooCommerce > Settings > Payments > iPay88 > Manage, or click Settings under the plugin name on the Plugins page.

4. Enter your VibeFox license key in the license block at the top of the page and click Activate.

5. Choose your iPay88 region and enter the Merchant Code and Merchant Key (see Configuration).

6. Turn on Enable/Disable. To check the setup, make a payment with Test mode on, then turn test mode off.

Configuration

All settings are on one page: WooCommerce > Settings > Payments > iPay88. Above the fields the page warns you when the Merchant Code or Merchant Key is missing (the payment method is then not shown at checkout), when the store currency cannot be charged in the selected region, and while test mode is on. In the list of payment methods, iPay88 is marked as needing setup until both keys are entered, and shows a test mode badge while test mode is on.

General

Enable/Disable: Enable iPay88 Payment Gateway turns the payment method on or off. Default: off.

Title: the payment method name customers see at checkout. Default: iPay88.

Description: the text shown under the payment method at checkout. Default: Pay securely via iPay88 (credit card, online banking, e-wallet).

iPay88 account

iPay88 region: the country of your iPay88 merchant account. It selects the iPay88 payment page and the currencies that can be charged. The order is always charged in its own currency. Default: Malaysia.

Malaysia (payment.ipay88.com.my): MYR, and the other currencies listed in Requirements if multi-currency is enabled on your account.
Philippines (payment.ipay88.com.ph): PHP, USD.
Indonesia (payment.ipay88.co.id): IDR, sent without decimals.
Thailand (payment.ipay88.co.th): THB.

Merchant Code: your iPay88 Merchant Code, for example M01234.

Merchant Key: your iPay88 Merchant Key. It signs payment requests and verifies iPay88 responses. Keep it secret.

Signature type: how payment requests are signed. Responses are verified in both formats.

SHA256 (recommended): the current iPay88 specification (default).
SHA1 (legacy): choose it only if iPay88 asked you to use the legacy signature.

Payment

Payment method: pre-select one iPay88 payment method from the Malaysian PaymentId list, or leave Let the customer choose on the iPay88 page (default). The list includes Credit Card (MYR), FPX (Online Banking), Maybank2U, Alliance Online, AmBank, RHB Bank, Hong Leong Bank, CIMB Clicks, Web Cash, PayPal (MYR), Credit Card (PHP), Boost, Touch n Go eWallet, GrabPay and ShopeePay.

Reference prefix: optional. Added before the order number in the iPay88 reference (RefNo), for example SHOP1-. Set a different prefix in every store that uses the same iPay88 account, so that a response of one store can never be applied to an order of another. Letters, digits, "-" and "_", up to 10 characters. A prefix that ends with a digit is corrected when you save, because the order number is read from the end of the reference.

Test mode: Charge a fixed test amount instead of the order total. iPay88 has no separate sandbox: test payments are real transactions on the live iPay88 page with a small amount (1.00; IDR 10,000). The order is marked as paid when the test amount is received, and the order note says so. While test mode is on, the checkout shows TEST MODE: only a test amount of ... will be charged. Never leave test mode on in a live store. Default: off.

Response and backend URLs

The plugin sends both URLs with every payment, so there is nothing to configure. If iPay88 asks for them, copy them from this section of the settings. They look like https://your-site/wc-api/ipay88_p_response/ (Response URL, the customer's return) and https://your-site/wc-api/ipay88_p_backend/ (Backend URL, the server-to-server notification). The section also shows your website address, which must be registered with iPay88 as the request URL.

Both answers from iPay88 are checked the same way: the signature made with your Merchant Key, the reference of a payment this store started for this order, the amount and the currency. Requests without a valid signature are rejected and never change an order. The backend notification is answered with RECEIVEOK only after it was processed. Otherwise iPay88 sends it again. iPay88 reports these payment statuses:

1 (success): the payment was made. The order is marked paid after the amount and currency check.
6 (pending): the payment is still waiting, for example an ATM or virtual account transfer. The order is put on hold until iPay88 confirms or fails it.
Any other status: the payment failed or was cancelled. The order becomes Failed with the iPay88 reason.

Advanced

Debug log: Log payment requests and iPay88 responses in WooCommerce > Status > Logs, source wcp_ipay88_payment, without personal data or signatures. Errors are always logged. Default: off.

Delete data on uninstall: Delete the settings, logs and iPay88 order data when the plugin is deleted. Orders themselves are never deleted. Default: off.

Checkout

The customer chooses the payment method (by default iPay88) and places the order. The order stays Pending payment, and the customer sees Redirecting to iPay88 payment gateway... while a form is sent to the iPay88 payment page of your region. Without JavaScript the customer clicks Pay Now. The order items, the customer's name, e-mail and phone are passed to iPay88. On the iPay88 page the customer pays by card, FPX online banking, e-wallet or another method your account offers.

After paying, the customer returns to the order received page of your store. The order is marked paid only after iPay88 confirms it with a signed response, either on the customer's return or by the backend notification. If the confirmation has not arrived yet, the page shows We have not received the payment confirmation from iPay88 yet. If you completed the payment, your order will be updated shortly. For a pending payment it shows Your payment is pending confirmation from iPay88. We will update your order as soon as the payment is confirmed.

If the payment failed or was cancelled, the customer lands on the Pay for order page with The payment was not completed: and the iPay88 reason, and can pay again or choose another payment method. If the response cannot be verified, the customer sees The payment response could not be verified. If you completed the payment, please contact us with your order number — the payment will be checked manually. with a link back to the store.

Stock is reduced when the payment is confirmed, not when the customer is redirected. The payment method works on the classic checkout, on the Checkout block and on the Pay for order page. It is compatible with WooCommerce High-Performance Order Storage (HPOS).

The plugin takes one-time payments only. It has no refunds from WooCommerce, saved cards, subscriptions, pre-authorisation and capture, or card fields on your site. It does not re-query iPay88 for the payment status: orders are updated only by the iPay88 response and the backend notification. iPay88 Indonesia API 2.0 (JSON / payment link) is not used.

Orders

Order statuses

Pending payment: the customer was sent to iPay88 and has not paid yet, or iPay88 has not confirmed the payment yet.

Processing or Completed: the payment was confirmed. WooCommerce sets the usual status for a paid order. The order note shows the iPay88 TransID, PaymentID, amount and currency. The transaction ID is the iPay88 TransID. In test mode a second note says that the test amount was charged instead of the order total.

On hold, pending at iPay88: iPay88 reported the payment as pending. The order is updated when iPay88 confirms or fails the payment.

On hold, for review: iPay88 reported a successful payment with a different amount or currency than the order, or the payment arrived after the order had been cancelled. The order was not marked as paid. The order note explains it. Check the payment in the iPay88 portal and fulfil the order or refund the payment.

Failed: the payment failed or was cancelled. The note shows the iPay88 reason. The customer can pay again.

If another successful payment arrives for an order that is already paid or refunded, the order is not changed. A note asks you to check it in the iPay88 portal and refund it if it is a duplicate. A failed answer never changes a paid, refunded or cancelled order.

Refunds

Refunds are not sent to iPay88 from WooCommerce. Refund the payment in the iPay88 merchant portal and record the refund in WooCommerce manually.

License key

The plugin works with a VibeFox license key from vibefox.net. The license block is at the top of WooCommerce > Settings > Payments > iPay88. Paste the key into License key and click Activate. The block shows the status, for example the date the license is active until and your domain. Use Check now to check the status again, Change key to enter another key and Remove key to remove it from this site. The link Manage licenses and domains in your account opens your vibefox.net account.

One key works on one domain. Removing the key from a site does not free its domain slot. Free the slot in your vibefox.net account.

Without an active key, iPay88 is not shown to customers at checkout. If a payment is started anyway, the customer sees This payment method is not available. Please choose another one. Logged-in store managers still see the payment method, marked (unlicensed — visible to admins only), so you can set up and test the plugin before you buy a key. A reminder appears on the Plugins page and on WooCommerce pages. Existing orders are not affected: payments already started are still confirmed.

When a license expires, the plugin keeps working, but updates and support need a renewal. The status is checked again automatically in the background.

Troubleshooting

iPay88 does not appear at checkout: check that the license is active, Enable/Disable is on, the Merchant Code and Merchant Key are entered, and the store currency can be charged in the selected iPay88 region. The settings page shows a warning when something is missing.

The payment went through, but the order stays Pending payment: neither the customer's return nor the backend notification reached your store with a valid signature. Turn on Debug log and look at WooCommerce > Status > Logs, source wcp_ipay88_payment. Check that the Merchant Key is exactly the one iPay88 gave you and that your site can receive requests from iPay88 at the Backend URL shown in the settings.

The iPay88 page shows "Permission not allow": your website address is not registered with iPay88 as the request URL. Ask iPay88 to register the address shown in the Response and backend URLs section.

Backend notification answers BAD SIGNATURE: the signature does not match the Merchant Key. Check the Merchant Key.

Backend notification answers NOT CONFIGURED: the Merchant Code or Merchant Key is not set, so the response cannot be verified. iPay88 sends the notification again.

Backend notification answers UNKNOWN ORDER: no iPay88 payment was started for this reference on this store, for example because another store with the same account uses no Reference prefix or the same one.

Order is On hold with a note about the amount or currency: iPay88 reported a payment that does not match the order, or the order had been cancelled. The order was not marked as paid. Check the payment in the iPay88 portal and complete or refund it.

The customer sees "iPay88 cannot accept payments in" a currency: the order currency cannot be charged in the selected region. On iPay88 Malaysia, currencies other than MYR also need the multi-currency option on your iPay88 account.

Real customers are charged only 1.00: Test mode is on. Turn it off.

The license block shows an error: follow the message in the block. For example, if the key is already used on another domain, free a slot in your vibefox.net account and click Check now. If the site address changed, click Check now to activate the key for the new domain. If the license server cannot be reached, the plugin keeps working on the last known status.

Developers can change the payment page URL, the currencies, the decimals, the test amount and the icon with the filters ipay88_p_payment_url, ipay88_p_supported_currencies, ipay88_p_currency_decimals, ipay88_p_test_amount and ipay88_p_icon.

Uninstall

Deactivating the plugin keeps all data. To remove it, deactivate and delete it on the Plugins page. The license key and license status of this plugin are always removed. The gateway settings, the logs and the iPay88 data stored on orders are removed only if Delete data on uninstall was on. Otherwise they stay for a later re-install. Orders themselves are never deleted and keep their payment notes and transaction IDs.

iPay88 is a trademark of its respective owner. This plugin is not affiliated with or endorsed by iPay88.