Opis zlecenia
Szukam osoby z doświadczeniem w integrowaniu płatności.
Frontend:
- jest już gotowy (prosta apka w nuxt/vue z firebase auth i przyciskami paypala)
- można ją dowolne modyfikować
Backend:
- firebase functions (nodejs) do odbierania webhooków (nie IPN!!! Powinno to być zrobione przy pomocy nowej metody).
- ma aktualizować status użytkownika w bazie (firestore) przy każdej istotnej dla biznesu zmianie w subskrypcji tzn.:
-- User wybiera i kupuje plan (miesięczny/3-miesięczny/roczny z 14-dniowym okresem próbnym) - serwer dodaje pola w tabeli users (dla użytkownika który dokonał zakupu):
membership: "premium"
subscribedFrom: <data zakupu>
trial: true
trialExpires: <data końca okresu próbnego z paypala>
subscriptionExpires: <data następnej płatności z paypala>
billingType: <yearly / every-3-months / monthly>
subscriptionCanceled: false
Okres próbny dobiega końca - trial: false
Płatność została pomyślnie pobrana z konta usera - subscriptionExpires: <data następnej płatności z paypala>
Płatność nie może zostać pobrana z konta usera na koniec okresu rozliczeniowego:
membership: "basic"
subscriptionCanceled: true
Jeśli płatność przyjdzie z opóźnieniem serwer powinien to obsłużyć (ponownie ustawić):
membership: "premium"
subscriptionCanceled: false
User anulował subskrypcje przed końcem okresu rozliczeniowego:
- subscriptionCanceled: true (poza tym serwer nie wykonuje żadnej akcji do końca okresu rozliczeniowego)
- na koniec okresu rozliczeniowego (anulowana subskrypcja) - membership: "basic"
Paypal:
- screenshoty lub krótki opis konfiguracji (np. jakie eventy przy webhookach są właczone)
- włączone tylko wymagane eventy (niegenerowanie dodatkowych kosztów).
Dodatkowe informacje:
- nie trzeba dodawać reguł bezpieczeństwa (firestore rules).
- wymiana informacji pomiędzy paypalem a cloud functions musi być zabezpieczona i odporna na ataki (czyli np. zabezpieczona przed wysyłaniem requestów udających te od paypala)
- znasz lepsze rozwiązanie - pisz!!!