Skip to main content

QuickCart

Official dpay.pl payment module for QuickCart 3. Enables accepting online payments in your QuickCart-based online store. Supports BLIK Level 0 (inline), credit cards, PayPal, and other payment methods.


Requirements

  • QuickCart 3.x
  • PHP 7.4 or newer
  • Active account in the dpay.pl Dashboard with a configured Payment Point

Supported payment methods

  • BLIK (including BLIK Level 0 - inline)
  • Bank transfers (pay-by-link)
  • Credit cards (inline)
  • Google Pay and Apple Pay
  • PayPal
  • Paysafecard
  • Installments (BLIK BNPL)

Installation

  1. Download the module files from dpay.pl or from GitHub.
  2. Copy the dpay/ directory to the QuickCart root directory. File structure:
    • dpay/dpay_config.php - configuration file
    • dpay/dpay_checkout.php - payment process handler
    • dpay/dpay_callback.php - IPN notification handler
    • dpay/dpay_validation.php - IPN signature validation
    • dpay/dpay_refund.php - refund handler
    • dpay/language/pl.php - Polish translations
    • dpay/language/en.php - English translations
    • dpay/lib/dpay-sdk/ - dpay.pl SDK library
    • dpay/assets/images/dpay.png - dpay.pl logo
  3. Make sure the dpay/ directory has proper read permissions.

Configuration

Step 1 - Prepare credentials in the dpay.pl Dashboard

  1. Log in to the dpay.pl Dashboard.
  2. Go to the Payment Points section.
  3. Create a new Payment Point or select an existing one.
  4. Take note of:
    • Service name (service_name) - unique name of your Payment Point
    • Secret hash (secret_hash) - key used for signing requests
  5. In the Payment Point settings, set the IPN URL to:
    https://your-store.com/dpay/dpay_callback.php
Important

The secret hash should be treated like a password. Never share it publicly or include it in frontend code.

Step 2 - Module configuration

  1. Open the dpay/dpay_config.php file in a text editor.
  2. Fill in the configuration fields:
FieldDescription
service_nameService name from the dpay.pl Dashboard
hash_keySecret hash from the dpay.pl Dashboard
success_urlURL of the page after a successful payment (default: index.php?p=success)
error_urlURL of the page after a failed payment (default: index.php?p=error)
notify_urlIPN URL (default: dpay/dpay_callback.php)
paypalEnable PayPal payments (Y/N)
creditcardEnable card payments (Y/N)
paysafecardEnable Paysafecard payments (Y/N)
installmentEnable installment payments (Y/N)
nobanksHide the bank list (Y/N)
blik_zeroEnable BLIK Level 0 inline (Y/N)
apple_payEnable Apple Pay (Y/N)
google_payEnable Google Pay (Y/N)
card_inlineEnable inline card form (Y/N)
  1. Save the file.

Example configuration:

public static function getConfig()
{
return [
'service_name' => 'my-store',
'hash_key' => 'YOUR_SECRET_HASH',
'success_url' => 'index.php?p=success',
'error_url' => 'index.php?p=error',
'notify_url' => 'dpay/dpay_callback.php',
'paypal' => 'N',
'creditcard' => 'N',
'paysafecard' => 'N',
'installment' => 'N',
'nobanks' => 'N',
'blik_zero' => 'Y',
'apple_pay' => 'N',
'google_pay' => 'N',
'card_inline' => 'N',
];
}

Step 3 - Verification

  1. Place a test order in your store.
  2. Select dpay.pl as the payment method.
  3. Verify that you are correctly redirected to the payment page (or that the BLIK form is displayed, if enabled).
  4. After completing the payment, check whether the order has been correctly marked as paid.

Refunds

The module supports online refunds via the dpay.pl API. Refunds can be:

  • Full - refund of the entire transaction amount
  • Partial - refund of a selected amount

A refund can be performed using the DPayRefund class:

require_once 'dpay/dpay_refund.php';
require_once 'dpay/dpay_config.php';

$refund = new DPayRefund(DPayConfig::getConfig());
$refund->process($transactionId, $amount);

Status mapping

dpay.pl statusQuickCart action
New transactionRedirect to the payment page
completed (IPN)Order marked as paid
BLIK inlineAwaiting confirmation, redirect after 5 seconds
ErrorError message displayed

Troubleshooting

Orders do not change status automatically

  • Verify that the IPN URL (/dpay/dpay_callback.php) is correctly set in the dpay.pl Dashboard.
  • Make sure the callback file is publicly accessible and not blocked by .htaccess or a firewall.
  • Verify that the dpay_config.php file contains the correct hash_key.

Currency error

  • The module only supports the PLN currency. Make sure the store currency is set to PLN.

BLIK form does not appear

  • Check whether the blik_zero option in the configuration file is set to Y.
  • Make sure the dpay_checkout.php file is loaded correctly.

"BAD SIGNATURE" error

  • Make sure the hash_key in the dpay_config.php file matches the hash in the dpay.pl Dashboard.

More information