Skip to main content

VNPAY

This plugin lets your customers in Vietnam pay on the payment page of VNPAY, which reaches every Vietnamese bank: domestic ATM cards and internet banking, VNPAY-QR scanned from the customer's banking app, and international cards (Visa, Mastercard, JCB...), in Vietnamese dong.

Features
  • Sends the customer, at the end of the checkout, to the payment page of VNPAY, where they choose how to pay, or straight to one way of paying (VNPAY-QR, domestic card or bank account, international card). Create several VNPAY payment methods in HikaShop to show them as separate choices at your checkout.
  • Confirms the order on its own when VNPAY tells your shop the payment is made (VNPAY's IPN), even when the customer closes the browser before coming back.
  • When the customer comes back paid and VNPAY's message has not arrived, the plugin asks VNPAY for the state of the payment before confirming the order.
  • A failed or cancelled payment sets the order's invalid status and shows VNPAY's reason; the customer can pay again from the order page.
  • Refunds the whole payment at VNPAY when you give the order the refunded status.
  • A "Check the payment at VNPAY" button on the order in your backend asks VNPAY where the payment stands, and confirms the order when it is paid.
  • Every message from VNPAY is checked with your hash secret, and its terminal, order reference and amount against what was sent, before the order changes.
  • The payment page of VNPAY is shown in Vietnamese for a Vietnamese shop language, in English otherwise.
  • Works with VNPAY's sandbox and its test cards, so you can try everything before going live.
  • In English, French and Vietnamese.
The payment page of VNPAY for an order, with the Vietnamese banks to pay with a domestic card or bank account How it works
  • 1. The customer chooses VNPAY at the checkout of an order in Vietnamese dong and confirms the order.
  • 2. The customer is sent to the payment page of VNPAY, chooses how to pay and pays (with the OTP of their bank for a domestic card).
  • 3. VNPAY tells your shop the result, and the order is confirmed, with the usual confirmation email.
  • 4. The customer comes back to the thank you page of your shop, or, when the payment failed, to the order with VNPAY's reason.
Installation
  • 1) Have a VNPAY merchant account: VNPAY sends the terminal code (vnp_TmnCode) and the hash secret (vnp_HashSecret) by email, with the production address of its payment page. For tests, register a test merchant on sandbox.vnpayment.vn/devreg: its terminal code and secret arrive by email too.
  • 2) Install this plugin with the Joomla extension manager and enable it.
  • 3) In HikaShop, make sure your shop sells in Vietnamese dong (VND): the method only shows for orders in VND.
  • 4) In HikaShop, go to System > Payment methods, click New and choose the VNPAY plugin.
  • 5) Choose the environment, fill in the terminal code and the hash secret, publish the method and save.
  • 6) Copy the IPN URL shown in the settings and register it for your terminal: in VNPAY's merchant admin when it offers the field, or by sending it to VNPAY with your terminal code. VNPAY does not take it with each payment. Your shop must be reachable from the internet, with HTTPS.
  • 7) For the live environment, send us the production address VNPAY gave with your contract if the method stays hidden: it is set in the plugin without a new version.
The settings of the VNPAY payment method in HikaShop Configuration
  • Environment: Test sends the payments to VNPAY's sandbox, where nothing is charged; Live to the production host of your contract. Use the terminal code and hash secret of the same environment.
  • Terminal code (vnp_TmnCode): the 8 letters and digits of your terminal.
  • Hash secret (vnp_HashSecret): the secret key which signs every message between your shop and VNPAY.
  • Payment method: "Let the customer choose on VNPAY's page", or one way of paying the customer goes straight to: VNPAY-QR, domestic ATM card or bank account, international card.
  • Goods category (vnp_OrderType): the category of VNPAY's list for what your shop sells, as declared to VNPAY. Empty: other.
  • Minutes to pay: how long VNPAY's page stays open for an order, from 1 to 1440. Empty: 15.
  • IPN URL: the address to register with VNPAY (step 6), shown for information. It cannot be changed.
  • Debug: writes every payment sent, every message of VNPAY and every call to VNPAY to the payment log of HikaShop.
  • Pending status: the status of an order VNPAY debited but holds as suspected fraud (code 07), until you check it in VNPAY's merchant admin, "pending" by default.
  • Invalid status: the status of an order whose payment failed or was cancelled, "cancelled" by default.
  • Verified status: the status of a paid order, "confirmed" by default.
  • Refunded status: giving a paid order this status refunds its whole payment at VNPAY, "refunded" by default.
Troubleshooting
  • VNPAY's page says "Invalid signature" (code 70): the hash secret does not match the terminal code, or they belong to the other environment.
  • VNPAY's page says "The bank is not support for this website": the way of paying chosen in the Payment method setting is not open on your terminal. Ask VNPAY to open it, or let the customer choose on VNPAY's page.
  • The method does not show at the checkout: the cart is not in Vietnamese dong, the terminal code or the hash secret is missing, or, on the live environment, the production host is not set yet.
  • Orders stay unpaid although the customer paid: VNPAY cannot reach your IPN URL (not registered for the terminal, a local address, a firewall, no HTTPS). Use the "Check the payment at VNPAY" button on the order.
  • The customer cannot pay again from the order after a failed payment: HikaShop only lets the customer pay orders in an unpaid status (the "created" status by default). Choose "created" as the invalid status, or add the invalid status to the unpaid statuses of the HikaShop configuration.
  • The "Check the payment at VNPAY" button says VNPAY did not answer (Request is duplicated): VNPAY answers about the same payment only once every few minutes. Check again five minutes later.
  • "The status was not changed: VNPAY did not refund the payment", with "Too many refund count": the payment was already refunded, for example from VNPAY's merchant admin. Set the status without the refund, or check the refund there.
  • VNPAY takes no payment under 5,000 VND: such an order is refused before the customer leaves your shop.
Use
  • Compatible with all the editions of HikaShop
  • Requires a VNPAY merchant account (a business in Vietnam) for real payments
  • Requires a shop selling in Vietnamese dong (VND)
  • Requires a shop reachable from the internet with HTTPS, so that VNPAY can send its notifications
  • Requires the PHP cURL extension
  • Compatible with Joomla and WordPress
  • No limit of time
  • No limit of use
Changelog

1.0.0 on the 12th of October 2026

  • First version.
€ 30,00
VNPAY
The add to cart button will appear once you select the values above
Type
Payment plugin

Access to updates included for 4 years

A tax rate (between 17% and 27% based on your country) will be added if your address is in the European Union and that you don't provide a valid VAT number or if your address is in France as per the European Union law.