VibeFox 2C2P for WooCommerce — Help
Requirements
WordPress: 5.8 or later.
WooCommerce: 6.0 or later, installed and active. Without WooCommerce the plugin shows a notice in the admin area and the payment method is not loaded.
PHP: 8.0 or later.
2C2P account: you need the Merchant ID and Secret Key of your 2C2P merchant account. They are issued by 2C2P when your merchant account is opened. Sandbox and live accounts have different keys. Developer documentation and sandbox test cards are on developer.2c2p.com.
Currency: the store currency must be supported by the plugin and enabled on your 2C2P account. Supported are, among others, THB, SGD, MYR, PHP, IDR, VND, MMK, KHR, LAK, CNY, HKD, TWD, JPY, KRW, INR, AUD, NZD, USD, EUR and GBP. If the store currency is not supported, the payment method is hidden at checkout.
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_2c2p_payment folder to /wp-content/plugins/ by FTP.
2. Click Activate.
3. Open the settings: WooCommerce > Settings > Payments > 2C2P > 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. Enter your sandbox Merchant ID and Secret Key, turn on Enable/Disable and place a test order.
6. When you are ready, enter the live credentials and untick Sandbox Mode.
The return and notification URLs are sent with every payment. Nothing has to be configured in the 2C2P portal.
Configuration
All settings are on one page: WooCommerce > Settings > Payments > 2C2P. Above the fields the page shows Sandbox mode is active. No real transactions will be processed. while sandbox mode is on. It warns you when the gateway is enabled but the Merchant ID or Secret Key of the current mode is empty, and when the store currency is not supported. In both cases the payment method is hidden at checkout. When you save with Sandbox Mode off, the plugin asks for the live Merchant ID and Secret Key if they are empty.
General
Enable/Disable: Enable 2C2P Payment Gateway turns the payment method on or off. Default: off.
Title: the payment method name customers see at checkout. Default: 2C2P Payment.
Description: the text shown under the payment method at checkout. Default: Pay securely via credit/debit card, e-wallet, or internet banking through 2C2P. In sandbox mode (TEST MODE) is added to it.
Test mode (sandbox)
Sandbox Mode: Enable sandbox / test mode sends payments to the 2C2P sandbox (demo2.2c2p.com) with the sandbox credentials below. Default: on. Untick it to take real payments.
Sandbox Merchant ID: your sandbox 2C2P Merchant ID.
Sandbox Secret Key: your sandbox 2C2P Secret Key.
Live API Credentials
Used when sandbox mode is off.
Merchant ID: your live 2C2P Merchant ID. Required when sandbox mode is off.
Secret Key: your live 2C2P Secret Key. Required when sandbox mode is off. The key is saved exactly as entered, including quotes and backslashes.
Payment page
This section shows, for reference, the frontend return URL (https://your-site/?wc-api=tc2p_p) and the backend notification URL (https://your-site/?wc-api=tc2p_p&tc2p_p_s2s=1). They are sent with every payment automatically.
Payment Page Language: the language of the 2C2P payment page. Default: English.
Redirect API version: keep 8.5 unless 2C2P told you that your account still uses the old version 7.0 (SHA-1 signatures). Results of payments started before a switch are still verified.
Order ID prefix: optional, letters and digits only (max 10), for example SHOP1. 2C2P rejects an order ID it has already seen. Set a unique prefix when several shops share one 2C2P account, and in the sandbox, where test merchant accounts are shared. Other characters are removed when you save, with a warning.
Advanced Settings
Enable Logging: Log 2C2P events writes to WooCommerce > Status > Logs, source wcp_2c2p_payment. No card data or secret keys are logged. Default: off.
Delete Data on Uninstall: Delete the gateway settings, 2C2P order meta and log files when the plugin is deleted. Default: off.
Checkout
The customer chooses the payment method (by default 2C2P Payment) and places the order. The next page shows Thank you for your order. You will be redirected to 2C2P to complete your payment. and sends the customer to the 2C2P payment page after a moment. If that does not happen, the customer clicks Pay via 2C2P. The page also has a Cancel order button.
On the 2C2P page the customer pays with any method enabled on your 2C2P account, for example cards, e-wallets, QR payments, internet banking or cash payments. The plugin passes the order total in the order currency, the customer's billing e-mail and the names of the ordered products. The payment can be completed within 24 hours.
2C2P reports the result twice: the customer's browser comes back to the store, and 2C2P sends a server-to-server notification. Both are handled the same way. The order is marked paid only after 2C2P confirms it with a valid signature. The result must also belong to the order: the merchant ID, order key, order ID and payment method are checked. Results without a valid signature are rejected.
After a successful or pending payment the customer lands on the order received page and the cart is emptied. If the payment was not completed, the customer returns to the checkout with the message Payment was not completed. Please try again or choose a different payment method. The order is cancelled, the cart is kept, and the customer places a new order. If the result cannot be confirmed, the customer sees We could not confirm the payment result. If your account was charged, please contact us before paying again.
The payment method works on the classic checkout and on the Checkout block. It is compatible with WooCommerce High-Performance Order Storage (HPOS).
The plugin has no refunds from WooCommerce, no saved cards, no recurring payments or WooCommerce Subscriptions, no card fields on your site and no support for the 2C2P PGW 4.x API.
Orders
Order statuses
Pending payment: the customer was sent to 2C2P and no result has arrived yet.
Processing or Completed: 2C2P reported a successful payment (status 000). WooCommerce sets Processing, or Completed for orders with only virtual downloadable products. The order note shows the 2C2P transaction, approval code, date and payment channel. The transaction ID is the 2C2P transaction reference.
On hold: the payment is pending at 2C2P (status 001), for example a cash payment the customer has not paid yet. The order becomes paid when 2C2P reports the payment. An order is also put on hold when 2C2P reports a different amount or currency than the order total. The order note shows the received and expected values. Check the order and the transaction in the 2C2P portal.
Cancelled: the payment was rejected, cancelled by the customer or failed (statuses 002, 003, 999). The order note shows the status and reason.
A paid or refunded order is never changed by a later result, and a repeated old result does not re-open an order you cancelled.
Refunds
Refunds from WooCommerce are not supported. Refund the payment in the 2C2P merchant portal, then create a manual refund in WooCommerce.
License key
The plugin works with a VibeFox license key from vibefox.net. The license block is at the top of WooCommerce > Settings > Payments > 2C2P. 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, 2C2P 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
2C2P does not appear at checkout: check that the license is active, Enable/Disable is on and the current mode has a Merchant ID and Secret Key: the sandbox fields in sandbox mode, the live fields in live mode. Check that the store currency is supported. The settings page shows a warning in both cases.
The payment went through, but the order stays Pending payment: no valid result reached your store. Check that the Merchant ID and Secret Key of the current mode match the 2C2P account the payment was made with, and that Redirect API version matches your account. A result with a wrong signature or for another merchant ID is rejected. Turn on Enable Logging and look for hash or merchant ID messages in WooCommerce > Status > Logs. Check also that your server accepts requests from 2C2P to the backend notification URL.
2C2P says the order ID already exists: 2C2P does not accept the same order ID twice. This happens when several shops share one 2C2P account or in the sandbox, where demo merchant accounts are shared by many developers. Set a unique Order ID prefix.
A payment was made but the order is On hold: either the payment is still pending at 2C2P (for example a cash payment that the customer has not paid yet), or the paid amount or currency did not match the order. Check the order notes and the transaction in the 2C2P portal.
The customer sees This payment method is currently unavailable for this order: the order currency is not supported, or the Merchant ID or Secret Key of the current mode is empty.
Please enter your live Merchant ID or Please enter your live Secret Key on save: sandbox mode is off and a live field is empty. Enter the live credentials or keep Sandbox Mode on.
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.
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 2C2P data stored on orders and the log files are removed only if Delete Data on Uninstall was on. Otherwise they stay for a later re-install. Existing orders keep their payment notes and transaction IDs.
2C2P is a trademark of its respective owner. This plugin is not affiliated with or endorsed by 2C2P.
