Struktura API
Floowie API požadavky se odesílají na adresu http://www.floowie.com/api s HTTP GET parametery. Existují 3 základní povinné parametry pro každý požadavek. Popis parametrů se nachází v příslušné dokumentaci akce požadavku. Parametry nemají povinné pořadí.
klíč | hodnota |
---|---|
apikey * | obsahuje Váš API klíč |
action * | popisuje akci požadavku |
hash * | obsahuje bezpečnostní ověření požadavku, proces vytvoření je popsán níže |
* - poviná pole
Vytváření hashe
Hash je kontrolní suma md5 všech GET parametrů (všechno co následuje po "?"), s výjimkou samotného parametre hash, připojených k privátnímu klíči.
Zakódováni hashe
E-mail je jedním z citlivých dat uživatele, a proto by měl být uchován v tajnosti. Všechny email parametre muí být zašifrovány vašim privátním klíčem. Tady je PHP funkce pro zakódování:
function encodeEmail( $email, $privateKey ) { $j = 0; $hash = ''; $privateKey = sha1($privateKey); $strLen = strlen($email); $keyLen = strlen($privateKey); for ($i = 0; $i < $strLen; $i++) { $ordStr = ord(substr($email,$i,1)); if ($j == $keyLen) { $j = 0; } $ordKey = ord(substr($privateKey,$j,1)); $j++; $hash .= strrev(base_convert(dechex($ordStr + $ordKey),16,36)); } return $hash; }
Příklad
Předpokádejme nasledovné klíče:
API klíč: 9876543210ZYXVWUTSRQPONMLKJIHGFE
Privátní klíč: abcdefghijklmnopqrstuwvxyz123456
E-mail "user@host.com" bude zakódován do z5l474v5k4b4v5o416o274s5j4, čímž parametre požadavku můžou vypadat nasledovně:
apikey : 9876543210ZYXVWUTSRQPONMLKJIHGFE
email : z5l474v5k4b4v5o416o274s5j4
format : php
action : prepaidOrder
title : 10
amounttype : 0
amount : 5
date : 978303600
hash bude vypočítán (v jazyku PHP):
md5('abcdefghijklmnopqrstuwvxyz123456apikey=9876543210ZYXVWUTSRQPONMLKJIHGFE&email=z5l474v5k4b4v5o416o274s5j4&format=php&action=prepaidOrder&title=10&amounttype=0&amount=5&date=978303600')
z čeho dostaneme
e8a44d652e05844bc37cf0f972e18a64
a může být vložen kdekoli mezi parametre URL
Výstup
API podporuje 4 formáty výstupu: PHP, json, plain, csv a XML. Ja výchozí ja nastavený formát json, ale ten může být změněn v požadavku parametrem format. Data v plain formátu jsou oddělené tabulátorem (\t) a novým řádkem (\n)
key | value |
---|---|
lang | Jazyk výstupu a e-mailů zaslaných uživatelům možné hodnoty: en, sk, cs; předvolené: en |
format | format výstupních dat. Možné hodnoty: xml, php, json, plain, csv |
json | PHP | XML | plain | csv |
---|---|---|---|---|
{ |
Array |
|
key1 data1 |
"key1","key2","key3" |
Není-li uvedeno jinak, výstup je buď kód chyby (klíč 'error') s chybovou správou (klíč 'message') nebo hodnota 'OK' s klíčem akce požadavku.
Array
(
[order] => OK
)
Array
(
[error] => 100
[message] => "Error message"
)