Skip to content

wcpos/wcpos-vipps

Repository files navigation

WCPOS Vipps MobilePay

A WooCommerce payment gateway for Vipps and MobilePay payments via QR codes and push notifications. Built for WooCommerce POS (Pro) and standard WooCommerce web checkout.

How It Works

This gateway uses the Vipps MobilePay ePayment API with two payment flows:

QR Code — Click "Generate QR Code" to display a QR code on screen. The customer scans it with the Vipps or MobilePay app and confirms payment.

Send to Phone — Enter the customer's phone number and click "Send to Phone." The plugin automatically detects the best available method:

  • Direct push (preferred) — Sends a payment request straight to the customer's Vipps app. Requires Vipps to enable PUSH_MESSAGE on your sales unit (see Enabling Direct Push below).
  • Landing page fallback — If direct push isn't enabled, the plugin opens the Vipps landing page in a new browser tab instead. The landing page handles sending the notification to the customer. Works out of the box with no special approval.

The plugin detects which method is available on the first attempt and remembers the result for 24 hours. If direct push isn't available, you'll see a one-time message asking you to click "Send to Phone" again — after that it works seamlessly.

Both flows poll for payment status every 2 seconds (up to 5 minutes). When the payment is authorized, the order completes automatically.

Installation

  1. Download the latest release from the releases page
  2. Install via WP Admin > Plugins > Add New > Upload Plugin
  3. Activate the plugin
  4. Go to WooCommerce > Settings > Payments > WCPOS Vipps MobilePay
  5. Enter your Vipps API credentials (see below)

Development Install

git clone https://github.com/wcpos/wcpos-vipps.git wp-content/plugins/wcpos-vipps
cd wp-content/plugins/wcpos-vipps
composer install

Configuration

You need credentials from the Vipps MobilePay portal:

Credential Description
Merchant Serial Number Your sales unit MSN
Client ID OAuth client ID
Client Secret OAuth client secret
Subscription Key Ocp-Apim-Subscription-Key

Automatic Credential Import

If the official Checkout with Vipps MobilePay plugin is already installed and configured, credentials are imported automatically on first activation.

Settings

Setting Default Description
Auto Capture Enabled Capture funds immediately after authorization. Disable for reserve-and-capture workflows.
Test Mode Disabled Route API calls to apitest.vipps.no using test credentials.
Debug Log Disabled Log payment events to WooCommerce > Status > Logs and show a live log panel on the checkout screen.

Usage

POS Checkout (requires Pro)

This gateway is designed to work inside the WooCommerce POS checkout. The payment interface renders on the order-pay page — the same page the POS loads for payment processing. With direct push enabled, the entire flow stays in-page with no external windows. If using the landing page fallback, a single browser tab opens for the customer (see Enabling Direct Push).

  1. Enable the gateway in WP Admin > WooCommerce POS > Settings > Checkout
  2. You don't need to enable it in WooCommerce Payments settings for POS-only use

Web Checkout

The gateway also works on the standard WooCommerce checkout. Selecting "WCPOS Vipps MobilePay" and clicking "Place Order" creates the order and redirects to the order-pay page, where the QR code and push notification interface appears.

Enabling Direct Push

The direct push flow (PUSH_MESSAGE) provides the best checkout experience — the customer gets a notification on their phone without any extra tabs or pages. However, Vipps requires explicit approval on your sales unit before you can use it.

To enable direct push:

  1. Log in to portal.vippsmobilepay.com
  2. Contact your Vipps key account manager, partner manager, or customer service
  3. Tell them: "I need PUSH_MESSAGE enabled on my MSN for use with a POS integration"

Once approved, the plugin detects the change automatically (within 24 hours) and switches to the direct push flow. An admin notice on the gateway settings page will remind you to set this up while you're using the landing page fallback.

Debug Logging

When Debug Log is enabled in the gateway settings:

  • WooCommerce Logs — All API requests, responses, and errors are written to WooCommerce > Status > Logs with source wcpos-vipps
  • Live Log Panel — A collapsible textarea appears on the checkout screen showing real-time payment events (both server-side API activity and client-side flow events)

Server-side log entries are buffered per-order in WordPress transients and delivered to the frontend via the existing polling AJAX responses — no extra requests.

Supported Markets

Region Brand Currencies
Norway Vipps NOK
Denmark, Finland MobilePay DKK, EUR

Requirements

  • WordPress 5.0+
  • WooCommerce 5.0+
  • PHP 7.4+
  • HTTPS (required by Vipps API)
  • WooCommerce POS Pro (for POS checkout)

Architecture

wcpos-vipps.php              → Plugin bootstrap, registers gateway
includes/Gateway.php          → WC_Payment_Gateway subclass, settings, payment fields
includes/Api.php              → Vipps ePayment API client (auth, create, capture, refund, cancel)
includes/AjaxHandler.php      → AJAX endpoints for create_payment, check_status, cancel_payment
includes/AdminNotice.php      → Admin notice for direct push upgrade nudge
includes/Logger.php           → Debug logging with per-order transient buffer
assets/src/                   → React/TypeScript frontend (payment UI, hooks, components)
assets/css/payment.css        → Payment interface styling (Vipps brand colors)

License

GPL-3.0-or-later

About

Vipps MobilePay payment gateway for WooCommerce with QR code and push notification support

Resources

Stars

1 star

Watchers

0 watching

Forks

Packages

 
 
 

Contributors