Overview ↑ Back to top
Global Payments is one of Europe’s largest and fastest growing online payment gateways. The WooCommerce Global Payments HPP (formerly “Realex HPP”) plugin allows your customers to pay for their order with a credit or debit card without exposing your server to SSL requirements or costly PCI scans.
Customers can be automatically redirected to Global Payments’s secure payment server, or kept on your site to pay within a hosted iframe form to provide their credit card information and complete the transaction. In either case, their credit card information never touches your server for maximum security. You can provide a customized payment page template to Global Payments to provide a more seamless checkout process, and after payment your customers will have the option to navigate back to your eCommerce site.
Requirements ↑ Back to top
- A Global Payments account
- PHP 5.3+ (You can see this under WooCommerce > Status)
- WooCommerce 2.6.14+
- You must configure referral URLs with Global Payments
Installation ↑ Back to top
- Download the extension from your WooCommerce dashboard
- Go to Plugins > Add New > Upload and select the ZIP file you just downloaded
- Click Install Now, and then Activate
- Go to WooCommerce > Settings > Payments > Global Payments HPP and read the next section to learn how to setup and configure the plugin.
Setup and Configuration ↑ Back to top
You must have an active eCommerce merchant account with Global Payments in order to make use of this plugin. You will also be required to provide Global Payments support (email@example.com) with your referring URL (the URL of your pay pages).
The referring URL will look like this:
https://mysite.com/checkout/* (replace with your site’s URL)
This URL should be sent to Global Payments support as you prepare to accept payments with the plugin.
Extension Settings ↑ Back to top
To configure the plugin, go to WooCommerce > Settings > Payments. You should see “Global Payments HPP” as an option at the top of the screen. Click Global Payments HPP to see the settings.
- Enable / Disable – This will enable the gateway to be used by customers to checkout.
- Title – This is the text shown for the payment during checkout and on the Order Received page.
- Description – This is the text shown under the title during checkout. Limited HTML is allowed. If you enable test mode, this section will also display a notice along with test credit card numbers.
- Card Verification (CSC) – Enable this to require customers to enter their CVV / CV2 (Card Security Code) when checking out. This can be useful if you have requirements in your Global Payments account for CV2 verification.
- Transaction Type – This controls how transactions are submitted to Global Payments. You may choose either “Charge” or “Authorization”. If you select “Authorization”, you must manually capture and settle payments in your Global Payments control panel or on the WooCommerce orders screen after the transaction has been submitted. This defaults to “Charge”.
- Charge Virtual-Only Orders – (Shown if Transaction Type is set to “Authorization”) Enable this to force charges on order containing only virtual items so they’re captured immediately instead of authorized (for example, to grant download access right away)
- Enable Partial Capture – (Shown if Transaction Type is set to “Authorization”) Enable this to allow multiple captures per order. Global Payments allows merchants to capture up to 115% of the order total if using multiple captures.
- Capture Paid Orders – (Shown if Transaction Type is set to “Authorization”) Enable this to automatically attempt to capture transactions when orders change to a paid status.
- Accepted Cards – This controls the card logos that display during checkout. This is purely cosmetic and has no affect on the cards actually accepted by your merchant account.
- Tokenization – Enable this to allow customers to save their payment methods for future use at checkout. This must be enabled if you use Subscriptions or Pre-Orders. You must have Card storage tokenization enabled for your Global Payments account.
- Require Tokenization – (Shown if Tokenization is enabled) Enable this to save all payment methods during checkout. This will disable guest purchasing.
- Detailed Decline Messages – Enable to display detailed messages to customers to provide reasoning for declines when possible instead of a generic error message.
- Debug Mode – Enable this is you are having issues correctly processing transactions. You can either log API requests / responses directly to the checkout / thank you page, save them to the WooCommerce Error Log (found under WooCommerce > Status > Logs) or both. All debugging messages are cleaned of sensitive information before display, but as a best practice, please do not enable this unless you are having issues with the plugin.
- Environment – Switch between “Sandbox” and “Production” credentials. Enable “Sandbox” to send transactions to your Global Payments Sandbox Account. This is an entirely separate sandbox environment that requires a separate login.
- Merchant ID – Your Global Payments Merchant ID, provided by your Global Payments sales rep
- Shared Secret – The shared secret for your account, provided by your Global Payments sales rep
- Rebate Password – The rebate password for your account, provided by your Global Payments sales rep. This is required if you want to process refunds from WooCommerce.
- Default Subaccount – The Global Payments sub account to use for transactions.
- Form URL – Enter a custom form URL if you’re not using the default Global Payments payment forms
- Form Type – Enable “iFrame” if you’d like to show the Global Payments hosted credit card page on the WooCommerce “pay” page (keeping customers on your site for payment). Choose “Redirect” if you’d like to redirect the customer directly to the hosted credit card page from the WooCommerce “checkout” page.
In either case, you must first provide Global Payments with the correct referring URL (ie https://mysite.com/checkout/*) for whitelisting, otherwise Global Payments may reject transactions and your customers may not be able to remit payment.
- Form Language – Allows you to change the Hosted Pay Page form language; defaults to your site language.
- Address Verification Service (AVS) – Enable this to prompt Global Payments to perform an AVS check on the transaction when submitted.
Checkout Template Page ↑ Back to top
Additionally it’s a good idea to provide Global Payments with a payment form template that matches the look and feel of your ecommerce site, to create a more integrated checkout process for your customers. Here’s an example of the default, unstyled hosted payment form:
To create a more integrated payment form, customized for your site design, please review the Global Payments HPP Customization Guide.
Upgrading to v2 ↑ Back to top
When upgrading to v2.0 of the plugin, your settings will be migrated from previous versions.
However, you may still need to take action.
- You’ll want to ensure that, if you’ve used custom pay page templates with Global Payments, you’ll need to reach out to their support team to get these migrated to the new format. Your templates may work, but they may need some adjustments for the new pay page.
- If you decide to use the iFrame mode instead of redirecting in v2, custom templates will very likely need adjusting.
- You may want to confirm your referring URL with Global Payments to ensure
https://mystore.com/checkout/*is being used.
Merchant Usage ↑ Back to top
Capture Charges from WooCommerce Order Admin ↑ Back to top
Using version 2.0+ of the extension allows you to authorize charges during checkout, then manually capture them later. You can do this via your Global Payments control panel, or can easily do so from the WooCommerce Edit Order page.
Partial Captures ↑ Back to top
Global Payments HPP also allows for partial payment captures when enabled in the plugin settings. This provides the ability to perform more than one capture on an existing authorization from within WooCommerce.
To perform a partial capture, edit the order, and click “Capture charge” for the order actions.
You can then enter the desired amount for the capture, and can process the capture. You can repeat this action until the total possible capture amount has been used.
Automatic Refund Support ↑ Back to top
Version 2.0.0 of Global Payments HPP adds automatic refund support. This means that refunds can be processed directly in WooCommerce without the merchant logging into his or her Global Payments account.
Void Transaction Support ↑ Back to top
Transactions can be voided by using the same workflow as refunds. A void will occur if the transaction has been authorized, but not captured. In the case of Global Payments, voids will also occur for authorized & captured transactions that have not yet been settled. As funds haven’t been transferred, a refund can’t truly be processed.
Voided transactions must be voided in full; partial voids are not accepted by Global Payments. You can read more about voiding transactions here.
Customer Experience ↑ Back to top
Checkout Experience ↑ Back to top
When checking out with Global Payments HPP, customers will see the secure, hosted payment form from Global Payments. This will allow them to enter payment information, and if they’re logged into your store, offer to save payment methods for future use (when Card storage / Tokenization are enabled).
If existing customers have saved payment methods with your store, then they’ll be offered the option to use these saved payment methods, or to add a new card.
Saved Payment Methods ↑ Back to top
Customers can save payment methods during your checkout process to use them in future checkouts, with Subscriptions, or for Pre-Orders. Note that customers cannot save payment methods if they checkout as a guest since there’s no account to assign cards to.
Customers can manage their saved payment methods by going to their My Account page and scrolling to the “My Payment Methods” section. From here they can set any available saved payment method as active, add nicknames for payment methods, or click the “Delete” action to delete the payment method.
Other Information ↑ Back to top
Subscriptions / Pre-Orders Support ↑ Back to top
This gateway fully-supports all features of WooCommerce Subscriptions and WooCommerce Pre-Orders. However, note that subscription and pre-order payments, if they require $0 initially, may process a €0.02 authorization when using an existing card — see troubleshooting points below for more details.
The enhanced “My Payment Methods” table is also active when Subscriptions is used to prevent deleting cards associated with a subscription. You can read about subscription saved methods here.
Note that in order to process subscription renewals automatically, you cannot require the card security code for transactions in your Global Payments account. Global Payments does not (and cannot) store CSCs for subscription renewals for PCI compliance and security reasons, so these are unavailable for renewal orders and they will fail.
Detailed Decline Messages ↑ Back to top
When detailed decline messages are enabled, they will provide informative error messages to the customer at checkout when Global Payments returns a useful response.
Storing Credit Cards ↑ Back to top
Credit card information is not stored on your server, rather it is tokenized and stored on Global Payments’s secure servers, which reduces your PCI compliance burden. Learn more about Card storage tokenization. You can enable the “Tokenization” setting in the plugin to allow securely saving cards.
Test Transactions ↑ Back to top
To perform test transactions, enable Sandbox as the plugin environment and supply the test account credentials as needed. You must also request test card numbers from Global Payments.
Note that when in test mode the referring/response URLs covered above are not enforced, making it easier to test a new integration.
Frequently Asked Questions ↑ Back to top
Q: Why do some order numbers not match between Global Payments and WooCommerce?
A: In some instances the order number displayed for a transaction within Global Payments will not match the corresponding order number shown in WooCommerce, for instance WC Order #500 might display as 500-3 in Global Payments. This is due to a limitation with the Global Payments gateway whereby each payment attempt must use a unique order number, combined with a limitation on the WooCommerce side whereby failed orders from redirect gateways such as this one must use the same order number for each payment attempt.
The solution this gateway plugin uses is to append an incrementing counter to the order number for all failed transaction attempts. So in our example of 500-3, this would indicate that the customer most likely tried to pay for order #500 3 times before succeeding.
If you emailed your URLs to Global Payments very recently, be aware that there is an expected response time of 24 hours to emails. This should be the maximum amount of time for a requested change to take effect, but in most cases it would be shorter. Also, once a change has been implemented on an account, a confirmation email will be sent out to the person who sent in the request asking them to check that everything is now working correctly. Until you receive this confirmation email, you will not be able to correctly accept credit card payments.
Q: Is this plugin compatible with the Global Iris payment gateways?
A: Yes, simply use your Global Iris Merchant ID and Shared Secret to connect with a Global Iris gateway.
Q: I’m getting a strange error that looks something like this:
Unable to connect to the merchant, response URL: http://www.YOUR-SHOP.com/wp/?wc-api=WC_Gateway_Global Payments_Redirect
The orders are also being left in the “pending” state despite the transaction succeeding on the Global Payments pay page.
A: Your hosting company is likely blocking requests from the Global Payments servers for the payment notification request, which is why you’re not getting the paid notification successfully. Please contact your hosting company and ask them to allow the following Global Payments server IP addresses:
Troubleshooting ↑ Back to top
Orders remain pending ↑ Back to top
Global Payments Redirect uses an asynchronous payment notification system similar to PayPal’s IPN. This means that in order for successful communication and the full checkout process to occur, the Global Payments server must be aware of your shop’s server, and able to communicate with it.
The most commonly encountered issue with a payment notification gateway like Global Payments Redirect is a failure of this communication, resulting in customers being able to successfully check out and remit payment (as this happens on the Global Payments payment server), but the WooCommerce order remaining in a “pending” state and not being automatically updated to “failed” or “processing”. Following are some steps to troubleshoot and hopefully resolve this issue:
- Referring URL: First and foremost, verify that you have properly configured and provided your referring URL with Global Payments.
- Hosting: Ensure your hosting company is not blocking the Global Payments servers from notifying your site of payments.
- Logging: Next configure your plugin to enable the debug log. This will result in all server-to-server communication being logged to WooCommerce > Status > Logs.
- Test Transaction: Now it’s time to perform a test transaction. After completing a transaction, inspect the Global Payments communication log file and look for a line starting with “Redirect Response:” followed by some information and possibly error messages. If you see this, either use the error messages to determine and fix the issue, or open a ticket and provide the log file. If you do not see this line, continue on to the next step.
- Server Communication: If you’ve gotten this far it means that there’s some issue with the communication between the Global Payments payment server and your own site’s server. We next need to determine where the issue lies.
First, verify that your server is not “inaccessible”, ie behind a firewall, coming soon plugin, or other security measure. Remember, just because you can visit your server doesn’t necessarily mean Global Payments can communicate with it.
- Access Logs: The final test is to perform another test transaction while watching your web server (generally apache) access logs. This is something that you may require assistance from your server host with, depending on your technical ability and particular host. If you see something similar to the following after you perform your test transaction:
184.108.40.206 - - [02/May/2013:16:47:13 -0400] "POST /?wc-api=WC_Gateway_Global Payments_Redirect HTTP/1.1" 206 168 "-" "epage.cgi, getMerchantContent libwww-perl/5.805"
Then it means that the Global Payments server is able to communicate with your ecommerce server and you should open a ticket, providing all of the above tests and results. If on the other hand you do not see a request like this appear soon after performing a test transaction, it means that the Global Payments payment server is not performing the payment response request to your site and you’ll need to get in touch with Global Payments Support at firstname.lastname@example.org and ask them to determine why this is not happening.
€0.02 Authorizations ↑ Back to top
In some cases, when a customer uses a saved card at checkout, this plugin will process a €0.02 authorization rather than a €0 order. This will occur when:
- The customer is using an existing saved card token that has been saved from a previous order.
- The current total for the order is "0" — this happens when a free trial subscription is purchased, or a pre-order that is charged at release.
This is due to a bug on the Global Payments side with the hosted payment form that will fail these transactions erroneously, and our plugin has no way to recognize these errors vs a “real” decline. As such, the small authorization is done as a workaround to ensure that these transactions don’t fail without any known error code in your store, so they will process successfully.
We are keeping tabs on this bug, and will remove the authorization workaround when it’s fixed by Global Payments to avoid your store being charged for an extra transaction. You can contact Global Payments with further questions and to let them know this fix is important to your store.
Other issues ↑ Back to top
If you experience another issue aside from transactions remaining pending (see steps above), please enable debug mode to “Save to log” in the plugin settings, then get in touch with support to assist.
Questions & Support ↑ Back to top
Have a question before you buy? Please fill out this pre-sales form.
Already purchased and need some assistance? Get in touch with support via the help desk.