Preskoči na glavni sadržaj
← Natrag na CutOptim ConfiguratorVlastita platforma

Integracija narudžbi rezanja u vlastiti web shop ili ERP

CutOptim Configurator povezuje se s vlastitim web shopom ili ERP-om dvjema provjerama na vašem poslužitelju: potpisanom ponudom i potpisanim webhookom. Oboje je obični HMAC-SHA256 koji može provjeriti svaki jezik, a referentni primjeri u Nodeu i PHP-u pokazuju kako.

Kratki odgovor

Da biste narudžbe iz konfiguratora primali u vlastitoj platformi, vaš poslužitelj radi dvije stvari. Provjerava potpisanu ponudu prije nego što stavka uđe u košaricu i provjerava potpisani webhook prije nego što spremi narudžbu. CutOptim ne naplaćuje i ne hostira web shop: košarica, plaćanje i zapis narudžbe ostaju kod vas.

Dvije provjere, obje na vašem poslužitelju

Vlastita platforma nema dodatak na koji bi se oslonila, pa povjerenje počiva na dva potpisa. Preglednik može prikazati cijenu, ali samo vaš poslužitelj odlučuje hoće li joj vjerovati.

TrenutakŠto stižeŠto provjerava vaš poslužitelj
Kupac naručuje na straniciDogađaj cutoptim:order s narudžbom i njezinom potpisanom ponudomToken ponude, s vašim tajnim ključem na /cfg/v1/quote/verify
Narudžba je zaprimljenaPotpisani webhook na adresu koju ste upisaliPotpis, petominutni prozor i identifikator događaja
Ponovni pokušaj ili ponovno slanjeIsti događaj još jednomNišta novo: identifikator događaja već je spremljen

Provjerite ponudu prije košarice

Token ponude je obećanje cijene. Vaš poslužitelj pita CutOptim je li autentičan, nije li istekao i nije li već iskorišten, a zatim uspoređuje što tvrdi sa stavkom u košarici.

  1. Primite narudžbu

    Stranica predaje vašoj skripti događaj cutoptim:order s narudžbom i njezinim tokenom ponude.

  2. Pitajte CutOptim

    Vaš poslužitelj šalje token na /cfg/v1/quote/verify s vašim tajnim ključem. Odgovor kaže je li važeći, je li ga već iskoristila neka narudžba i koje tvrdnje nosi.

  3. Usporedite tvrdnje

    Najmoprimac, valuta, istek i sažetak procijenjenih stavki moraju odgovarati stavci koju namjeravate dodati. Sve ostalo se odbija.

  4. Dodajte ili odbijte

    U košaricu stiže samo token koji prođe. Cijena promijenjena u pregledniku ovdje pada.

Ključ za potpisivanje nikada se ne daje trgovinama. Lokalna provjera oblika i isteka tokena štedi jedan zahtjev, ali potpis može potvrditi samo /cfg/v1/quote/verify.

Primajte narudžbe webhookom

Kad se narudžba zaprimi, CutOptim je šalje na adresu koju ste upisali, potpisanu da možete prepoznati da dolazi od nas.

  • — Zaglavlje CutOptim-Signature nosi vremensku oznaku t i potpis v1: HMAC-SHA256 vremenske oznake, točke i sirovog tijela.
  • — Provjeravajte sirove bajtove točno onako kako su stigli; tijelo koje je parsirano i ponovno zapisano više se ne podudara.
  • — Odbijte vremensku oznaku stariju ili noviju od pet minuta i uspoređujte potpise u konstantnom vremenu.
  • — Spremite identifikator događaja i na već viđeni identifikator odgovorite uspjehom: ponovni pokušaj ga ponavlja.

Referentni kod u Nodeu i PHP-u

Dva mala primjera rade upravo to, bez frameworka i bez ovisnosti: Node modul i jedna PHP datoteka. Kopirajte onaj koji vam odgovara, zamijenite spremnik u memoriji tablicom s jedinstvenim ključem na identifikatoru događaja i čuvajte tajne u okruženju.

Referentni kod: provjera webhooka (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();

Što ostaje kod vas

Konfigurator izračunava cijenu i planira rezanje; vaša platforma zadržava sve što slijedi nakon toga.

  • — Košarica, blagajna i plaćanje: CutOptim ne naplaćuje.
  • — Zapis narudžbe i njezina isporuka, u vašoj bazi podataka ili ERP-u.
  • — Vaši kupci i stranice vašeg web shopa: ne postoji hostirani web shop.

Pokrenite besplatni sandbox u konzoli da dobijete svoje ključeve i tajnu webhooka. Referentne primjere možete preuzeti na ovoj stranici.

Gdje se uklapa

Svaki sustav koji može primiti HTTPS zahtjev i izračunati HMAC može preuzimati ove narudžbe: web shop pisan u kući, headless storefront, alat za ponude ili ERP. Ako vam treba samo mehanizam rezanja, a ne zaslon za narudžbe, to pokriva Engine API.

Česta pitanja

Trebam li dodatak da povežem vlastitu platformu?
Ne. Vlastita platforma treba dvije provjere na svom poslužitelju, potpisanu ponudu i potpisani webhook, a primjeri u Nodeu i PHP-u pokazuju obje. Nema CutOptim koda koji biste morali instalirati u svoj web shop.
Kako znam da cijena nije promijenjena u pregledniku?
Vaš poslužitelj šalje token ponude na /cfg/v1/quote/verify s vašim tajnim ključem i uspoređuje njegove tvrdnje sa stavkom u košarici. Token koji je izmijenjen ili istekao prijavljuje se kao nevažeći. Token koji je narudžba već iskoristila ostaje važeći, ali se vraća s redeemed: true: provjerite oba polja i vodite vlastitu evidenciju iskorištenih tokena.
Što ako moja krajnja točka ne radi kad stigne narudžba?
CutOptim ponavlja isporuku prema rastućem rasporedu, do šest pokušaja kroz nekoliko sati. Svaki ponovni pokušaj nosi isti identifikator događaja, pa primatelj koji sprema identifikatore narudžbu obrađuje samo jednom.
Naplaćuje li CutOptim plaćanje ili hostira moj web shop?
Ne. Konfigurator izračunava cijenu i planira rezanje te potpisanu narudžbu predaje vašoj platformi. Košarica, plaćanje i isporuka ostaju u vašem vlastitom sustavu.
Koje programske jezike pokrivaju primjeri?
Node i PHP. Potpis je obični HMAC-SHA256 nad sirovim tijelom, pa isto nekoliko redaka radi u Pythonu, Javi, C#-u i svakom drugom jeziku s kriptografskom bibliotekom.

Povezani kalkulatori, vodiči i djelatnosti

Više o konfiguratoru

Treba vam samo motor za rezanje? Pogledajte Engine API

Pravne informacijeUvjeti konfiguratora (EN) ·Ugovor o obradi podataka (EN) ·Obavijest o privatnosti za kupce ·Licencije trećih strana (EN)