Sari la conținutul principal
← Înapoi la CutOptim ConfiguratorPlatformă proprie

Integrarea comenzilor de debitare în magazinul sau ERP-ul dumneavoastră

CutOptim Configurator se conectează la un magazin sau la un ERP propriu prin două verificări pe serverul dumneavoastră: oferta semnată și webhook-ul semnat. Ambele sunt HMAC-SHA256 simplu, verificabil în orice limbaj, iar exemplele de referință în Node și PHP arată cum.

Răspuns rapid

Pentru a primi comenzile configuratorului într-o platformă proprie, serverul dumneavoastră face două lucruri. Verifică oferta semnată înainte ca o linie să intre în coș și verifică webhook-ul semnat înainte de a salva o comandă. CutOptim nu încasează plăți și nu găzduiește magazine: coșul, plata și înregistrarea comenzii rămân la dumneavoastră.

Două verificări, ambele pe serverul dumneavoastră

O platformă proprie nu are un plug-in pe care să se sprijine, așa că încrederea stă în două semnături. Browserul poate afișa un preț, dar numai serverul dumneavoastră decide dacă îl crede.

EtapăCe soseșteCe verifică serverul dumneavoastră
Clientul comandă pe paginăEvenimentul cutoptim:order cu comanda și oferta ei semnatăTokenul ofertei, cu cheia dumneavoastră secretă la /cfg/v1/quote/verify
Comanda este plasatăUn webhook semnat la adresa pe care ați înregistrat-oSemnătura, fereastra de cinci minute și id-ul evenimentului
O reîncercare sau o retrimitereAcelași eveniment din nouNimic nou: id-ul evenimentului este deja salvat

Verificați oferta înainte de coș

Tokenul ofertei este promisiunea de preț. Serverul dumneavoastră întreabă CutOptim dacă este autentic, neexpirat și încă nefolosit, apoi compară ce declară cu linia din coș.

  1. Primiți comanda

    Pagina transmite scriptului dumneavoastră evenimentul cutoptim:order cu comanda și tokenul ei de ofertă.

  2. Întrebați CutOptim

    Serverul dumneavoastră trimite tokenul la /cfg/v1/quote/verify cu cheia secretă. Răspunsul spune dacă este valid, dacă o comandă l-a folosit deja și ce declarații poartă.

  3. Comparați declarațiile

    Chiriașul, moneda, expirarea și amprenta liniilor cu preț trebuie să corespundă liniei pe care urmează să o adăugați. Orice altceva este refuzat.

  4. Adăugați sau refuzați

    Doar un token care trece ajunge în coș. Un preț modificat în browser pică aici.

Cheia de semnare nu este niciodată dată magazinelor. Verificarea locală a formei și a expirării unui token economisește o cerere, dar numai /cfg/v1/quote/verify poate confirma semnătura.

Primiți comanda prin webhook

Când o comandă este plasată, CutOptim o trimite la adresa pe care ați înregistrat-o, semnată, ca să puteți recunoaște că vine de la noi.

  • — Antetul CutOptim-Signature poartă un marcaj de timp t și o semnătură v1: un HMAC-SHA256 al marcajului de timp, al unui punct și al corpului brut.
  • — Verificați octeții bruți exact cum au sosit; un corp interpretat și scris din nou nu se mai potrivește.
  • — Refuzați un marcaj de timp cu mai mult de cinci minute diferență, în urmă sau în față, și comparați semnăturile în timp constant.
  • — Salvați id-ul evenimentului și răspundeți cu succes la un id deja văzut: o reîncercare îl repetă.

Cod de referință în Node și PHP

Două exemple mici fac exact acest lucru, fără framework și fără dependențe: un modul Node și un singur fișier PHP. Copiați-l pe cel potrivit, înlocuiți stocarea din memorie cu un tabel cu cheie unică pe id-ul evenimentului și păstrați secretele în mediu.

Cod de referință: verificarea unui webhook (Node)
import { createWebhookReceiver } from './cutoptim-verify.mjs';

const receive = createWebhookReceiver({
  secrets: [process.env.WEBHOOK_SECRET],          // whsec_... from the admin route, never in the repository
  async onEvent(event) { /* store event.data.order, keyed by event.id */ },
});

// in your HTTP handler - the RAW body, not parsed JSON:
const { status } = await receive({ rawBody, headers: req.headers });
res.writeHead(status).end();

Ce rămâne la dumneavoastră

Configuratorul calculează prețul și planifică tăierea; platforma dumneavoastră păstrează tot ce urmează după aceea.

  • — Coșul, casa și plata: CutOptim nu încasează plăți.
  • — Înregistrarea comenzii și onorarea ei, în baza dumneavoastră de date sau în ERP.
  • — Clienții dumneavoastră și paginile magazinului: nu există un magazin găzduit.

Porniți un sandbox gratuit în consolă pentru a primi cheile și secretul webhook-ului. Exemplele de referință se pot descărca de pe această pagină.

Unde se potrivește

Orice sistem care poate primi o cerere HTTPS și poate calcula un HMAC poate prelua aceste comenzi: un magazin scris intern, un storefront headless, un instrument de oferte sau un ERP. Dacă aveți nevoie doar de motorul de debitare, nu și de ecranul de comandă, Engine API îl oferă.

Întrebări frecvente

Am nevoie de un plug-in ca să-mi conectez platforma proprie?
Nu. O platformă proprie are nevoie de două verificări pe serverul ei, oferta semnată și webhook-ul semnat, iar exemplele în Node și PHP le arată pe ambele. Nu există cod CutOptim de instalat în magazinul dumneavoastră.
Cum știu că un preț nu a fost modificat în browser?
Serverul dumneavoastră trimite tokenul ofertei la /cfg/v1/quote/verify cu cheia secretă și compară declarațiile lui cu linia din coș. Un token modificat sau expirat este raportat ca invalid. Un token deja folosit de o comandă rămâne valid, dar revine cu redeemed: true: verificați ambele câmpuri și țineți propria evidență a tokenurilor folosite.
Ce se întâmplă dacă endpoint-ul meu este căzut când sosește o comandă?
CutOptim reîncearcă livrarea după un program crescător, până la șase încercări pe parcursul mai multor ore. Fiecare reîncercare poartă același id de eveniment, deci un receptor care salvează id-urile procesează comanda o singură dată.
CutOptim încasează plata sau îmi găzduiește magazinul?
Nu. Configuratorul calculează prețul și planifică tăierea, apoi predă comanda semnată platformei dumneavoastră. Coșul, plata și onorarea rămân în propriul dumneavoastră sistem.
Ce limbaje de programare acoperă exemplele?
Node și PHP. Semnătura este HMAC-SHA256 simplu peste corpul brut, deci aceleași câteva rânduri funcționează în Python, Java, C# sau orice alt limbaj cu o bibliotecă criptografică.

Calculatoare, ghiduri și domenii înrudite

Mai multe despre configurator

Aveți nevoie doar de motorul de debitare? Vedeți Engine API

JuridicTermenii configuratorului (EN) ·Acord de prelucrare a datelor (EN) ·Notă de confidențialitate pentru cumpărători ·Licențe terțe (EN)