Pranešimo struktūra

POST užklausa yra atliekama kiekvienam įvykiui į jūsų nurodytus adresą/us. Perduodami 2 parametrai:

  • data - užkoduoti duomenys apie įvykį.
  • sign - užkoduotas data parametro parašas.

Tam, kad apdoroti gautą pranešimą jums reikia patikrinti ar sign parametras yra validus ir atkoduoti data parametrą.

Abu parametrai yra užkoduoti naudojantis base64 kodavimo schema.

Užkodavus, simboliai + yra pakeičiami į - , / pakeičiami į _. Koduota eilutė dekoduojama taikant atvirkštinį algoritmą:

  1. Simbolis - keičiamas į +, simblois _ keičiamas į /;
  2. Dekoduojama naudojantis base64 kodavimo schema.

Parametro data parašas yra pasirašomas naudojantis RSA raktu, naudojant SHA1 maišos funkciją. Sertifikatą, atitinkantį parašui naudojamą raktą, galima atsisiųsti šiuo adresu:

https://www.paysera.com/download/public.key

Duomenys apie įvykį yra užkoduojami "application/x-www-form-urlencoded" formatu prieš kodavimą base64 formatu ir spec. simbolių pakeitimu. Tam, kad gauti duomenų masyvą naudokite "application/x-www-form-urlencoded" formato dekodavimą.

Pavyzdys PHP kalba, kaip apdoroti informacinį pranešimą:

<?php

$publicKey = loadFromWeb();
$sign = $_POST['sign'];
$data = $_POST['data'];

$signReplaced = strtr($sign, array('-' => '+', '_' => '/'));
$signDecoded = base64_decode($signReplaced);

if (openssl_verify($data, $signDecoded, $publicKey, OPENSSL_ALGO_SHA1) === 1) {
    $dataReplaced = strtr($data, array('-' => '+', '_' => '/'));
    $dataDecoded = base64_decode($dataReplaced);
    parse_str($dataDecoded, $params);

    // use $params

    echo 'OK';
}
Informacija Jei naudojate PHP programavimo kalbą, rekomenduojame naudotis pateikta biblioteka, kuri dekodavimą atlieka automatiškai.
Informacija Callback skriptas sėkmės atveju turi grąžinti atsakymą, prasidedantį arba lygų 'OK'.

Reikšmės, panaudotos pavyzdyje

Parameter
Example
$sign
QRRnBKqW5agE8_xYxG-E-72lDj0q8M16Tcof-1LvzXCl_vY_rkCBkevy5y4V4UlwyC3vYwuPAVqZDzQtxvl6svlLpG7Lhl55MzOPNajOokzNza5LTiMLX77XuRyVd1JWxqIoWi9NmXrvJizoQwFJXSqDai7cULX0LSEHL5dSQIsZST27jBFVrRUbuGQO1d67eRuSh_s6ybqnbGH--Ti_xdhkhZNOVn2pHFvhNtSNp0iFdcHMEELIMpkCe-07ouO9cvGGmXUXSiMlLyrfJZ-kpaAvTC_GDzq5crE0hXFp-OkkAinAWun0-LmZOEZsYFUbBv8xQ8YuNI5-11wwS2W33g==
$signReplaced
QRRnBKqW5agE8/xYxG+E+72lDj0q8M16Tcof+1LvzXCl/vY/rkCBkevy5y4V4UlwyC3vYwuPAVqZDzQtxvl6svlLpG7Lhl55MzOPNajOokzNza5LTiMLX77XuRyVd1JWxqIoWi9NmXrvJizoQwFJXSqDai7cULX0LSEHL5dSQIsZST27jBFVrRUbuGQO1d67eRuSh/s6ybqnbGH++Ti/xdhkhZNOVn2pHFvhNtSNp0iFdcHMEELIMpkCe+07ouO9cvGGmXUXSiMlLyrfJZ+kpaAvTC/GDzq5crE0hXFp+OkkAinAWun0+LmZOEZsYFUbBv8xQ8YuNI5+11wwS2W33g==
$signDecoded
Agªâ€“å¨óüXÄo„û½¥=*ðÍzMÊûRïÍp¥þö?®@‘ëòç.áIpÈ-ïcZâ„¢4-Æùz²ùK¤nˆ^y335¨Î¢LÍÍ®KN#_¾×¹•wRVÆ¢(Z/Mâ„¢zï&,èCI]*Æ’j.ÜPµô-!/—R@‹I=»Å’U­¸dÕÞ»y’‡û:ɺ§laþù8¿ÅØd…“NV}©[á6ԍ§H…uÁÌBÈ2â„¢{í;¢ã½rñ†™uJ#%/*ß%Ÿ¤¥ /L/Æ:¹r±4…qiøé$)ÀZéôø¹â„¢8Fl`Uÿ1CÆ.4Ž~×Ke·Þ
$data
dHlwZT1NSyZjcmVkaXQ9MSZhY2NvdW50PUVWUDAwMDAwMDAwMDAwMDEmYW1vdW50PTIzLjA5JmN1cnJlbmN5PUVVUiZwYXllcl9hY2NvdW50PUVWUDAwMDAwMDAwMDAwMDImZGV0YWlscz1EZXRhaWxzJnRyYW5zZmVyX2lkPTk5OTk5OTk5JnN0YXRlbWVudF9pZD0xMjM0NTY3ODk=
$dataReplaced
dHlwZT1NSyZjcmVkaXQ9MSZhY2NvdW50PUVWUDAwMDAwMDAwMDAwMDEmYW1vdW50PTIzLjA5JmN1cnJlbmN5PUVVUiZwYXllcl9hY2NvdW50PUVWUDAwMDAwMDAwMDAwMDImZGV0YWlscz1EZXRhaWxzJnRyYW5zZmVyX2lkPTk5OTk5OTk5JnN0YXRlbWVudF9pZD0xMjM0NTY3ODk=
$dataDecoded
type=MK&credit=1&account=EVP0000000000001&amount=23.09&currency=EUR&payer_account=EVP0000000000002&details=Details&transfer_id=99999999&statement_id=123456789
$params
array(8) {
    ["type"]=>
    string(2) "MK"
    ["credit"]=>
    string(1) "1"
    ["account"]=>
    string(16) "EVP0000000000001"
    ["amount"]=>
    string(5) "23.09"
    ["currency"]=>
    string(3) "EUR"
    ["payer_account"]=>
    string(16) "EVP0000000000002"
    ["details"]=>
    string(7) "Details"
    ["transfer_id"]=>
    string(8) "99999999"
    ["statement_id"]=>
    string(9) "123456789"
}

Įvykių parametrai

Patikrinus parašą ir atkodavus data parametrą, gaunate įvykio informaciją. Jeigu bent vienas iš parametrų yra tuščias, jis nebus pridėtas prie "application/x-www-form-urlencoded" formatu koduotos simbolių eilutės.

Parametro pavadinimas
Reikšmė
Pavyzdys
type
Tipų identifikatoriai:
MK - Mokėjimas
HO - Sąskaitos papildymas
FX - Valiutos konvertavimas
MM - Kita transakcija
MK
credit
1 jei tai yra įeinančios lėšos, 0 jei tai yra išeinančios lėšos. Nesuteikiamas, jei tai yra valiutos konvertavimo operacija
1
account
Sąskaitos numeris. Tai yra įvykio subjektas
EVP0000000000001
amount
Įeinančių/išeinančių lėšų suma. Visada teigiama. Dešimtainė dalis yra atskiriama tašku ("."). Neperduodama valiutos keitimo atveju
29.99
currency
Valiuta perduodamai sumai. Visada perduodama su amount parametru
EUR
from_amount
Suteikiamas tik valiutos konvertavimo atveju. Išeinačių lėšų suma
10.00
from_currency
Visada suteikiamas su from_amount parametru
EUR
to_amount
Suteikiamas tik valiutos konverativimo atveju. Įeinačių lėšų suma
34.54
to_currency
Visada suteikiamas su to_amount parametru
EUR
beneficiary_name
Tik išeinantiems pervedimams. Lėšų gavėjo vardas. Nesuteikiamas, jeigu nėra žinomas
John Smith
beneficiary_code
Tik išeinantiems pervedimams. Lėšų gavėjo (fizinio ar juridinio asmens) kodas. Nesuteikiamas, jeigu nėra žinomas
38001010000
beneficiary_account
Tik išeinantiems pervedimams. Lėšų gavėjo sąskaitos numeris
LT001100000111100000
payer_name
Tik įeinantiems pervedimams. Mokėtojo vardas. Nesuteikiamas, jeigu nėra žinomas
John Smith
payer_code
Tik įeinantiems pervedimams. Mokėtojo (fizinio ar juridinio asmens) kodas. Nesuteikiamas, jeigu nėra žinomas
38001010000
payer_account
Tik įeinantiems pervedimams. Mokėtojo sąskaitos numeris. Nesuteikiamas, jeigu nėra žinomas
LT001100000111100000
details
Pervedimo detalės
Payment for request no. 123456
transfer_id
Unikalus pervedimo identifikatorius mūsų sistemoje
123456
reference_number
Įmokos kodas. Nesuteikiamas, jeigu nėra žinomas
AB12345
reference_to_beneficiary
Kliento kodas gavėjo informacinėje sistemoje. Nesuteikiamas, jeigu nėra žinomas
AB12345
reference_to_payer
Kliento kodas mokėtojo informacinėje sistemoje. Nesuteikiamas, jeigu nėra žinomas
AB12345
statement_id
Unikalus pervedimo patvritinimo numeris.
Svarbu. Patikrinkite ar pranešimas tokiu numeriu nebuvo gautas anksčiau, išsaugokite šį numerį
123456789
created_at
Pervedimo sukūrimo data
1448615390