VibeFox iPay88 for PrestaShop — Help
Requirements
PrestaShop: 8.0 to 9.x.
PHP: 8.0 or later. The module refuses to install on older PHP versions.
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. iPay88 has no separate sandbox, so there are no test keys.
Request URL: your website address must be registered with iPay88 as the request URL. Otherwise the iPay88 page shows "Permission not allow".
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. If the cart currency cannot be charged in your region, the payment method is hidden at checkout.
VibeFox license key: bought on vibefox.net. One key works on one domain.
Installation
1. In the back office go to Modules > Module Manager and click Upload a module. Choose the module ZIP file.
2. When the upload finishes, click Configure, or find VibeFox iPay88 Payment in the module list later and click Configure.
3. Paste your VibeFox license key into License key in the license block at the top of the Configure page and click Activate (see License key).
4. Choose your iPay88 region, enter the Merchant Code and Merchant Key, turn on Enable/Disable and click Save.
5. To check the setup, make a payment with Test mode on, then turn test mode off.
On install the module creates two order statuses, Awaiting iPay88 payment and iPay88 payment on hold. PrestaShop offers a new payment module for all currencies, countries and customer groups. You can limit them in Payment > Preferences. A country you enable after installing the module must also be ticked for the module there, otherwise customers from that country do not see iPay88. The response and backend URLs are sent with every payment.
Configuration
All settings are on the module page: Modules > Module Manager > VibeFox iPay88 Payment > Configure. Every Save button saves the whole page. Above the fields the page shows Enter the iPay88 Merchant Code and Merchant Key — until then the payment method is not shown at checkout. while a key is missing, a warning when the default currency of the shop cannot be charged in the selected region (the payment method is then hidden at checkout), and a warning while test mode is on.
iPay88
Enable/Disable: Enable iPay88 Payment Gateway turns the payment method on or off. Default: off.
Title: the payment method name customers see at checkout. It is also the payment method name stored in the order. 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.
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. The saved key is never shown again: the field stays empty and shows Saved — leave empty to keep it. Type a new value only to change it. The key is saved exactly as entered, including quotes and backslashes.
Clear saved secret: tick Merchant Key and click Save to remove the saved key. An empty field keeps the saved value.
Signature type: how payment requests are signed. Responses are verified in both formats, so payments started before a switch stay verifiable.
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 cart number in the iPay88 reference (RefNo), for example SHOP1-. Set a different prefix in every shop that uses the same iPay88 account, so that a response of one shop is never applied to a cart of another. Letters, digits, "-" and "_", up to 10 characters. Other characters are removed when you save, and a prefix ending with a digit gets "-" at the end, because the cart number is read from the end of the RefNo. The page then shows the value that was saved. If you move from WooCommerce to PrestaShop with the same iPay88 account, set a prefix so that new references never repeat old order numbers.
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. A payment started in test mode is always checked against the test amount, even if you turn test mode off before iPay88 answers. Never leave test mode on in a live shop. Default: off.
Response and backend URLs
The module sends both URLs with every payment, so there is nothing to configure. If iPay88 asks for them, copy them from this section. With friendly URLs they look like https://your-shop/module/wcp_ipay88_payment/response (Response URL, the customer's return) and https://your-shop/module/wcp_ipay88_payment/backend (Backend URL, the server-to-server notification), possibly with a language code such as /en/. 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 required fields, the signature made with your Merchant Key, and the reference of a payment this shop started for this cart. Responses without a valid signature are rejected and never change a cart or an order. The backend notification is answered with RECEIVEOK only after it was processed. Otherwise iPay88 sends it again. It works while the shop is in maintenance mode and is not blocked by the country restriction of your shop. iPay88 reports these payment statuses:
Advanced
Debug log: logs payment requests and iPay88 responses to logs/ipay88_p_debug.log.php in the module folder. The file cannot be opened from the web. No personal data, Merchant Key or signatures are logged. Errors and warnings are always logged, even when the switch is off. Default: off.
Log: shows the size and the latest entries of the log. Click Clear log to empty it.
Delete data on uninstall: deletes the settings, logs and iPay88 payment data when the module is uninstalled. Orders and order states are never deleted. Default: off.
Checkout
At the payment step the customer chooses the payment method (by default iPay88) and confirms. The next page shows Redirecting to iPay88 payment gateway... and Please do not close this window. while a form is sent to the iPay88 payment page of your region. Without JavaScript the customer clicks Pay Now. No order exists yet at this point. The module passes the cart total in the cart currency (the test amount in test mode), the product names, the customer's name, e-mail and phone. On the iPay88 page the customer pays by card, FPX online banking, e-wallet or another method your account offers.
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. After a successful payment the order is created and the customer sees the standard order confirmation page with Your iPay88 payment has been received. For a pending payment the page shows Your payment is pending confirmation from iPay88. We will update your order as soon as the payment is confirmed. For an order on hold it shows We have received a payment notification from iPay88 and are reviewing it. We will contact you if anything is needed. If the order is in Payment error or was cancelled, it shows The payment was not completed. Please contact us.
If the confirmation is being processed by the backend notification at the same moment, the customer sees We have not received the payment confirmation from iPay88 yet. If you completed the payment, your order will be updated shortly. with the buttons Check again and Back to checkout.
If the payment failed or was cancelled, no order is created and the cart is kept. The customer is back at checkout with The payment was not completed: and the iPay88 reason, followed by You can try again or choose another payment method. Every attempt of the same cart uses the same RefNo. 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 Return to the store button.
If the payment cannot be started, the customer is back at checkout with This payment method is temporarily unavailable. Please choose another payment method. (keys missing or a zero total) or iPay88 cannot accept payments in ... Please choose another payment method. (currency not chargeable in the region). If the cart already has an order (paid or waiting for a pending payment), no second payment form is built and the customer is sent to the order confirmation page.
The module takes one-time payments only. It has no refunds from PrestaShop, 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.
Orders
Order statuses
No order yet: the customer was sent to iPay88 and no result has arrived yet, or the payment failed. Only the cart exists.
Payment accepted: iPay88 reported a successful payment with the expected amount and currency. The payment is recorded with the iPay88 TransId as the transaction ID. A private note shows the TransID, PaymentID, amount and currency. In test mode a second note says that the test amount was charged instead of the order total.
Awaiting iPay88 payment: iPay88 reported the payment as pending. The order moves to Payment accepted when iPay88 confirms it, or to Payment error if it fails.
Payment error: a pending payment then failed. The note shows the iPay88 reason. This cart already has an order, so the customer cannot pay it again and places a new order.
iPay88 payment on hold: 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 note explains it. Check the payment in the iPay88 portal and fulfil the order or refund the payment.
A paid or refunded order is never changed by a later answer. If another successful payment arrives for it, 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. Repeated answers add nothing new.
iPay88 payment block
The order page shows an iPay88 payment block with the RefNo, TransId, status, the requested amount, the amount received, the PaymentId, the AuthCode, the error and the region, and a TEST MODE badge for test payments.
Refunds
Refunds are not sent to iPay88 from PrestaShop. Refund the payment in the iPay88 merchant portal, then record the refund in PrestaShop manually.
License key
The module works with a VibeFox license key from vibefox.net. The license block License — VibeFox iPay88 Payment is the first block on Modules > Module Manager > VibeFox iPay88 Payment > Configure, above the settings. Paste the key into License key and click Activate. After that the block shows the key masked, the status (for example the date the license is active until and your domain) and the buttons Check now to check the status again, Change key to enter another key and Remove key to remove the key from this shop. Below them are the line Product: presta-payment-ipay88 and the link Manage licenses and domains in your account, which opens your vibefox.net account. Only employees with the Configure permission for the module can change the key. The texts of the block follow the back office language (English and Russian are included).
If the key is not accepted, the block says why, for example Key not found, This key belongs to another product, Domain limit reached or License expired on a date. After the shop address changes, or after you free a domain slot in your account, click Check now. If the license server cannot be reached, the module keeps working on the last known status.
One key works on one domain: the domain of the main shop, also in a multistore setup. Removing the key from the shop 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. The PrestaShop storefront does not know that you are logged in to the back office, so the payment method is hidden for you too: you can set up the module before you buy a key, but not test it at checkout. A reminder appears in Modules > Module Manager on the Alerts tab. Existing orders are not affected: payments already started are still confirmed.
When a license expires, the module keeps working, but updates and support need a renewal. The status is checked again automatically while you work in the back office: once a day for the first 14 days after the key is entered, then once a week. No cron job is needed. Uninstalling or resetting the module always removes the license key and license status.
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 cart currency can be charged in the selected iPay88 region. The settings page shows a warning when something is missing. In Payment > Preferences check that the module is allowed for the cart currency, the customer's country and the customer's group.
The payment went through, but no order was created: neither the customer's return nor the backend notification reached your shop with a valid signature. Look at the Log field: errors are always logged. Check that the Merchant Key is exactly the one iPay88 gave you and that your server accepts 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. Nothing was changed.
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 shop, for example because another shop with the same account uses no Reference prefix or the same one, or the iPay88 payment data was deleted on uninstall.
Backend notification answers RETRY: the cart was being confirmed by the customer's return at the same moment, or the order could not be created (for example, the module is disabled). iPay88 sends the notification again.
The Backend URL shows BAD REQUEST in the browser: this is normal. The URL accepts only signed requests from iPay88.
The order is iPay88 payment on hold: iPay88 reported a payment that does not match the order, or the order had been cancelled. Check the order note and the payment in the iPay88 portal, then complete the order or refund the payment.
The customer sees "iPay88 cannot accept payments in" a currency: the cart 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.
Uninstall
Go to Modules > Module Manager, open the menu next to VibeFox iPay88 Payment and choose Uninstall. The license key and license status of this module are always removed. The confirmation says that settings and iPay88 payment data are kept unless Delete data on uninstall is enabled. If it is on, the settings, the logs and the iPay88 payment data are removed. If it is off, everything is kept for a later re-install. The order statuses Awaiting iPay88 payment and iPay88 payment on hold are always kept. Orders are never deleted and keep their payment notes and transaction IDs.
iPay88 is a trademark of its respective owner. This module is not affiliated with or endorsed by iPay88.
