Skip to main content
Version: 2.0.0

GP WebPay

YuiCraftGpWebpay adds Global Payments (GP WebPay) as an online payment gateway for stores running YuiCraftPlugin.

When enabled and correctly configured, it registers one payment method in checkout:

  • gpwebpay (standard payment)

If subscriptions are enabled, it also registers:

  • gpwebpay-subscription (recurring/subscription flow)

Use case

Use this plugin when a store needs to accept card payments through GP WebPay (Global Payments), the PSP commonly contracted by merchants in Slovakia/Central Europe. It covers two scenarios:

  • One-off card payment: customer pays once at checkout and is redirected to GP WebPay's hosted payment page, then returned to the store.
  • Recurring/subscription payment: customer authorizes a first charge, and the store's cron-driven console command charges subsequent installments automatically. GP WebPay confirms each charge asynchronously through a signed webhook, and the customer can self-manage (view/cancel/keep) their subscription from the storefront.

If a store only needs one-off payments, subscriptions can stay disabled — the plugin behaves as a plain payment gateway with no recurring infrastructure exposed.

For the underlying services, events, console command, and webhook contract, see Developer.

Where admins work with this plugin

In Craft CP, open:

  1. Yui -> Payment methods
  2. Yui -> Payment plugins
  3. GP WebPay

The plugin settings screen is available at gpwebpay/settings.

What this plugin does in checkout

During order placement:

  1. Store checkout selects GP WebPay method.
  2. Plugin prepares payment request data from order + items.
  3. Customer is redirected to GP WebPay hosted payment page.
  4. Store processes payment callback and updates payment result.

For pending payments, admins can run a manual status check from plugin settings (Check Payments button).

Customer/storefront perspective

One-off payment:

  1. Customer selects the GP WebPay method at checkout (label and button text come from the General settings tab).
  2. On confirming the order, the customer is redirected to GP WebPay's hosted payment page — card details are entered there, never on the store.
  3. GP WebPay redirects the customer back to the store's success or failure page depending on the result.

Subscription payment (only when Enable Subscriptions is ON):

  1. Customer selects the gpwebpay-subscription method, authorizes the first charge on GP WebPay's page the same way as a one-off payment.
  2. Subsequent charges happen automatically; the customer is not redirected again unless a retry requires re-authorization.
  3. Logged-in customers can view their subscriptions at gpwebpay/subscriptions (JSON endpoint consumed by the storefront), and can cancel (gpwebpay/subscription/cancel) or keep/reactivate (gpwebpay/subscription/keep) a subscription that is pending cancellation. Both actions require the customer to be logged in and to own the subscription.

A canceled subscription still honors payments already due before the cancellation takes effect; the store surfaces this via the subscription status (active, past_due, retrying, paused, canceling, canceled, expired).

Dependencies and integration notes

  • This plugin is an extension of the main store plugin and depends on store payment/order infrastructure.
  • The payment method is registered only when plugin setting enabled is turned on.
  • Currency mapping uses store helpers (ISO 4217 conversion) from the main store plugin.

Before going live

Complete this checklist:

  1. Enable sandbox mode.
  2. Save merchant number and key file paths/password.
  3. Run Test Credentials in plugin settings.
  4. Place one successful test order.
  5. Place one declined test order.
  6. Confirm order/payment status behavior in admin Orders.
  7. Switch to live credentials and disable sandbox mode.

Quick setup example (sandbox)

Use this as a baseline configuration for first test run:

  • Enable GP WebPay: ON
  • Enable Sandbox Mode: ON
  • Merchant number: value from GP WebPay test account
  • Public key file path: /web/gpwebpay/gpe.signing_test.cer
  • Private key file path: /web/gpwebpay/gpwebpay-pvk.key
  • Private key password: test key password from GP WebPay
  • Default currency: EUR (or your contracted currency)
  • Default language: sk-SK (or your checkout language)

Then:

  1. Click Save.
  2. Click Test Credentials.
  3. Place a checkout order using GP WebPay.
  4. Verify order payment transaction data and final order status.

Checkout examples for admins

Example customer-facing values in checkout:

  • Display name: Card payment (GP WebPay)
  • Button name: Pay now
  • Instructions: After clicking Pay now, you will be redirected to secure GP WebPay page.

Subscription mode example:

  • Subscription display name: Card payment - recurring
  • Subscription button name: Start subscription
  • Subscription instructions: You will authorize recurring card payment on GP WebPay page.

Operational checks after deployment

After enabling live mode, verify:

  1. GP WebPay appears in checkout only where expected (country/time restrictions).
  2. Successful payment returns customer to success page and order is not stuck in pending_payment.
  3. Failed payment returns to failed flow and order is not auto-fulfilled.
  4. Check Payments can be used by admin for delayed state recovery.

Known operational limits

  • Check Payments currently focuses on orders in pending_payment status.
  • Internal payment-status verification logic exists but parts are still marked as TODO in plugin code.
  • Always verify final payment state in order/payment transaction records before manual fulfillment.

See also

  • Settings — every configuration field and admin action.
  • Release Notes — what changed in each version.
  • Developer — services, webhook contract, console command, and MCP tools.