Floowie - API

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
{
"key1":"data1",
"key2":"data2"
}
Array
(
 [key1] => data1
 [key2] => data2
)


<response>
<key1>data1</key1>
<key2>data2</key2>
</response>


key1	data1
key2 data2
"key1","key2","key3"
data1a,"data1b",data1c
data2a,data2b,"data2c"

 

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"
)