AMSites Payment Gateway is a modern WooCommerce payment solution designed for businesses in Pakistan. Accept payments through multiple local payment gateways — including JazzCash, Easypaisa, Direct Bank Transfer, and future payment providers such as Raast — from a single, easy-to-use interface.
The plugin is lightweight, secure, developer-friendly, and built following WordPress coding standards.
Payment methods included in this release
On WooCommerce > Settings > Payments this plugin adds exactly one row: “AMSites Payment Gateway” (Enable/Manage/Disable, exactly like any other WooCommerce gateway). Clicking Manage opens one settings screen with a dropdown to select and configure each payment method — add more methods later and they simply appear as additional dropdown options:
- JazzCash — shared Merchant ID, Password, Integrity Salt and Sandbox/Live mode, entered once and used by all three JazzCash API methods below, plus a master Enable/Disable for JazzCash as a whole.
- JazzCash Mobile Account (mobile wallet balance)
- JazzCash Credit/Debit Card (Visa, Mastercard, via JazzCash’s hosted payment page, including 3-D Secure)
- JazzCash Over-the-Counter Voucher (cash payment at any JazzCash outlet)
- JazzCash QR Payment (manual — customer scans your JazzCash QR code, pays, and enters a Transaction ID for you to confirm; no merchant API account needed)
- Easypaisa QR Payment (manual — same flow as above, for Easypaisa)
- Direct Bank Transfer (manual/offline bank deposit, with support for listing multiple bank accounts)
Every method has its own Enable/Disable switch and its own Checkout Icon setting: pick an image from your WordPress Media Library, or choose and recolour one of 35+ bundled preset payment icons (card/wallet/bank/general) — shown before or after the payment method title, your choice.
Coming in future updates
- Easypaisa live API integration (Mobile Account/Card, beyond today’s manual QR option)
- Raast (State Bank of Pakistan’s instant payment system)
Why this plugin
- PCI-DSS friendly by design. JazzCash card and mobile account credentials are entered on JazzCash’s own hosted payment page — your server never receives, stores, or transmits cardholder data.
- Secure Hash on every request and response. Every outgoing JazzCash request and every inbound callback is signed and verified with HMAC-SHA256, exactly as specified in the JazzCash integration guide. Responses that fail verification are rejected and never applied to an order.
- Sandbox Mode built in. Flip a single checkbox per JazzCash gateway to test end-to-end against the JazzCash Sandbox before going live — no code changes required.
- Clean, modern codebase. 100% object-oriented, PSR-4 autoloaded, namespaced, and built strictly against the WordPress Plugin/WooCommerce Payment Gateway APIs. No inline CSS/JS, no direct file access, all output escaped, all input sanitized and validated.
- HPOS ready. Declares compatibility with WooCommerce’s High-Performance Order Storage. Uses the classic (shortcode) checkout — the block-based Cart/Checkout is not yet supported, so gateways will not appear there until a dedicated Blocks integration ships in a future release.
- One plugin, one settings area. All local payment methods for your store live under WooCommerce > Settings > Payments, instead of juggling several separate plugins.
How it works (JazzCash)
- The customer chooses Card, Mobile Account, or Voucher at WooCommerce checkout.
- They’re redirected to JazzCash’s secure hosted page to authorize payment (or, for vouchers, to receive a 12-digit voucher number by SMS).
- JazzCash posts the signed result back to your store, the Secure Hash is verified, and the order is updated automatically — no manual reconciliation.
- For vouchers paid later at a JazzCash outlet, an Instant Payment Notification (IPN) webhook updates the order the moment JazzCash confirms settlement.
How it works (Direct Bank Transfer)
- The customer chooses Direct Bank Transfer at checkout and places the order.
- The order is placed on-hold and the customer sees your configured bank account details on the order confirmation page and in their confirmation email.
- Once you confirm the funds have arrived in your account, you manually mark the order as Processing/Completed from the WooCommerce Orders screen.
Requirements
- WooCommerce 7.0+
- For JazzCash: a JazzCash Merchant account (Sandbox account is free — see Getting Started) and store currency set to PKR
- The classic (shortcode) checkout. If your theme/setup uses the WooCommerce Cart & Checkout Blocks, switch that page back to the classic
[woocommerce_checkout] shortcode — block-based checkout support is not yet included in this release.
External services
This plugin connects to JazzCash’s hosted payment page (Sandbox: https://sandbox.jazzcash.com.pk/CustomerPortal/transactionmanagement/merchantform/, Live: https://payments.jazzcash.com.pk/CustomerPortal/transactionmanagement/merchantform/) to process JazzCash Card, Mobile Account, and Over-the-Counter Voucher transactions — this is required for the plugin’s core purpose, as WooCommerce cannot process JazzCash payments without it. It sends the order amount, currency (PKR), a merchant-generated transaction reference number, the WooCommerce order number, a fixed order-description string, a request timestamp/expiry, your store’s configured Merchant ID and Return URL, and (for Mobile Account/Voucher only) your configured Bank ID and Product ID, each time a customer submits checkout using a JazzCash payment method. No customer name, email, phone number, or billing address is sent. The customer’s browser is then redirected to JazzCash’s own hosted page to enter card or mobile account credentials directly with JazzCash; those credentials never pass through this plugin or your server. JazzCash sends a signed result back to your store’s Return URL and IPN endpoint to confirm or reject the payment. This service is provided by JazzCash (Private) Limited / Mobilink Microfinance Bank: Terms & Conditions, Privacy Notice.
The Direct Bank Transfer method is a manual/offline payment method and does not connect to any external service.