Przejdź do głównej zawartości

Pay-by-link (Czechy)

dpay.pl umożliwia bezpośrednia integrację z bankami w Czechach za pomocą metody white-label (Pay-by-Link). Klient jest przekierowywany bezpośrednio do wybranego banku, bez pośredniej strony bramki.

Obsługiwane banki

BankChannel IDWaluta
Ceska sporitelna332CZK
mBank (CZ)333CZK
Komercni banka336CZK
Raiffeisenbank (CZ)337CZK
Moneta Money Bank340CZK
Fio Banka343CZK
CSOB346CZK
UniCredit Bank (CZ)349CZK

Endpoint

Użyj standardowego endpointu rejestracji płatności:

POST https://api-payments.dpay.pl/api/v1_0/payments/register
Content-Type: application/json

Parametry zapytania

Wszystkie pola sa wymagane:

PoleTypOpisPrzykład
transactionTypestringTyp transakcji"transfers"
servicestringNazwa serwisu z panelu"abc123"
valuestringKwota transakcji"499.00"
currency_codestringKod waluty"CZK"
channelstringID kanalu płatności (bank)"332"
url_successstringURL po udanej płatności"https://mojsklep.pl/sukces"
url_failstringURL po nieudanej płatności"https://mojsklep.pl/błąd"
url_ipnstringURL do powiadomień IPN"https://mojsklep.pl/api/ipn"
checksumstringSuma kontrolna SHA-256(patrz niżej)
Pole channel jest wymagane

W przypadku integracji white-label pole channel jest obowiązkowe. Bez niego system nie będzie wiedzieć, do którego banku przekierować klienta.

Generowanie checksum

Checksum generowany jest identycznie jak dla standardowej płatności:

sha256({service}|{SecretHash}|{value}|{url_success}|{url_fail}|{url_ipn})

Przykład zapytania

cURL

curl -X POST https://api-payments.dpay.pl/api/v1_0/payments/register \
-H "Content-Type: application/json" \
-d '{
"transactionType": "transfers",
"service": "abc123",
"value": "499.00",
"currency_code": "CZK",
"channel": "332",
"url_success": "https://mojsklep.pl/sukces",
"url_fail": "https://mojsklep.pl/błąd",
"url_ipn": "https://mojsklep.pl/api/ipn",
"checksum": "e3b0c44298fc1c149afb..."
}'

PHP

<?php
$service = getenv('DPAY_SERVICE');
$secretHash = getenv('DPAY_SECRET_HASH');

$value = '499.00';
$currencyCode = 'CZK';
$channel = '332'; // Ceska sporitelna
$urlSuccess = 'https://mojsklep.pl/sukces';
$urlFail = 'https://mojsklep.pl/błąd';
$urlIpn = 'https://mojsklep.pl/api/ipn';

$checksum = hash('sha256',
$service . '|' . $secretHash . '|' . $value . '|' .
$urlSuccess . '|' . $urlFail . '|' . $urlIpn
);

$payload = json_encode([
'transactionType' => 'transfers',
'service' => $service,
'value' => $value,
'currency_code' => $currencyCode,
'channel' => $channel,
'url_success' => $urlSuccess,
'url_fail' => $urlFail,
'url_ipn' => $urlIpn,
'checksum' => $checksum,
]);

$ch = curl_init('https://api-payments.dpay.pl/api/v1_0/payments/register');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $payload,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_RETURNTRANSFER => true,
]);

$response = curl_exec($ch);
curl_close($ch);

$result = json_decode($response, true);

if ($result['status'] === 'success') {
header('Location: ' . $result['message']);
exit;
}

Odpowiedź API

Sukces

{
"status": "success",
"message": "https://api-payments.dpay.pl/pay/redirect/abc-def-123",
"transactionId": "abc-def-123-456"
}

Klient po kliknięciu na URL z message zostanie przekierowany bezpośrednio do wybranego banku.

Obsługa IPN

Powiadomienia IPN działają identycznie jak dla standardowych płatności. Szczegóły znajdźiesz w Obsługa IPN.

Waluta

Dla banków czeskich używaj waluty CZK. Użycie nieprawidłowej waluty spowoduje błąd transakcji.