Ridecore Pay for WooCommerce

Description

Let your customers pay with Swish, the Swedish mobile payment method. The customer approves the payment in the Swish app, the order is marked as paid automatically and the money goes directly from the customer’s bank to your bank account. getpayment never holds the money.

Features

  • Works with the classic checkout and with Checkout Blocks
  • Compatible with High-Performance Order Storage (HPOS)
  • On a phone the Swish app opens with the amount filled in. On other screens the customer scans a QR code
  • An order is only marked as paid by a signed webhook or a server-side status check, never by the browser
  • Full and partial refunds from the WooCommerce order screen
  • Test mode against the Swish simulator: no real money and no bank agreement needed to try it
  • Order notes for every step: created, paid, declined, refunded
  • English, ready for translation on translate.wordpress.org

What you need

  • WooCommerce with SEK as shop currency
  • An account at getpayment.se and an API key
  • For live payments: Swish Handel from your own bank, with Ridecore Works AB (getpayment) as technical supplier

Ridecore Pay is made by Ridecore Works AB, the company behind getpayment.se and an approved technical supplier for Swish. Swish is a trademark of Getswish AB and WooCommerce is a trademark of Automattic Inc. This plugin is not provided by, endorsed by or affiliated with Getswish AB or Automattic.

External services

This plugin connects to the getpayment API at https://api.getpayment.se. It is required: the API creates the Swish payment request and reports whether it was paid.

  • When a customer places an order with Swish, the plugin sends the order total, the order number, the order id, an attempt counter and a short site identifier. If the shop uses https it also sends the address of the order’s waiting page, so that the Swish app can return the customer there.
  • When the shop refunds an order, the plugin sends the getpayment payment id, the amount, the order number and the refund reason entered by the shop.
  • To follow a payment or refund, the plugin asks the API for its status using the payment or refund id.
  • getpayment sends webhooks to your site when a payment or refund is completed or fails.

No customer names, addresses, e-mail addresses or phone numbers are sent by the plugin. The customer approves the payment in their own Swish app.

The service is provided by Ridecore Works AB: terms of service, privacy policy.

Screenshots

Installation

  1. Install the plugin: in WordPress go to Plugins Add New Upload Plugin and choose the zip file, or upload the ridecore-pay-for-woocommerce folder to /wp-content/plugins/. Activate it.
  2. Create an API key: log in to the getpayment dashboard, open Developers and create a test key (gp_test_…).
  3. In WordPress go to WooCommerce Settings Payments Swish via getpayment and paste the test key.
  4. Copy the webhook URL shown on the settings page. In the getpayment dashboard, add it under Developers Webhooks. Paste the secret you get (whsec_…) into the Webhook secret field.
  5. Enable the payment method and save. Test mode is on by default.
  6. Place a test order. In test mode the payment is approved automatically within seconds.
  7. When your Swish number has been activated at getpayment: paste the live key (gp_live_…) and turn off test mode.

FAQ

What does it cost?

3 SEK per received payment, excluding VAT. No percentage fee, no monthly fee and no commitment period. Declined and cancelled payments, refunds and the test mode are free. Your bank charges its own fee for Swish Handel.

Is Swish Handel required?

Yes, for live payments. You order Swish Handel from your own bank and name Ridecore Works AB (getpayment) as technical supplier. The bank connects your Swish number to getpayment. You can build and test the whole flow in test mode before the bank agreement is in place.

Does it work with Checkout Blocks?

Yes. The payment method is registered for both the block based checkout and the classic checkout shortcode. It is also compatible with High-Performance Order Storage (HPOS).

Does the money pass through getpayment?

No. A payment goes directly from the payer’s bank to the bank account connected to your Swish number.

How do I know an order is really paid?

The order is marked as paid only after a webhook with a valid signature, or a status check made from your server to getpayment. The page the customer returns to never marks an order as paid.

What happens if the webhook does not arrive?

Pending Swish orders older than two minutes are checked against getpayment in the background until the payment has a final status. Orders are never cancelled or released on a timer of the plugin’s own.

How do I test a declined payment?

In test mode, enter a Swish error code as the order note in the checkout, for example RF07 (declined) or TM01 (timeout).

Can I refund from WooCommerce?

Yes, in full or in part, with the normal WooCommerce refund button on the order. Swish confirms the refund shortly afterwards and the result is added as an order note.

Which currencies are supported?

SEK only. The payment method is hidden in the checkout if the shop uses another currency.

Where are the API keys stored?

In the WordPress options table, like other WooCommerce gateway settings. They are masked on the settings page after saving and are never sent to the browser. Uninstalling the plugin deletes them.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“Ridecore Pay for WooCommerce” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

1.0.2

  • New name: Ridecore Pay for WooCommerce (slug ridecore-pay-for-woocommerce). If you installed an earlier version from a zip file: deactivate and delete it, then install this version and enter the API key and webhook secret again. The webhook address is unchanged.

1.0.1

  • The plugin folder, main file and text domain are now ridecore-pay-for-woocommerce, the slug WordPress.org derives from the plugin name. If you installed 1.0.0 from a zip file: deactivate and delete it, then install this version. Deleting a plugin removes its settings, so enter the API key and the webhook secret again. The webhook address is unchanged.

1.0.0

  • First release: Swish in the classic checkout and in Checkout Blocks through the getpayment API.
  • Waiting page with app link on phones and QR code on other screens.
  • Webhook receiver with signature verification and idempotency, plus background status checks.
  • Full and partial refunds.
  • Swedish and English.