Integracje

Zbieraj zweryfikowane opinie automatycznie: wtyczka do Twojej platformy albo jedno żądanie API.

◷ W PRZYGOTOWANIU

Shoper

Aplikacja w Shoper App Store (webhook order.status). Do tego czasu: API.

planowane
◷ W PRZYGOTOWANIU

IdoSell

Integracja przez IdoSell API / webhooki. Do tego czasu: API.

planowane
◷ W PRZYGOTOWANIU

Shopify

Aplikacja (webhook orders/fulfilled). Do tego czasu: API.

planowane
✓ DOSTĘPNE

Własny sklep / API

Dowolna platforma: jedno żądanie HTTP z podpisem HMAC po realizacji zamówienia.

Jak to działa — 4 kroki

  1. Załóż konto w panelu sklepu i skopiuj klucz oraz sekret API.
  2. Zainstaluj wtyczkę lub wyślij zamówienie przez API po jego realizacji.
  3. Po ustawionej liczbie dni klient dostaje e-mail z gwiazdkami — klik zapisuje ocenę (link jednorazowy, ważny 30 dni).
  4. Osadź widżet z oceną na stronie sklepu (kod w panelu).

Dokumentacja API v1

Adres bazowy: https://legalniwsieci.pl/api/v1/. Każde żądanie (poza widżetem) musi zawierać nagłówki:

NagłówekWartość
X-LWS-Keyklucz publiczny sklepu (lws_pk_…)
X-LWS-Timestampczas UNIX w sekundach (tolerancja ±300 s)
X-LWS-Signaturehex(HMAC-SHA256(sekret, timestamp + "." + surowe_body))

POST /api/v1/orders

Body JSON: order_id (wymagane), email lub phone (wymagane jedno), customer_name (opcjonalnie, do zwrotu w e-mailu), delay_days (0–60, domyślnie z panelu). Odpowiedzi: 201 scheduled, 200 duplicate (idempotentne po order_id), 401 zły podpis/czas, 422 brak danych, 429 limit (600/h).

GET /api/v1/ping

Test podpisu (puste body). Zwraca {"ok":true}.

GET /api/v1/widget?k=KLUCZ

Publiczne (CORS), bez podpisu: średnia, liczba i 3 ostatnie opinie w JSON.

Przykład — PHP

<?php
$key = "lws_pk_...";  $secret = "lws_sk_...";
$body = json_encode(["order_id" => "12345", "email" => "klient@example.com", "customer_name" => "Anna", "delay_days" => 7]);
$ts = (string) time();
$sig = hash_hmac("sha256", $ts . "." . $body, $secret);
$ch = curl_init("https://legalniwsieci.pl/api/v1/orders");
curl_setopt_array($ch, [CURLOPT_POST => true, CURLOPT_POSTFIELDS => $body, CURLOPT_RETURNTRANSFER => true,
  CURLOPT_HTTPHEADER => ["Content-Type: application/json", "X-LWS-Key: $key", "X-LWS-Timestamp: $ts", "X-LWS-Signature: $sig"]]);
echo curl_exec($ch);  // {"id":"o…","status":"scheduled","send_at":"…"}

Przykład — curl / bash

KEY=lws_pk_...; SECRET=lws_sk_...; TS=$(date +%s)
BODY='{"order_id":"12345","email":"klient@example.com"}'
SIG=$(printf '%s.%s' "$TS" "$BODY" | openssl dgst -sha256 -hmac "$SECRET" | sed 's/.* //')
curl -X POST https://legalniwsieci.pl/api/v1/orders -H "Content-Type: application/json" \
  -H "X-LWS-Key: $KEY" -H "X-LWS-Timestamp: $TS" -H "X-LWS-Signature: $SIG" -d "$BODY"

Widżet

<div data-lws-key="lws_pk_TWOJ_KLUCZ"></div>
<script src="https://legalniwsieci.pl/widget.js" async></script>

RODO: przekazując dane zamówienia, sklep powinien poinformować klientów w swojej polityce prywatności o przekazaniu e-maila/telefonu do Legalni w Sieci w celu zaproszenia do opinii. Szczegóły: Polityka prywatności, zasady opinii.