Comenzi și plăți

Plăți GetCourse → Google Sheets (n8n, Payments v3)

Scop

La fiecare plată, GetCourse apelează un webhook n8n, iar n8n adaugă plata în foaia produsului corespunzător din Google Sheets.

Scenariul vechi (v2) scria în tabel la fiecare webhook. Pe 12.10.2026 a căzut când GetCourse a trimis un lot de plăți vechi (~4 pe secundă): limita Google este de 60 de citiri pe minut. În plus, v2 nu verifica duplicatele: o plată repetată se aduna a doua oară.

Cum funcționează acum (din 12.10.2026, 12:08 UTC)

  1. Receptor v3 — primește webhook-ul de la GetCourse și pune plata în coadă. Adresa webhook-ului este cea veche (payments-webhook-v2), în GetCourse nu s-a schimbat nimic. Pentru fiecare plată se construiește o cheie (comandă + denumirea comenzii + sumă + dată); o plată repetată intră în coadă cu statusul duplicate și nu ajunge în tabel.
  2. Coada — tabelul de date n8n «Payments Queue v3». Statusuri: new (așteaptă), processing (în lucru), done (scris), duplicate (repetare), error (eroare, textul este în rând).
  3. Procesator v3 — pornește o dată pe minut, ia până la 200 de rânduri noi, citește catalogul și foile dintr-o singură citire și actualizează tabelul dintr-o singură scriere. Astfel limita Google nu este depășită.
  4. Google Sheets — foaia «Produs» este catalogul (Product ID → foaia produsului, numărul de rate). Foile produselor au coloanele: Link Comanda, Email, Tarif, Suma Total, Suma Încasată, Data ultimii plăți, Manager Comanda, Data primei plăți, Suma primei plăți.

Legături

Ce facem dacă…

Test fără pagube

Trimitem un webhook cu product_id=test-unknown și manager=TEST: procesatorul pune error și nu scrie în tabel. Apoi ștergem din coadă rândurile cu manager=TEST.