Płatności w Twojej aplikacji
Ecomfly jako płatności dla aplikacji z Lovable, Bolt, v0, Cursora albo własnego kodu: link płatności, sprawdzanie dostępu i webhooki.
Ecomfly · · 2 min czytania
Spis treści
Jak to działa
- Tworzysz produkt w Ecomfly (jednorazowy albo subskrypcję). Każdy produkt ma link płatności
https://www.ecomfly.shop/c/<slug>(Produkty, przycisk „Kopiuj link do płatności”). - Przycisk „Kup” w Twojej aplikacji otwiera ten link (w tej samej albo nowej karcie). Checkout nie działa w ramce iframe na obcej domenie.
- Kupujący płaci (BLIK, karta, Przelewy24, Apple Pay / Google Pay). Pieniądze trafiają na Twoje konto Stripe, Ecomfly wysyła maile, fakturę i obsługuje subskrypcję.
- Twoja aplikacja daje dostęp: pyta Ecomfly, czy e-mail zalogowanej osoby kupił produkt, albo reaguje na webhook.
Wariant ceny wybierzesz w linku: /c/<slug>?price=<id opcji>.
Sprawdzanie dostępu
W Ustawienia, API & MCP wygeneruj token API (ecf_…). To sekret: trzymaj go tylko na serwerze (np. w Supabase Edge Function, w zmiennej środowiskowej), nigdy w kodzie przeglądarki. Endpoint nie odpowiada przeglądarkom (brak CORS).
curl "https://www.ecomfly.shop/api/v1/access?email=kasia@example.pl&product=<slug lub id produktu>" \
-H "Authorization: Bearer $ECOMFLY_API_TOKEN"
{
"email": "kasia@example.pl",
"access": true,
"products": [
{
"product_id": "…",
"name": "Kurs online",
"checkout_slug": "abc23xyz",
"kind": "subscription",
"since": "2026-10-01T10:00:00Z",
"subscription": { "status": "active", "current_period_end": "2026-11-01T10:00:00Z", "cancel_at_period_end": false }
}
]
}
- Bez
productdostaniesz wszystkie produkty, do których e-mail ma dostęp. - Produkt jednorazowy: dostęp daje opłacone zamówienie (także order bump). Zwrot odbiera dostęp.
- Subskrypcja: dostęp trwa, dopóki subskrypcja jest aktywna (
active,trialing,past_due, gdy Stripe ponawia płatność). - E-mail porównujemy bez względu na wielkość liter. Widzisz tylko swój biznes.
- Błędy:
401zły token,403token bez uprawnienia „Widzi zamówienia i sprzedaż”,400zły e-mail,404nieznany produkt,429limit (300 zapytań na minutę na token).
Webhooki
W Ustawienia, API & MCP, Webhooki dodaj adres HTTPS swojej aplikacji. Zdarzenia:
| Zdarzenie | Kiedy |
|---|---|
order.created | opłacone zamówienie (też pierwsza płatność subskrypcji) |
subscription.started | nowa subskrypcja |
subscription.canceled | subskrypcja się skończyła: odbierz dostęp |
Każde żądanie ma nagłówek X-Ecomfly-Signature: t=<unix>,v1=<hex>, czyli HMAC-SHA256 z <t>.<surowe body> z sekretem webhooka. Sprawdź go przed użyciem danych:
import { createHmac, timingSafeEqual } from 'node:crypto'
export function isFromEcomfly(rawBody: string, header: string, secret: string): boolean {
const parts = Object.fromEntries(header.split(',').map((p) => p.split('=')))
const expected = createHmac('sha256', secret).update(`${parts.t}.${rawBody}`).digest('hex')
const fresh = Math.abs(Date.now() / 1000 - Number(parts.t)) < 300
return fresh && expected.length === parts.v1?.length && timingSafeEqual(Buffer.from(expected), Buffer.from(parts.v1))
}
Webhook może przyjść więcej niż raz: rozpoznawaj powtórki po data.order_id albo data.subscription_id. Na wszelki wypadek przy logowaniu sprawdzaj też dostęp przez /api/v1/access.
Prompt do wklejenia (Lovable, Bolt, v0, Cursor, Claude)
Dodaj płatności przez Ecomfly. Przycisk „Kup” otwiera link https://www.ecomfly.shop/c/<slug>. Nie buduj własnego checkoutu ani koszyka. Dostęp do płatnych funkcji sprawdzaj po stronie serwera (np. Supabase Edge Function): GET https://www.ecomfly.shop/api/v1/access?email=<e-mail zalogowanego użytkownika>&product=<slug> z nagłówkiem Authorization: Bearer i tokenem z sekretu ECOMFLY_API_TOKEN; dostęp jest, gdy odpowiedź ma "access": true. Nigdy nie wysyłaj tokenu do przeglądarki. Opcjonalnie przyjmuj webhooki Ecomfly (order.created, subscription.started, subscription.canceled) i weryfikuj nagłówek X-Ecomfly-Signature (HMAC-SHA256 z "<t>.<body>").
Asystenci AI (MCP)
Ten sam biznes możesz prowadzić z Claude albo Cursora przez serwer MCP: produkty, zamówienia, klienci, mailing, rabaty (API, webhooki i MCP).
Najczęstsze pytania
Nie. Płaci w checkoutcie i podaje e-mail. Twoja aplikacja rozpoznaje go po tym e-mailu. Kupujący może dodatkowo zajrzeć do swoich zakupów w panelu /my.
Zbuduj swój biznes online w Ecomfly.