Pasanna Táirgí Digiteacha a Uathoibriú le Webhooks

Ní leathanach statach é Pas Táirge Digiteach — is imeacht é gach scanadh ar féidir leat tógáil air. Freagair do qr.scanned le haghaidh anailísíochta, athorduithe agus brataí aisghairme, coinnigh sonraí an phas úr ó do chóras ERP, agus fíoraigh gach pálasta le HMAC-SHA256. Treoir ar ardchaighdeán forbróra le cód.

le QR3 Redaktion

Pasanna Táirgí Digiteacha a Uathoibriú le Webhooks

Caitheann an chuid is mó d'fhoirne le Pas Táirge Digiteach mar leathanach: cruthaíonn tú é, priontálann tú an cód QR, agus déanann tú dearmad air. Fágann sin an comhartha is úsáidí ar an mbord. Gach uair a scanann duine an cód QR ar tháirge, is imeacht é sin — fíordhuine, i bhfíorthír, a bhfuil fíoraonad ina lámh, ag fíornóiméad. Sreangaigh na himeachtaí sin isteach i do chruach agus scoireann an pas de bheith ina leathanach statach agus éiríonn sé ina thosach ar phíblíne uathoibrithe. Taispeánann an treoir seo conas liostáil le qr.scanned, gach pálasta a fhíorú, agus scanadh agus nuashonruithe a chasadh ina sreafaí oibre dáiríre leis an SDK qr3.

Cén fáth gur foinse imeachtaí é DPP, seachas leathanach statach

Ní hé luach pas ná an leathanach a fheiceann tomhaltóir uair amháin. Is é an sruth idirghníomhaíochtaí timpeall air: scanadh sa réimse, athruithe sonraí ó do chóras ERP, aistrithe saolré. Is rud é gach ceann acu ar féidir le do chórais freagairt dó i bhfíor-am.

Iompaíonn webhooks an gnáthmhúnla vótála droim ar ais. In ionad fiafraí "ar tharla aon rud?" ar uaineadóir, glaonn qr3 ortsa an nóiméad a tharlaíonn sé. I measc na gcineálacha imeachtaí a astaíonn an t-ardán tá qr.scanned, móide qr.created, qr.updated agus qr.deleted le haghaidh athruithe saolré. Is é an ceann a thearcúsáideann an chuid is mó d'fhoirne ná qr.scanned: lasann sé nuair a scanann tomhaltóir, teicneoir nó oifigeach custaim táirge sa saol fíor.

Iompraíonn pálasta qr.scanned an comhthéacs atá uait chun gníomhú — lena n-áirítear an tír ina ndearnadh an scanadh agus an dpp/code id a aithníonn cén t-aonad a scanadh. Is leor sin chun anailísíocht, athlíonadh agus loighic aisghairme a thiomáint gan duine ar bith sa lúb.

Liostáil le qr.scanned

Dírigh críochphointe webhook ar do sheirbhís agus láimhseáil an t-imeacht. Cuireann an SDK qr3 fíoraitheoir ar fáil ionas nach gá duit comhlachtaí amha a pharsáil de láimh:

import express from "express";
import { verifyWebhook } from "@qr3/sdk";

const app = express();
const secret = process.env.QR3_WEBHOOK_SECRET!;

// Use the raw body so the signature matches the exact bytes qr3 signed.
app.post("/webhooks/qr3", express.raw({ type: "application/json" }), (req, res) => {
  const event = verifyWebhook(req.body, req.headers["qr3-signature"], secret);

  if (event.type === "qr.scanned") {
    // event payload includes fields like the scan country and the dpp/code id
    handleScan(event);
  }

  res.sendStatus(200);
});

Tá an láimhseálaí tanaí d'aon ghnó: fíoraigh, brainseáil ar event.type, admhaigh go tapa le 200. Déan an obair throm (scríobh anailísíochta, glaonna ERP) go hasincronach ionas nach gcuireann críochphointe mall riamh bac ar an admháil.

Sínithe a fhíorú (verifyWebhook, HMAC-SHA256) — déan é seo i gcónaí

Is URL poiblí é críochphointe webhook. Is féidir le duine ar bith a aimsíonn é POST a dhéanamh chuige. Má chuireann tú muinín sa chomhlacht gan a sheiceáil cé a sheol é, is féidir le hionsaitheoir "scanadh" a bhrionnú, athorduithe bréagacha a spreagadh, nó brataí aisghairme bréige a lasadh. Fíoraigh an síniú i gcónaí sula ngníomhaíonn tú ar phálasta.

Síníonn qr3 gach webhook le HMAC-SHA256 thar chomhlacht na hiarrata, ag baint úsáide as rún do chríochphointe. Sroicheann an síniú sa cheanntásc iarrata qr3-signature. Athríomhann verifyWebhook(body, signature, secret) an HMAC agus déanann sé comparáid air; mura meaitseálann sé, caitheann sé eisceacht agus diúltaíonn tú don iarratas:

import { verifyWebhook } from "@qr3/sdk";

app.post("/webhooks/qr3", express.raw({ type: "application/json" }), (req, res) => {
  try {
    const event = verifyWebhook(req.body, req.headers["qr3-signature"], secret);
    process(event);
    res.sendStatus(200);
  } catch {
    // signature mismatch → not from qr3 (or body was altered in transit)
    res.sendStatus(401);
  }
});

Trí riail a choinníonn é seo macánta:

  • Fíoraigh i gcoinne na mbeart amha. Is féidir le hath-shraitheánú JSON eochracha a athordú agus spás bán a athrú, rud a bhriseann an HMAC. Gabh an comhlacht amh (thuas, express.raw).
  • Coinnigh an rún ina rún. Maireann sé i do thimpeallacht, ní bhíonn sé riamh i gcód cliaint ná i stóras.
  • Teip dúnta. Gan síniú bailí → 401, gan fo-iarmhairtí. Ná "próiseáil ar aon nós" riamh ar mhímheaitseáil.

Patrúin: anailísíocht / athordú / aisghairm

Nuair a chuireann tú muinín san imeacht, clúdaíonn dornán patrún an chuid is mó den rud atá uait:

function handleScan(event: { type: string; data: { country?: string; dpp_id?: string } }) {
  // 1) Analytics — where and how often are products scanned?
  metrics.increment("dpp.scan", { country: event.data.country });

  // 2) Re-order — a scan can signal consumption or field activity
  if (event.data.country) maybeReplenish(event.data.dpp_id, event.data.country);

  // 3) Recall flag — scans of a flagged unit alert your team
  if (isRecalled(event.data.dpp_id)) alertRecall(event.data.dpp_id, event.data.country);
}
  • Anailísíocht: comhiomlánaigh scanadh de réir tíre agus aonaid chun rannpháirtíocht fíorshaoil a fheiceáil — cé na margaí a scanann i ndáiríre, agus cé na SKUanna a fheiceann an idirghníomhaíocht iardhíola is mó.
  • Athordú / athlíonadh: is féidir le maidhm scanadh i réigiún comharthaí éilimh a chothú nó sreafaí oibre athstoic a spreagadh i do chóras ERP.
  • Aisghairm / sábháilteacht: má tá aonad faoi aisghairm, is deis é scanadh chun teagmháil a dhéanamh le pé duine atá á choinneáil — cuir do fhoireann ar an airdeall, nó nocht fógra ar an bpas féin.

Ní theastaíonn vótáil ná baisc oíche ó aon cheann díobh seo. Tarlaíonn siad an túisce a scanaítear an táirge.

Sonraí a choinneáil cothrom le dáta trí client.dpp.update

Is leath den lúb é freagairt do scanadh; is é an leath eile ná an pas féin a choinneáil cruinn. Tá súil ag rialacháin amhail ESPR (EU 2024/1781) agus an Rialachán Ceallraí (EU 2023/1542) go léireoidh sonraí an phas an réaltacht thar shaolré an táirge — lorg carbóin athríofa, treoracha deisithe nuashonraithe, spriocanna ábhair athchúrsáilte a baineadh amach.

Tiomáin na nuashonruithe sin ón gcóras taifid. Nuair a athraíonn luach i do chóras ERP, brúigh chuig an bpas é:

import { QR3 } from "@qr3/sdk";

const client = new QR3({ apiKey: process.env.QR3_API_KEY! });

// GTIN and serial are immutable; data fields are updatable.
await client.dpp.update(dppId, {
  battery_data: { carbon_footprint_kg: 58, recycled_content_pct: 16 },
});

Toisc go n-ionchódaíonn an cód QR URL réiteora cobhsaí (https://qr3.app/dpp/{gtin}/{serial}, cuir ?format=jsonld leis le haghaidh JSON-LD), ní athphriontálann tú lipéad riamh chun sonraí a athrú. Fanann an aitheantas socair; fanann an t-ábhar taobh thiar de cothrom le dáta. Déan é seo a phéireáil le qr.updated agus is féidir leat fógra a leathadh amach aon uair a athraíonn pas — ag dúnadh na lúibe idir do chóras ERP, an pas, agus aon duine atá ag faire síos an tsrutha.

Tábla imeachtaí: imeacht → cad atá le huathoibriú

Imeacht Lasann sé nuair Cad atá le huathoibriú
qr.scanned Scanaítear cód QR táirge sa réimse Anailísíocht de réir tíre, comharthaí athlíonta, foláirimh aisghairme
qr.created Cruthaítear pas nua Innéacsáil é, sioncronaigh le PIM/ERP, cuir an fhoireann chatalóige ar an eolas
qr.updated Athraíonn sonraí an phas Aththaisc an leathanach poiblí, leath fógraí athraithe amach
qr.deleted Baintear pas Cuir taifid inmheánacha faoi leac, cúlghair tagairtí síos an tsrutha

Tosaigh le qr.scanned le haghaidh rannpháirtíochta agus comharthaí réimse; cuir na himeachtaí saolré leis de réir mar a shioncronaíonn tú pasanna isteach i do chórais níos leithne.

Ceisteanna coitianta

An gá dom an síniú a fhíorú má tá URL mo chríochphointe rúnda? Ní mór. Ní rún é URL — sceitheann sé i logaí, i seachfhreastalaithe agus i stair an bhrabhsálaí. Is é fíorú HMAC le verifyWebhook an t-aon rud a chruthaíonn gur tháinig pálasta ó qr3 i ndáiríre.

Cad a tharlaíonn má bhíonn mo chríochphointe as feidhm nuair a lasann imeacht? Admhaigh go tapa le 200 a luaithe atá fíoraithe agat, agus déan obair mhall go hasincronach ionas nach gcuireann fadhbanna sealadacha síos an tsrutha bac riamh ar an bhfreagra. Coinnigh do neamhspleáchas féin ar dpp/code id ionas nach ndéantar seachadadh athráite a chomhaireamh faoi dhó.

An féidir liom GTIN nó sraithuimhir a nuashonrú trí client.dpp.update? Ní féidir — tá GTIN agus sraithuimhir do-athraithe; is iad aitheantas cobhsaí an táirge iad. Ní féidir ach na réimsí sonraí a nuashonrú. Is é an do-athraitheacht sin go díreach a ligeann don chód QR priontáilte fanacht bailí go deo.

Foinsí

Tosaigh saor in aisce agus sreangaigh do chéad webhook DPP: app.qr3.app/sign-up

Postanna gaolmhara