Lokal kommunikation mellem PDV, service / SDK og PINPad
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
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
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
Kreditering, Konto, Terminal Aktivering, Transaktion og Webhooks
Behold din APIs og IOPAY webhooks og tilføje lokal TEF capture
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. |
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.
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
Bibliotek Indlejret i Din Applikation Angiver, hvornår PDV kan direkte forbruge plugin og styre lokal kommunikation med terminalen
Lokal service i baggrunden Din Applikation taler med ham via WebSocket, normalt på
ws://localhost:1337.
Fra det tomme projekt til den første betaling i fem trin
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
implementation(
"br.zoop.pos.plugin:zoop-pos-plugin-desktop-jvm:X.Y.Z"
)
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
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
Zoop.initialize(context)
val desktopPlugin = DesktopPlugin(
Zoop.constructorParameters()
)
Zoop.plug(desktopPlugin)
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
val activationRequest =
ZoopFoundationPlugin
.createDashboardActivationRequestBuilder()
.tokenCallback(/* receber e exibir o token */)
.confirmCallback(/* persistir dados confirmados */)
.build()
Zoop.post(activationRequest)
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
{
"marketplace": "<retornado-na-ativacao>",
"seller": "<retornado-na-ativacao>",
"accessKey": "<retornado-na-ativacao>"
}
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.
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.
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
Zoop.initialize(context) {
credentials {
marketplace = storedMarketplace
seller = storedSeller
accessKey = storedAccessKey
}
}
val desktopPlugin = DesktopPlugin(
Zoop.constructorParameters()
)
Zoop.plug(desktopPlugin)
Integrationstakt
Initialiserer uden legitimation, genererer tokens og venter på link gennem IOPAY portal
Din app butik markedsplads, seller og accessKey sikkert
Gemte data genbruges uden genindtastning af operatøren
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
Din Applikation anmoder om aktivering af Zoop komponenten og modtager en midlertidig token
Den token er rapporteret i Betaling Terminaler → Tilføj Terminal
SDK returnerer de data, som Din Applikation har brug for til fremtidige initialiseringer
Gem de returnerede data på en sikker måde. Evit markedsplads, seller og accessKey på brugerskærme, programlogfiler, åbne telemetri eller debug dumps
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
Betragt ikke fraværet af nøglen som en software- kun fejl i PDV Terminalen skal reguleres før transaktionen
Eksempel på kortopladning
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
Relér den lokale transaktion til ordren og operationen ledsaget af IOPAY.
Bevar NSU og tilladelseskode returneret til forsoning og støtte
Gem de tilgængelige data fra SDK-versionen i brug.
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.
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
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
java -version
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
ws://localhost:1337
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();
};
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.
{
"type": "activation"
}
I succes, Persist marketplace,
seller og accessKey for kommende initialiseringer
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
{
"type": "initialize",
"marketplace": "<valor recebido na ativacao>",
"seller": "<valor recebido na ativacao>",
"accessKey": "<valor recebido na ativacao>"
}
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
<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.
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
Transaktioner, driftsopdateringer og integrationsbegivenheder
Hold dit webhook endpoint og korrelér begivenheder med forespørgsel, terminal og lokal transaktion
Anbefalet korrelationsmodel
Brug din egen id til at linke betaling til din ansøgning anmodning, når tilgængelig
Gem identifikatorerne returneret af terminalen.
Opdatér operationens status med de begivenheder, IOPAY-integration har modtaget
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
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
Når det er relevant for lokal flow, skal du bruge kommandoerne dokumenteret af SDK til at afbryde / annullere en igangværende operation
Server har sin egen annullering og status message streams Treat Start, Selection, Succes, Failure and End i henhold til dokumentationen for den anvendte version
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
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
Brug en lokal mekanisme, der passer til platformen, og begræns adgangen til processer, der rent faktisk har brug for dataene
Indtast ikke accessKey eller tilsvarende data i logfiler, spor, fejlmeddelelser eller analytics
Aktivering er teknisk Luftfartsforetagendet bør ikke behøver at kopiere legitimationsoplysninger for at sælge
Checkliste før frigivelse af piloten
Akkreditering, konto- og transaktionsstrøm fortsætter gennem IOPAY-platforme, med webhooks valideret til integrationsbegivenheder og -transaktioner
Bekræft linket i Betalingsterminaler → Tilføj Terminal og genstart Din Applikation for at validere brugen af de gemte data
Vis SDK-beskeder, differentiér med succes simple flowtermination og behold TransactionId, NSU, autorisationskode og beviser / kvitteringdata
Denne kommunikationssvigt test, token udløb, opfangning afbrydelse og aflysninger i IOPAY flow og lokale lag, hvor det er relevant.
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
Aktiveringsdata lagret sikkert og fraværende fra skærme, logfiler og forkert telemetri
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
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

