API štruktúra
Floowie API požiadavky sa odosielajú ja adresu http://www.floowie.com/api s HTTP GET parametrami. Existujú 3 základné povinné parametre pre každú požiadavku. Popis ďalších parametrov sa nachádza v príslušnej dokumentácii akcie požiadavku. Parametre nemajú povinné poradie.
kľúč | hodnota |
---|---|
apikey * | obsahuje váš API kľúč |
action * | definuje akciu pre požiadavku |
hash * | obsahuje bezpečnostné overenie pre požiadavku, proces vytvorenia je opísaný nižšie |
* - povinné polia
Vytváranie hashu
Hash je kontrolná suma md5 všetkých GET parametrov (všetko čo nasladuje po "?"), s výnimkou samotního parametru hash, pripojených k vášmu privátnemu kľúču.
Zakódovanie užívateľského e-mailu
E-mail je citlivým údajom užívateľa a preto by sa mal držať v tajnosti. Všetky email parametre musia byť povinne zakódované vašim privátnym kúčom. Tu je PHP funkcia pre zakódovanie:
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; }
Príklad
Predpokladajme nasledovné kľúče:
API kľúč: 9876543210ZYXVWUTSRQPONMLKJIHGFE
Privátny kľúč: abcdefghijklmnopqrstuwvxyz123456
E-mail "user@host.com" bude zakódovaný do z5l474v5k4b4v5o416o274s5j4, takže parametre požiadavku môžu vyzerať nasledovne:
apikey : 9876543210ZYXVWUTSRQPONMLKJIHGFE
email : z5l474v5k4b4v5o416o274s5j4
format : php
action : prepaidOrder
title : 10
amounttype : 0
amount : 5
date : 978303600
hash bude vyrátaný ako (v jazyku PHP):
md5('abcdefghijklmnopqrstuwvxyz123456apikey=9876543210ZYXVWUTSRQPONMLKJIHGFE&email=z5l474v5k4b4v5o416o274s5j4&format=php&action=prepaidOrder&title=10&amounttype=0&amount=5&date=978303600')
čo je
e8a44d652e05844bc37cf0f972e18a64
a môže byť vložený kdekoľvek medzi parametre URL
Výstup
API podporuje 4 formáty výstupu: PHP, json, plain, csv a XML. Pedvoený formát výstupu je json, ale ten môže byť zmenený paramatrom format v požiadavku. Dáta v plain formáte sú oddelené tabulátorom (\t) a novým riadkom (\n)
key | value |
---|---|
lang | jazyk výstupu a e-mailov odoslaných užívateľom možné hodnoty: en, sk, cs; predvolené: en |
format | formát výstupných dát. Možné hodnoty: xml, php, json, plain, csv |
json | PHP | XML | plain | csv |
---|---|---|---|---|
{ |
Array |
|
key1 data1 |
"key1","key2","key3" |
If not stated otherwise, the output is either an error code (key 'error') with an error message (key 'message') or a value 'OK' with a key of the action requested.
Array
(
[order] => OK
)
Array
(
[error] => 100
[message] => "Error message"
)