Developers · TEF & PINPad

Integreeri TEF.

Sinu kohapealne tegevus
võimendatud IOPAY abil

Tõhusta oma ühendatud kohapealse müügi, lõpetades TEF! Võtke Iopay tehnoloogia juhtimisvõime oma tegevusele

TEF kohalik + IOPAY operatsioon
APP
Integratori kutsu Sinu Rakendus PDV + APIs + webhooks IOPAY
teine süsteem
IO
Sentraalkäik IOPAY platvormid Konto · tehing · aktiveerimine · webhooks
IOPAY
SDK
Kohalik vangistus Desktop SDK / Server TEF kommunikatsioon terminaaliga
kohalik
PIN
Fisikaline seadme PINPad / terminal Kaardi ja kandja vaheline suhtlemine
TEF
01 · Ülevaade

Üksindamine, mis on jagatud kaheks selgelt määratletud laagiks.

TEF isiklik kinnipeamine toimub kohapeal vahel Sinu Rakendus, Zoop-komponent ja PINPad. Makse tehing jääb siiski IOPAY integreeritud. See säilitab ühe laadi konto, tehingute haldamise, terminali aktiveerimise, sündmuste ja webhooks jaoks.

✓
Arhitektuuri peamine reegel

Kasuta Zoop Desktop SDK või Zoop Desktop Server TEF kohalik püügi. Jätkake kasutamist IOPAY APIs + webhooks ülejäänud operatiiv- ja tehingujärgeks.

Põhjustamine Zoop SDK / Server

PDV, SDK ja PINPad vaheline kohalik side.

Sentraalkäik IOPAY

Tunnistus, konto, terminali aktiveerimine, tehing ja webhooks.

kliendi integreerimine Sinu Rakendus

Hoidke oma APIs ja webhooks IOPAY ja lisage kohalik TEF püügi.

02 · vastutus

Kes teeb mida integreerimisel.

Allpool kirjeldatud eraldamine välistab Zoop osa kasutamist kohapealse püügi jaoks segadusse ajamise peamise operatsiooni integreerimise vahetamisega.

Parte Tegevuse vastutus
Sinu Rakendus Integreerida TEF püügi Zoop Desktop SDK või Desktop Serveriga ja säilitada integreerimine APIs ja webhooks IOPAYga.
IOPAY Korraldamine, konto, terminalite aktiveerimine portaali kaudu, webhooks ja tehingute liikuvus.
SDK / Server Zoop TEF ja Sinu Rakendus ja PINPad vaheline kommunikatsioon.
PINPad / terminal Füüsiline seadme, mis on vastutav interaktsioonist kaardi ja kandjaga püügi ajal.
IO
Dashboard Zoop'i dokumentatsioonis

Selle integreerimismudeliga, kui Zoop aktiveerimisvoog nõuab, et tooki oleks kinnitatud IOPAY portaal → Makse terminalid → Terminaali lisamine.

03 · Integratsiooni valik

SDK-i sisestatud või Desktop Server.

Seal on kaks dokumenteeritud viisi kohalikku katmist rakendada. Mõlemad säilitavad sama IOPAY arhitektuuri arvestamiseks, aktiveerimiseks ja sündmustele.

A
Avaleht Zoop Desktop SDK

Teie rakenduse sisseehitatud raamatukogu. Märgitakse, millal PDV saab otse kasutada pluginit ja kontrollida kohalikku suhtlemist terminaliga.

B
dokumenteeritud alternatiiv Zoop Desktop Server

Kohalik teenindus taustal. Sinu Rakendus räägib temaga WebSocket'i kaudu, tavaliselt ws://localhost:1337.

04 · Quickstart

Vaevalt projektist kuni esimesele maksele viie sammuga.

01

Lõpeta projekt ja terminali

Kontrollige IOPAY-ga katsemenetlus ja -keskkond. Seada Zoop Maven'i repository, vali oma platvormi vastav artefakt - JVM, Android või KMP - ja lisa ametlikus dokumendis esitatud abiülesandeid. Kasutage oma projekti jaoks kokkulepitud versiooni.

Gradle · JVM näide
implementation(
    "br.zoop.pos.plugin:zoop-pos-plugin-desktop-jvm:X.Y.Z"
)
!
GitHub pakendid ≠ maksekredients

Pakettide alla laadimine võib nõuda GitHub'i kasutajat ja PAT'i lugemise luba. See juurdepääs on üksnes artefakti arendamiseks/tarbimiseks ja on eraldatud terminali autentimisest.

02

Alusta ilma maksekredientideta

Esimese aktiveerimisel alustada Zoop ilma tunnusblokiga ja ühendada DesktopPlugin. JVM-is teatage ka rakenduse andmetest, kui need on nõutud SDK versiooniga; application See ei kehti Androidis.

Kotlin · esimene aktiveerimine
Zoop.initialize(context)

val desktopPlugin = DesktopPlugin(
    Zoop.constructorParameters()
)

Zoop.plug(desktopPlugin)
03

Käivita token ja liige portalli IOPAY

Loe üles aktiveerimisnõue createDashboardActivationRequestBuilder()Treat the tokenCallback ja saatke taotlus koos Zoop.post(). Näita oma token operaatorile ja kasutage seda IOPAY portaalis Makse terminalid → Terminalide lisamine. Siis oota kinnitust SDK poolt.

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

Zoop.post(activationRequest)
04

Jätke aktiveerimine ja autentiseerige automaatselt

Ei confirmCallback, salvestab aktiveerimisel tagasi toodud andmed. Lähedal algatusel kasuta uuesti marketplace, seller ja accessKey. Aktiveerimine toimub üks kord seadme kohta, kuni need andmed jäävad kehtivad ja kättesaadavad.

Logiline struktuur · turvaline ladustamine
{
  "marketplace": "<retornado-na-ativacao>",
  "seller": "<retornado-na-ativacao>",
  "accessKey": "<retornado-na-ativacao>"
}
05

Tegevake esimene makse

Enne müüki kinnita, et tehingukäik on PINPadis. Lase siis müüa DesktopPlugin.createPaymentRequestBuilder(), teatab selle kohta, kas see on võimalik, kui on võimalik, tsentide, modaalsuse ja osade kohta, ning käsitleb sõnumid, edu, ebaõnnestumist ja voogu lõpetamist.

✓
Mansiale tellimata maksekrediendid

Sinu Rakendus ei pea iga terminaali aktiveerimiseks eelnevalt taotlema ega sisestama makse võtme. Järgmiste alguste tehnilised andmed on saadud aktiveerimisvoogus ja jätkatud rakenduse poolt.

05 · SDK Embedded

Zoop Desktop SDK integreeritud otse PDV-sse.

Selle lähenemisviisi puhul on püügikomponent Sinu Rakendus. Plugin räägib PINPadiga kohapeal, samal ajal kui toiming on veel seotud IOPAY infrastruktuuriga.

Autamine pärast aktiveerimist

Seejärel marketplace, seller ja accessKey kui need on taastatud ja jätkatud, kasutage neid väärtusi jooksval ajal SDK uuesti käivitamiseks. Neid ei tohi operaator käsikäeliselt kirjutada.

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

val desktopPlugin = DesktopPlugin(
    Zoop.constructorParameters()
)

Zoop.plug(desktopPlugin)

Integratsiooni seisund

Esimene täide Aktiveerimine

See algab ilma tunnita, genereerib tokenid ja ootab sidet IOPAY portaali kaudu.

Kohtumine Tegevused

Sinu Rakendus varustab turgu, seller ja accessKey turvaliselt.

Lähedased hukkamised Auto-boot

Salvestatud andmed taaskasutatakse ilma, et operaator oleks neid uuesti kirjutanud.

06 · Aktiveerimine

Token sündib SDK-l ja seos lõpeb IOPAY-l.

Aktiveerimine ühendab seadme õigese kontoga. See samm peab toimuma enne esimest tehingut ja peab olema testitud ka pärast Sinu Rakendus uuesti käivitamist.

1
Token Generate

Sinu Rakendus taotleb Zoop komponendi aktiveerimist ja saab ajutise token.

2
IOPAY portaal

Toon on teatatud Payment Terminals → Add Terminal'is.

3
Kohustus

SDK toob tagasi andmeid, mida Sinu Rakendus peab jätkama tulevaste alguste jaoks.

!
Ära näita aktiveerimisandmeid

Tagastatud andmeid salvestatakse kaitstud viisil. Vältige marketplace, seller ja accessKey kasutajakeskrites, rakenduslogis, avatud telemetria või debug dumpides.

07 · Esimene makse

Kontrollige tehingukähe enne tasumist.

Transaktsionaalne võti Zoop peab olema PINPadis, et teha kaardiga makseid. Kui see pole olemas, lülitage IOPAY, et korrigeerida seadme tarnijaga.

!
Transaktsiaalne võtmetud PINPad ei ole müügiks valmis.

Ärge käsitlege võti puudumist ainult PDV-i tarkvaraga taastavaks vigaks. Terminaal peab enne tehingut regulaarseks muutma.

Kaardi tasumise näide

Kotlin · Desktop 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)

Samuti käsitlevad vahekordseid voolu sõnumid, et näidata operaatorile juhiseid, nagu lähenemine, sisestamine või kaardi lugemine. Kohalik tagasisaatmine võimaldab PDVil jälgida, mis toimub terminali juures.

Mida tulemusest jääb

Identifikatsioon transactionId

Võrdle kohalik tehing IOPAYga kaasatud taotlusesse ja operatsioonile.

Autorisatsioon NSU + kood

Jätke NSU ja tagasi antud luba koodi tasakaalustamiseks ja toetamiseks.

Tõendused Küljeandmed

Säilitage kasutuses SDK versiooni poolt kättesaadavad tõendite andmed.

i
Ärge kasutage "voogu lõppu" heaks kiites

Kõnnetus onComplete See näitab, et voolu on lõpetatud, isegi siis, kui on toimetulek. Mõista heakskiidetud makse vastava edukuse tagasimaksmise põhjal ja korrigeeri tulemust IOPAY tehinguga.

08 · Desktop Server

Alternatiiv on kohalik WebSocket.

Zoop Desktop Server töötab nagu kohalik teenus ja esitab WebSocket Sinu Rakendus jaoks. Teie eesmärk on endiselt TEF püümine. Akrediteerimine, konto, webhooks ja tehingute voog jääb platvormidele IOPAY.

01

Installeeri ja alusta teenust

Saada asendaja Zoop ametlikes avaldustes. Juhendis kirjeldatud Windows ja Linux installatsioonidel valmistada Java/JDK 17, valideerida java -version ja hoiab Server PINPadiga ühendatud jaamist käimas.

Terminal
java -version
02

Lingita oma rakendus

Kui Sinu Rakendus ja Desktop Server on samal masinal, liige allpool olevale kohalikule aadressile. Tegelege soketi avamise, sõnumite, vigade ja sulgemisega.

WebSocket
ws://localhost:1337
JavaScript · ühendus näide
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

Alusta aktiveerimine

Saada {"type":"activation"}. Kui server vastab staatusele tokennäita välja token ja lõpeta seos IOPAY portaalis. Säästa staatuse success.

JSON aktivering
{
  "type": "activation"
}

Suukseks, püsi marketplace, seller ja accessKey Järgmiste alguste jaoks.

04

Alustage taastatud andmetega

Lisendage sõnum initialize kasutades täpselt pärast aktiveerimist säilitatud väärtusi. Kampus devicePort See on vabatahtlik; kui see jäetakse välja, saab Server automaatselt tuvastada PINPadi. Oota status: success enne tehingute lubamist.

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

Tööd kinni PDV-s

Kasutage Desktop Serveris dokumenteeritud JSON skeeme kohalike salvestuskommandoideks ja käsitlege kõiki tagasimakseid. Kohaliku vastuse abil juhitakse PINPadis eksperimente; tehingute juhtimine ja webhooks jätkub IOPAYga.

i
JSON märgid on täidetud jooksval ajal

<valor recebido na ativacao> See on teie rakenduse poolt säilitatud andmed. See ei ole teave, mida operator peab iga alguse korral kirjutama.

09 · APIs & webhooks

Sinu Rakendus võtab jätkuvalt IOPAY sündmusi vastu.

TEF lisamine ei muuda asinkroonilise integreerimise lepingu: Sinu Rakendus saab IOPAY poolt iga sündmuse ja tehingu webhooks vastavalt lepingulisele integreerimisele. SDK/Serveri kohalik tagasisaatmine täiendab PDV kogemust; see ei kõrvalda IOPAY sündmuste laagrit.

Tegevusõnum IOPAY

Tehingud, operatiivised uuendused ja integratsiooni sündmused.

Endpoint configured Sinu Rakendus

Hoidke oma webhook lõpppunkti ja korrigeerige sündmusi kohalike nõudmise, terminaali ja tehinguga.

Rekommendatud korrelatsiooni mudel

Tõel referenceId

Kasutage oma ID, et ühendada Sinu Rakendus taotlusele makse, kui see on saadaval.

Tõstmine transactionId / NSU

Hoidke tagastatud identifitseerijad terminaali kohalikest voogist.

Asinkroonne sündmus Webhook IOPAY

Päevastage operatsiooni seisundit IOPAY integreerimisel saadud sündmustega.

✓
Üks sündmuste katus Teie rakenduse jaoks

Osa TEF on kohalik, kuid Sinu Rakendus ei pea lahkuma olemasoleva APIs ja webhooks IOPAY voogist. Jätkake tüübikinnituse ajal iga sündmuse ja tehingu webhooks.

10 · Vääred ja tühistused

Harjutage puudusi enne kinnitamist.

Ära kinnita ainult heakskiitmise stsenaariumi. Õppejõud peab arvestama sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõiduki sõ

SDK Kooperatsiooni tühistamine

Kui see kehtib kohalikul vool, kasutage SDK dokumenteeritud juhiseid, et peatada/lõpeta käivitust.

Desktop Server JSON käskid

Serveril on oma kustutamis- ja staatussõnade voodid. Käituda alguses, valikus, edukas, ebaõnnestumises ja lõppedes vastavalt kasutatud versiooni dokumentidele.

!
Tehingute tühistamine × tehingute staatus

Validierida tühistamist ka IOPAY tehingute voogis. Enne, kui teete, et te ei saa pärast teatamise ebaõnnestumist uuesti nõuda, kinnita tehingu tegelikku seisundit, et vältida topeltööd.

11 · Turvalisus

Aktiveerimisandmed peavad jääma väljapoole kasutajaliidma ja logid.

marketplace, seller ja accessKey on osa seadme tehnilist algustamist. Sinu Rakendus peab neid kaitsma ja kasutama automaatselt pärast aktiveerimist.

Kohtumine Kohustatud ladustamine

Kasuta platvormi kohane kohalik mehhanism ja piira juurdepääsu protsessidele, kes tegelikult vajavad andmeid.

Jälgitavus Logis saladuseta

Ärge salvestage accessKey'i või samaväärseid andmeid logis, jälgides, eksimiste või analüüsides.

operatiivne UX Mitte korduvat tulistamist

Aktiveerimine on tehniline. Käitaja ei pea müümiseks oma tunnuseid kopeerima.

12 · Homologatsioon

Kontrolliga enne kui piloot vabastatakse.

✓
IOPAY keskses operatsioonis

Akrediteerimine, konto ja tehingute voog jätkub IOPAY platvormidel, milles webhooks on integreerimise sündmuste ja tehingute jaoks kinnitatud.

✓
Terminaal, mis on seotud õigese kontoga

Võtke kinnitust Linkis "Payment Terminals → Add Terminal" ja alustage Sinu Rakendus, et validida salvestatud andmete kasutamist.

✓
Tõesti töödeldud makse tulemus

Näita SDK sõnumid, eristage lihtsa voogu lõpetamise edukus ja säilitage transaktionId, NSU, lubade kood ja tõendite/tunnistuste andmed.

✓
Võrdused ja tühistused

Kommmunikatsioonikorra testimine, tokeni aegumine, püügi katkestamine ja voolu tühistamine IOPAY ja kui see on asjakohane, kohalikul tasemel.

✓
PINPad valmis

Kontrollige tehingukäe olemasolu enne esimest müüki. Kui see pole olemas, kasutage IOPAY ja koordineerige korrigeerimist tarnijaga.

✓
Toht püsivus

Turvaliselt säilitatud aktiveerimisandmed, mis ei ole ekraanid, logid ja ebaõiglane telemetria.

13 · Referendid

ametlik rakendamise dokumentatsioon.

Kasutage allpool olevaid juhiseid projekti paigaldatud komponendi versiooni tehnilise viitega. Parameetrid, koostalitlus, versioonid ja protokollid võivad muutuda; kinnita alati ametlikku dokumente rakendamise ajal.

i
Tehnikaal põhinev selle lehekülje kohta

Vaatlus on struktuuritud TEF integreerimise tehnilise juhendi IOPAY ja avalike Zoop võrdlusaluste põhjal. Kasutage projekti heaks kiidetud versiooni ja kinnita rakendamise ajal ametlike juhiste täielikud parameetrid.

Kas olete valmis esimese terminaali heaks kiitma?

Käivita token SDK või Desktop Server'i kaudu, siduda terminal IOPAY portaalile ja valideerida kogu voog - kohalik, tehing ja webhooks - enne tootmist.