Spôsob platby
API endpoint: /plugin/payment
Umožní na eshope vytvoriť vlastný spôsob platby. Po dokončení objednávky je možné vypísať vlastný html kód (napríklad presmerovanie na platobnú bránu).
Vytvorenie nového spôsobu platby
POST /plugin/payment
{ "name": "My Payment Method", "description": "Optional Description", "image": "https://plugin.tld/images/icon.png", "action": "https://plugin.tld/test-payment", "errorMessage": "Platbu se nepodařilo zaevidovat.", "successMessage": "Platba byla úspěšná.", "states": [ { "description": "Paid", "image": "https://plugin.tld/images/icon.png" }, { "description": "Unpaid", "image": "https://plugin.tld/images/icon.png" }, { "description": "Unknown", "image": "https://plugin.tld/images/icon.png" } ] }
Požiadavka vyššie vytvorí na eshope vlastný spôsob platby, vrátane jeho možných stavov. Po vytvorení platby bude potrebné eshopárom platbu prepojiť s konkrétnou dopravou. Zároveň ju môže prípadne nastaviť vlastnú cenu alebo zmeniť názov.
Príklad:
$curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => 'https://api.webareal.cz/plugin/payment', CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS => json_encode([ "name" => "My Payment Method", "description" => "Optional Description", "image" => "https://plugin.tld/images/icon.png", "action" => "https://plugin.tld/test-payment", "errorMessage" => "Platbu se nepodařilo zaevidovat.", "successMessage" => "Platba byla úspěšná.", "states" => [ [ "description" => "Paid", "image" => "https://plugin.tld/images/icon.png" ], [ "description" => "Unpaid", "image" => "https://plugin.tld/images/icon.png" ], [ "description" => "Unknown", "image" => "https://plugin.tld/images/icon.png" ] ] ]) CURLOPT_HTTPHEADER => array( 'X-Wa-api-token: ' . $api_token, // apiToken získáte při instalaci doplňku, viz. nápověda 'Authorization: Bearer ' . $bearer, // access token získáte zde, údaje zde (záložka API přístup) 'Content-Type: application/json' ), )); $response = curl_exec($curl); curl_close($curl); echo $response;
Vytvorenie objednávky
Po vytvorení objednávky sa odošle request na action
URL.
POST
{ "id": 1, //ID objednávky "orderNumber": "100001" //číslo objednávky, "price": 121.00, "currency": "CZK", "customer": "email@email.com", "returnUrl": "https://eshop/plugin_payment_after", //URL pro návrat "items": [ { "code": "product_1" //kód zboží, "name": "Product 1" "quantity": 1, "unit": "ks", "price": 100.00, //za jednotku "priceVat": 121.00, "vat": 21 } ] }
Ako odpoveď sa očakáva HTML kód (výpis hlášky o úspešnom dokončení objednávky, otvorení widgetu s platobnou bránou poprípade presmerovaní).
Návrat z platobnej brány do eshopu
Pri návrate z platobnej brány (prípadne z doplnku, ktorý spracoval stav platby) sa dá presmerovať na adresu https://domena-eshopu.tld/plugin_payment_after . Tejto adrese je potrebné odovzdať pomocou GET parametre payment
ktorý by mal obsahovať ID platobnej metódy a success
ktorý vyžaduje hodnoty 1 (true) alebo 0 (false). Na základe týchto informácií následne zákazník uvidí buď successMessage
alebo errorMessage
.
Stavy platieb
Po vytvorení objednávky a vykonaní platby je následne možné k objednávke pridať stav platby (zaplatené, nezaplatené a pod.). Zoznam dostupných platobných stavov je možné získať volaním GET /plugin/states
Pridanie stavu platbu k objednávke
POST /plugin/state/payment
{ "idOrder": 12345, "idState": 21 }
Požiadavka vloží k objednávke ID stavu platby, ktoré sa následne zobrazí pomocou skôr vloženého obrázku pri objednávke (maximálna veľkosť obrázku je 30x30 px).
Príklad:
$curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => 'https://api.webareal.cz/plugin/state/payment', CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS => json_encode([ "idOrder" => "12345", "idState" => "21", ]) CURLOPT_HTTPHEADER => array( 'X-Wa-api-token: ' . $api_token, // apiToken získáte při instalaci doplňku, viz. nápověda 'Authorization: Bearer ' . $bearer, // access token získáte zde, údaje zde (záložka API přístup) 'Content-Type: application/json' ), )); $response = curl_exec($curl); curl_close($curl); echo $response;
Zoznam ostatných requestov
POST /plugin/payment
- vytvorí novú platobnú metódu
PUT /plugin/payment/{id}
- update platobné metódy
DELETE /plugin/payment/{id}
- zmazanie platobnej metódy
POST /plugin/state/payment
- vloží k objednávke nový stav platby
PUT /plugin/state/payment
- upraví stav platby pri objednávke
DELETE /plugin/state/payment/{idOrder}
- zmaže stav platby pri objednávke
GET /plugin/state/payment/{idOrder}
- vráti stav platby pri danej objednávke
GET /plugin/states
- vráti zoznam všetkých dostupných stavov