Przejdź do głównej zawartości

Pay-by-link (Czechy)

wskazówka

Akceptacja tego kanału płatności wymaga dodatkowej umowy z agentem rozliczeniowym wskazanym przez dpay.pl.

dpay.pl umożliwia bezpośrednią 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.

POST/api/v1_0/payments/registerPełny kontrakt rejestracji płatności: parametry, checksum i kody błędów.Pełny kontrakt w API Reference

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 są wymagane:

PoleTypOpisPrzykład
transactionTypestringTyp transakcji"transfers"
servicestringNazwa serwisu z panelu"abc123"
valuestringKwota transakcji"499.00"
currency_codestringKod waluty"CZK"
channelstringID kanału płatności (bank)"332"
emailstringAdres e-mail klienta"klient@example.com"
client_namestringImię klienta"Jan"
client_surnamestringNazwisko klienta"Novak"
accept_tosbooleanPotwierdzenie akceptacji regulaminu przez klientatrue
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. Podanie channel wymaga jednocześnie przekazania pól email, client_name, client_surname oraz accept_tos - ich brak spowoduje błąd walidacji (HTTP 422).

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",
"email": "klient@example.com",
"client_name": "Jan",
"client_surname": "Novak",
"accept_tos": true,
"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,
'email' => 'klient@example.com',
'client_name' => 'Jan',
'client_surname' => 'Novak',
'accept_tos' => true,
'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'] === true && !$result['error']) {
header('Location: ' . $result['msg']);
exit;
}

Odpowiedź API

Sukces

{
"error": false,
"msg": "https://secure.dpay.pl/transfer@pay@abc-def-123-456",
"status": true,
"transactionId": "abc-def-123-456"
}

Pole status jest wartością logiczną (true/false), a msg zawiera adres URL, na który należy przekierować klienta - trafi on bezpośrednio do wybranego banku.

Obsługa IPN

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

Waluta

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