Udvikler · TEF

Integrér TEF.

Din fysiske drift
styrket med IOPAY

Tænd din tilsluttede ansigt-til-ansigt salg ved at afslutte TEF! Bring styrken i ledelsen kontrol af Iopay teknologi til din operation

TEF placering + operation IOPAY
APP
Integratorlaget Din Applikation PDV + APIs + webhooks IOPAY
dens system
IO
Det centrale lag Platforme IOPAY Regnskabsføring · Transaktionel · aktivering · webhooks
IOPAY
SDK
Lokal fangst Desktop SDK / Server TEF kommunikation med terminalen
lokal
PIN
Følgende tabel viser følgende: PINPad / terminal Interaktion med kort og bærestof
TEF
01 · Oversigt

En veldefineret todelt integration

TEF in- person fangst finder sted lokalt mellem Din ApplikationZoop-komponenten og PINPad Betalingstransaktionen er dog fortsat integreret i IOPAY. Dette bevarer et enkelt lag for konto, transaktionsstyring, terminalaktivering, begivenheder og webhooks

✓
Hovedreglen i arkitekturen

Brug Zoop Desktop SDK eller Zoop Desktop Server til lokal TEF indfangning. Fortsæt med at bruge IOPAY APIs + webhooks for den resterende del af den operationelle og transaktionsmæssige cyklus

Personlig fange Zoop SDK / Server

Lokal kommunikation mellem PDV, service / SDK og PINPad

Det centrale lag IOPAY

Kreditering, Konto, Terminal Aktivering, Transaktion og Webhooks

Kundeintegration Din Applikation

Behold din APIs og IOPAY webhooks og tilføje lokal TEF capture

02 · Ansvar

Hvem gør hvad i integration

Den nedenfor beskrevne adskillelse forhindrer, at anvendelsen af Zoop-komponenten til lokal opsamling forveksles med en udveksling af hovedintegreringen af operationen

En del af Ansvar i forbindelse med projektet
Din Applikation Integrer TEF-optagelse med Zoop Desktop SDK eller Desktop Server og vedligehold integration med IOPAY APIs og webhooks
IOPAY Akkreditering af anlæg, konto, portal-terminalaktivering, webhooks og transaktionsstrøm
SDK / Server Zoop TEF lokalisering capture opkald og kommunikation mellem din ansøgning og PINPad
PINPad / terminal Fysisk anordning, der er ansvarlig for at interagere med kortet og bæreren under indfangning.
IO
- Dashboard - i Zoop-dokumentationen

Når Zoop-aktiveringsstrømmen for denne integrationsmodel anmoder om, at der bekræftes en token på instrumentbrættet, skal det operationelle link udfyldes den portal IOPAY → Betalingsterminaler → Tilføjelse terminal.

03 · Valg af integration

SDK Indlejret eller desktopserver

Der er to dokumenterede måder at implementere det lokale lag Begge bevare den samme IOPAY arkitektur for konto, aktivering og begivenheder

Den
Forside Zoop desktop SDK

Bibliotek Indlejret i Din Applikation Angiver, hvornår PDV kan direkte forbruge plugin og styre lokal kommunikation med terminalen

B. Andre varer
Dokumenteret alternativ Zoop Følgende er listen over følgende:

Lokal service i baggrunden Din Applikation taler med ham via WebSocket, normalt på ws://localhost:1337.

Følgende er en liste over følgende:

Fra det tomme projekt til den første betaling i fem trin

01

Forbered design og terminal

Bekræft med IOPAY terminal- og testmiljøet. Indstil Zoop - Maven-arkivet, vælg artefakten der svarer til din platform - JVM, Android eller KMP - og tilføj de hjælpeafhængigheder der er angivet i den officielle dokumentation Brug den aftalte version til projektet

Gradle · eksempel JVM
implementation(
    "br.zoop.pos.plugin:zoop-pos-plugin-desktop-jvm:X.Y.Z"
)
!
GitHub Pakker ≠ betaling kreditværdi

Downloader pakker kan kræve en GitHub bruger og en PAT med læsetilladelse Denne adgang er kun til udvikling / distribution af artefakten og er adskilt fra autentificering af terminalen

02

Start uden betalingslegitimation

Ved den første aktivering, boot Zoop uden legitimation blok og tilslutte DesktopPlugin. I JVM, også rapportere ansøgning data, når det kræves i SDK version; blok application ikke gælder for Android

Kotlin · første aktivering
Zoop.initialize(context)

val desktopPlugin = DesktopPlugin(
    Zoop.constructorParameters()
)

Zoop.plug(desktopPlugin)
03

Kør token og link til IOPAY portalen

Opret aktiveringsanmodningen med createDashboardActivationRequestBuilder()behandling af tokenCallback og sende anmodningen med: Zoop.post(). Vis token til operatøren og brug den på IOPAY em portalen Betalingsterminaler → Tilføjelsesterminal. Så vent på bekræftelsen returneret af SDK

Kotlin · aktiveringsstruktur
val activationRequest =
    ZoopFoundationPlugin
        .createDashboardActivationRequestBuilder()
        .tokenCallback(/* receber e exibir o token */)
        .confirmCallback(/* persistir dados confirmados */)
        .build()

Zoop.post(activationRequest)
04

Fortsæt aktivering og autentificer automatisk

Nej, ikke confirmCallbackgemme de data, der returneres ved aktivering I den næste initialisering, genbrug marketplace, seller og accessKey. Aktivering sker én gang pr. enhed, så længe disse data forbliver gyldige og tilgængelige

Logisk struktur · sikker opbevaring
{
  "marketplace": "<retornado-na-ativacao>",
  "seller": "<retornado-na-ativacao>",
  "accessKey": "<retornado-na-ativacao>"
}
05

Lav den første betaling

Før du sælger, bekræfte tilstedeværelsen af transaktionsnøglen på PINPad Derefter oprette et salg med DesktopPlugin.createPaymentRequestBuilder()Informer værdien i cent, modalitet og rater gældende og beskæftige sig med meddelelser, succes, fiasko og afslutning af flow.

✓
Ingen manuel registrering af betalingslegitimation

Din Applikation behøver ikke at anmode om eller forudindtaste betalingsnøgler for at aktivere hver terminal De tekniske data, der anvendes i følgende initialiseringer, er opnået i aktiveringsstrømmen og vedblive med selve programmet.

05 · SDK Indlejret

Zoop Desktop SDK integreret direkte i PDV

I denne tilgang, er capture komponent inden for Din Applikation plugin konverterer lokalt med PINPad, mens operationen forbliver knyttet til IOPAY infrastruktur

Indledning efter aktivering

Derefter marketplace, seller og accessKey Hvis de er blevet genvundet og vedholdende, skal du bruge disse værdier i drifttid til at genstarte SDK De må ikke manuelt indtastes af operatøren

Kotlin · senere start
Zoop.initialize(context) {
    credentials {
        marketplace = storedMarketplace
        seller = storedSeller
        accessKey = storedAccessKey
    }
}

val desktopPlugin = DesktopPlugin(
    Zoop.constructorParameters()
)

Zoop.plug(desktopPlugin)

Integrationstakt

Første gennemførelse Aktivering

Initialiserer uden legitimation, genererer tokens og venter på link gennem IOPAY portal

Persistens Modtagne data

Din app butik markedsplads, seller og accessKey sikkert

Næste henrettelser Følgende er en liste over følgende:

Gemte data genbruges uden genindtastning af operatøren

06 · Aktivering

Mønsteret er født i SDK og linket er afsluttet i IOPAY

Aktivering forbinder enheden med den korrekte konto Dette trin skal ske før den første transaktion og skal testes også efter du genstarter din ansøgning

1
Generér token

Din Applikation anmoder om aktivering af Zoop komponenten og modtager en midlertidig token

2
Portalen IOPAY

Den token er rapporteret i Betaling Terminaler → Tilføj Terminal

3
Bekræftelse af

SDK returnerer de data, som Din Applikation har brug for til fremtidige initialiseringer

!
Må ikke udsætte aktiveringsdata

Gem de returnerede data på en sikker måde. Evit markedsplads, seller og accessKey på brugerskærme, programlogfiler, åbne telemetri eller debug dumps

07 · Første betaling

Konsultér transaktionsnøglen før opladning

Zoop transaktionsnøglen skal være i PINPad for kortbetalinger der skal udføres Hvis du er fraværende, skal du trykke på IOPAY for at koordinere korrektionen med udstyrsleverandøren

!
PINPad uden transaktionsnøgle er ikke klar til salg

Betragt ikke fraværet af nøglen som en software- kun fejl i PDV Terminalen skal reguleres før transaktionen

Eksempel på kortopladning

Følgende tabel opsummerer resultaterne af undersøgelsen: SDK
val paymentRequest = DesktopPlugin
    .createPaymentRequestBuilder()
    .amount(1000)              // R$ 10,00 — valor em centavos
    .option(Option.CREDIT)
    .installments(2)
    .referenceId("pedido-84217")
    .callback(/* tratar sucesso e falha */)
    .build()

Zoop.post(paymentRequest)

Behandl også strømmen mellemliggende meddelelser til at vise operatøren instruktioner såsom nærmer sig, indsætter eller læser kortet Lokal feedback tillader PDV at holde styr på, hvad der sker i terminalen

Hvad der fortsætter af resultatet

Identifikation af produktet transactionId

Relér den lokale transaktion til ordren og operationen ledsaget af IOPAY.

Tilladelsen NSU + kode

Bevar NSU og tilladelseskode returneret til forsoning og støtte

Andre varer Modtagedata

Gem de tilgængelige data fra SDK-versionen i brug.

t
Må ikke anvendes - flowende - som synonym for godkendelse

Den callback onComplete indikerer, at strømmen er afsluttet, selv når der var en fiasko Overvej den godkendte betaling kun fra den tilsvarende succesfulde afkast og korrelere resultatet med IOPAY transaktion.

Følgende tabel opsummerer oplysningerne:

Alternativ via lokal WebSocket

Zoop Desktop Server kører som en lokal tjeneste og udsætter en WebSocket til Din Applikation Dit omfang fortsætter med at være TEF capture Akkreditering, konto, webhooks og transaktionsstrøm forbliver på IOPAY platforme

01

Installér og start tjenesten

Få installeringsprogrammet i officielle Zoop udgivelser I Windows og Linux-installationer beskrevet i vejledningen, forberede Java / JDK 17, gyldig med java -version og holde serveren kørende på PINPad- tilsluttet station

Terminal
java -version
02

Tilslut din app

Når Din Applikation og Desktop Server er på samme maskine, skal du oprette forbindelse til den lokale adresse nedenfor Treat socket åbning, meddelelser, fejl og lukning

WebSocket
ws://localhost:1337
JavaScript · forbindelseseksempel
const socket = new WebSocket('ws://localhost:1337');

socket.onopen = () => {
    console.log('Desktop Server conectado');
};

socket.onmessage = (event) => {
    const message = JSON.parse(event.data);
    handleZoopMessage(message);
};

socket.onerror = (error) => {
    handleSocketError(error);
};

socket.onclose = () => {
    handleSocketClosed();
};
03

Start aktiveringen

Send den ind. {"type":"activation"}. Når serveren reagerer med status tokenPræsentér feltet token og udfyld linket på IOPAY portalen Gem status success.

JSON · aktivering
{
  "type": "activation"
}

I succes, Persist marketplace, seller og accessKey for kommende initialiseringer

04

Start med de gendannede data

Send beskeden initialize anvender nøjagtigt de værdier, der er lagret efter aktivering. Feltet devicePort er valgfrit; når udeladt, kan serveren automatisk detektere PINPad. Vent lidt. status: success før der gives tilladelse til transaktioner

JSON · initialiser
{
  "type": "initialize",
  "marketplace": "<valor recebido na ativacao>",
  "seller": "<valor recebido na ativacao>",
  "accessKey": "<valor recebido na ativacao>"
}
05

Gennemføre fangsten i VPD

Brug JSON systemer dokumenteret af Desktop Server til lokale capture kommandoer og håndtere alle afkast Lokal respons tjener til at udføre PINPad oplevelse; transaktionsstyring og webhooks fortsætte gennem IOPAY

t
JSON markørerne er fyldt i runtime

<valor recebido na ativacao> repræsenterer de data, der opretholdes af dit program Disse er ikke oplysninger, som operatøren skal indtaste ved hver start.

09 · APIs & webhooks

Din Applikation modtager fortsat hændelser fra IOPAY.

Tilføjelse af TEF ændrer ikke den asynkrone integration aftale: Din Applikation fortsætter med at modtage webhooks fra IOPAY for hver begivenhed og transaktion i henhold til den aftalte integration SDK / Server Local Return supplerer PDV oplevelse; det fjerner ikke IOPAY begivenhed lag

Begivenhedslag IOPAY

Transaktioner, driftsopdateringer og integrationsbegivenheder

Endepunkt konfigureret Din Applikation

Hold dit webhook endpoint og korrelér begivenheder med forespørgsel, terminal og lokal transaktion

Anbefalet korrelationsmodel

Bestilt referenceId

Brug din egen id til at linke betaling til din ansøgning anmodning, når tilgængelig

Fangst TransactionId / NSU

Gem identifikatorerne returneret af terminalen.

Asynkron hændelse Webhook IOPAY

Opdatér operationens status med de begivenheder, IOPAY-integration har modtaget

✓
Et enkelt lag af begivenheder til din ansøgning

TEF komponenten er lokal, men Din Applikation behøver ikke at opgive den eksisterende strøm af IOPAY APIs og webhooks Fortsætte valideringen af webhooks af hver begivenhed og transaktion under homologation

10 · Fejl og aflysninger

Træningsfejl før godkendelse

Lad være med at validere godkendelsesscenariet Piloten skal overveje kommunikationsfejl, udløbet token, afbrydelse under opsamling, genstart ansøgning og aflysninger

SDK Annullering af kooperativ

Når det er relevant for lokal flow, skal du bruge kommandoerne dokumenteret af SDK til at afbryde / annullere en igangværende operation

Desktop Server JSON kommandoer

Server har sin egen annullering og status message streams Treat Start, Selection, Succes, Failure and End i henhold til dokumentationen for den anvendte version

!
Følgende er listen over de transaktioner, der ikke indgår i transaktionen:

Annullering gælder også for IOPAY-transaktionsstrømmen. Før en afgift gentages efter manglende kommunikation, bekræftes transaktionens faktiske status for at undgå dobbeltarbejde

11 · Sikkerhed

Aktiveringsdata skal forblive uden for grænsefladen og logfiler

markedsplads, seller og accessKey er en del af den tekniske opstart af enheden Din Applikation skal beskytte og bruge dem automatisk efter aktivering

Persistens Beskyttet oplagring

Brug en lokal mekanisme, der passer til platformen, og begræns adgangen til processer, der rent faktisk har brug for dataene

Observerbarhed Ingen hemmelighed i loggen

Indtast ikke accessKey eller tilsvarende data i logfiler, spor, fejlmeddelelser eller analytics

Operationel UX Ingen gentagelsestype

Aktivering er teknisk Luftfartsforetagendet bør ikke behøver at kopiere legitimationsoplysninger for at sælge

12 · Godkendelse

Checkliste før frigivelse af piloten

✓
Følgende er listen over de vigtigste operationer i IOPAY:

Akkreditering, konto- og transaktionsstrøm fortsætter gennem IOPAY-platforme, med webhooks valideret til integrationsbegivenheder og -transaktioner

✓
Terminal forbundet med kontrolkontoen

Bekræft linket i Betalingsterminaler → Tilføj Terminal og genstart Din Applikation for at validere brugen af de gemte data

✓
Resultat af den korrekt behandlede betaling

Vis SDK-beskeder, differentiér med succes simple flowtermination og behold TransactionId, NSU, autorisationskode og beviser / kvitteringdata

✓
Fejl og aflysninger

Denne kommunikationssvigt test, token udløb, opfangning afbrydelse og aflysninger i IOPAY flow og lokale lag, hvor det er relevant.

✓
Tilberedte PINPad

Bekræft tilstedeværelsen af transaktionsnøglen før det første salg Hvis den er fraværende, skal du trykke på IOPAY for at koordinere korrektionen med leverandøren

✓
Følgende er en liste over følgende:

Aktiveringsdata lagret sikkert og fraværende fra skærme, logfiler og forkert telemetri

13 · Referencer

Officiel dokumentation for gennemførelsen

Brug vejledningen nedenfor som en teknisk reference for versionen af komponenten installeret i projektet Parametre, kompatibilitet, versioner og protokoller kan udvikle sig; altid validere officiel dokumentation under gennemførelsen

t
Teknisk grundlag for denne side

Flowet er struktureret ud fra IOPAY 's tekniske vejledning for TEF integration og de offentlige referencer til Zoop. Brug den godkendte version til projektet og bekræft alle parametre i de officielle vejledninger på gennemførelsestidspunktet

Klar til at godkende den første terminal?

Administrer token gennem SDK eller Desktop Server, linke terminalen til IOPAY portal og validere fuld flow - lokal opsamling, transaktion og webhooks - før du går til produktion