Kehittäjät · TEF ja PINPAD

Integroi TEF.

Oma toimintasi paikan päällä
IOPAYn tehostamana

Virtaa yhteenliitetty kasvokkain myyminen TEF:lla! Tuo Iopay-teknologian hallintavoima käyttöön

TEF-paikannus + operaatio IOPAY
APP
Integraattoreiden kerros Oma Sovelluksesi PDV+ APIs+ webhooks IOPAY
sen järjestelmä
IO
Keskikerros Alustat IOPAY Kirjanpidollinen · transaktio · aktivointi · webhooks
IOPAY
SDK
Paikallinen saalis Desktop SDK / Palvelin TEF-yhteys päätelaitteeseen
paikallinen
PIN
Seuraavassa taulukossa esitetään seuraavat seikat: PINPAD / pääte Vuorovaikutus kortin ja kantaja-aineen kanssa
TEF
01 · Yleiskatsaus

Hyvin määritelty kaksitasoinen integraatio

TEF-henkilön vangitseminen tapahtuu paikallisesti välillä Oma SovelluksesiZoop-komponentti ja PINPAD-maksutapahtuma on kuitenkin edelleen integroitu IOPAY-maksutapahtumaan. Näin säilytetään yksi kerros tiliä, tapahtumahallintaa, pääteaktivaatiota, tapahtumia ja webhooks-ohjelmaa varten

✓
Arkkitehtuurin pääsääntö

Käytä Zoop Desktop SDK- tai Zoop Desktop-palvelinta paikallinen TEF-kaappaus. Jatka käyttöä IOPAY APIs + webhooks Toiminta- ja liiketoimisyklin loppuosa

Henkilökohtaisesti vangittu Zoop SDK / Palvelin

Paikallinen viestintä PDV:n, palvelun/SDK:n ja PINPADin välillä

Keskikerros IOPAY

Luokitus, tili, pääteaktivaatio, tapahtuma ja Webhooks

Asiakkaiden kotoutuminen Oma Sovelluksesi

Pidä APIs ja IOPAY webhooks ja lisää paikallinen TEF-kaappaus

02 · Vastuut

Kuka tekee mitäkin kotoutumisessa

Alla oleva erottaminen estää Zoop-komponentin käytön paikallisessa kaappauksessa, eikä se sekoita toiminnan pääintegraation vaihtoon.

Osa Vastuu hankkeesta
Oma Sovelluksesi Integroi TEF-kaappaus Zoop Desktop SDK - tai Desktop-palvelimella ja säilytä integrointi IOPAY APIs - ja webhooks -laitteilla
IOPAY Akkreditointi, tili, portaalipääteaktivaatio, webhooks ja tapahtumavirta
SDK / Palvelin Zoop TEF-paikannuspuhelu ja viestintä sovelluksen ja PINPADin välillä
PINPAD / pääte Fysikaalinen laite, joka on vastuussa vuorovaikutuksesta kortin ja kantaja-aineen kanssa kiinnioton aikana.
IO
– Dashboard – Zoop-dokumentaatiossa

Tätä integrointimallia varten on käytettävä toiminnallista linkkiä aina, kun Zoop-aktivaatiovirta pyytää, että ruudulle vahvistetaan . Portaali IOPAY → Maksupäätteet → Lisää pääte.

03 · Kotouttamisen valinta

SDK Upotettu tai työpöytäpalvelin

Paikallisen kerroksen käyttöön on kaksi dokumentoitua tapaa säilyttää sama IOPAY-arkkitehtuuri tiliä, aktivointia ja tapahtumia varten

yy)
Etusivu Zoop Desktop SDK

Oma Sovelluksesi:een upotettu kirjasto ilmoittaa, milloin PDV voi suoraan kuluttaa liitännän ja kontrolloida paikallista viestintää päätelaitteen kanssa

B. Muut
Dokumentoitu vaihtoehto Zoop Seuraavassa on luettelo seuraavista:

Taustalla paikallinen palvelu Oma Sovelluksesi keskustelee hänen kanssaan WebSocketin kautta, yleensä ws://localhost:1337.

Seuraava luettelo on seuraava:

Tyhjästä hankkeesta ensimmäiseen maksuun viidessä vaiheessa

01

Valmistele suunnittelu ja pääte

Vahvista IOPAY-pakkauksella pääte- ja testiympäristö. Määritä Zoop:n Maven-varasto, valitse alustaasi vastaava esine – JVM, Android tai KMP – ja lisää virallisessa dokumentissa mainitut lisäriippuvuudet Käytä projektin sovittua versiota

Gradle · esimerkki JVM
implementation(
    "br.zoop.pos.plugin:zoop-pos-plugin-desktop-jvm:X.Y.Z"
)
!
GitHub-paketit maksuvarmuuden vuoksi

Ladattavat paketit voivat vaatia GitHub-käyttäjän ja lukuluvalla toimivan PAT-käyttäjän Tämä käyttö on vain esineen kehittämistä ja jakelua varten ja se on erillinen päätelaitteen tunnistamisesta

02

Aloita ilman maksutunnuksia

Ensimmäisen aktivoinnin yhteydessä käynnistä Zoop ilman tunnuslukua ja yhdistä DesktopPlugin. JVM:ssä raportoi myös SDK-version vaatimat sovellustiedot; lohko application ei koske Androidia

Kotlin · ensimmäinen aktivointi
Zoop.initialize(context)

val desktopPlugin = DesktopPlugin(
    Zoop.constructorParameters()
)

Zoop.plug(desktopPlugin)
03

Suorita poletti ja linkitä IOPAY-portaaliin

Luo aktivointipyyntö createDashboardActivationRequestBuilder()hoidetaan tokenCallback ja lähettää pyynnön mukana: Zoop.post(). Näytä kuponki operaattorille ja käytä sitä IOPAY em -portaalissa Maksupäätteet → Lisää pääte. Odota sitten SDK:n vahvistusta

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

Zoop.post(activationRequest)
04

Jatka aktivointia ja todenna automaattisesti

Ei , ei confirmCallbackTallenna aktivoimalla palautetut tiedot Seuraavassa aloitusvaiheessa uudelleenkäyttö marketplace, seller ja accessKey. Aktivointi tehdään kerran laitetta kohden niin kauan kuin nämä tiedot pysyvät voimassa ja saatavilla

Looginen rakenne · turvallinen säilytys
{
  "marketplace": "<retornado-na-ativacao>",
  "seller": "<retornado-na-ativacao>",
  "accessKey": "<retornado-na-ativacao>"
}
05

Tee ensimmäinen maksu

Ennen kuin myyt, vahvista tapahtuma-avaimen läsnäolo PINPADissa Sitten luo myynti DesktopPlugin.createPaymentRequestBuilder()Ilmoita arvo sentteinä, moduuleina ja erinä ja käsittele viestejä, menestystä, epäonnistumista ja virran loppumista.

✓
Maksutunnuksia ei kirjata käsin

Oma Sovelluksesi:n ei tarvitse pyytää tai syöttää maksunäppäimiä jokaisen päätelaitteen aktivoimiseksi Seuraavissa alustuksissa käytetyt tekniset tiedot saadaan aktivointivirrassa ja ne pysyvät itse sovelluksessa.

05 · SDK Upotettu

Zoop Desktop SDK integroitu suoraan PDV:hen

Tässä lähestymistavassa kaappausosa on Oma Sovelluksesi:ssa Liitännäinen keskustelee paikallisesti PINPAD:n kanssa, kun operaatio on edelleen yhteydessä IOPAY-infrastruktuuriin.

Aktivoinnin jälkeinen aloittaminen

Sen jälkeen marketplace, seller ja accessKey Jos ne on saatu takaisin ja säilytetty, käytä näitä arvoja aika-ajossa SDK-järjestelmän käynnistämiseksi uudelleen.

Kotlin · myöhemmin alkaa
Zoop.initialize(context) {
    credentials {
        marketplace = storedMarketplace
        seller = storedSeller
        accessKey = storedAccessKey
    }
}

val desktopPlugin = DesktopPlugin(
    Zoop.constructorParameters()
)

Zoop.plug(desktopPlugin)

Kotouttamisen tila

Ensimmäinen täytäntöönpano Aktivointi

Alustaa ilman todistuksia, luo kuponkeja ja odottaa linkkiä IOPAY-portaalin kautta

Pysyvyys Saadut tiedot

App-kaupan markkinat, seller ja pääsyKey turvallisesti

Seuraavat teloitukset Seuraava luettelo on seuraava:

Tallennettuja tietoja käytetään uudelleen ilman, että käyttäjä kirjoittaa niitä uudelleen

06 · Aktivointi

Tokentti on syntynyt SDK:ssa ja linkki on valmistunut IOPAY:ssa

Aktivointi kytkee laitteen oikeaan tiliin Tämä vaihe on tehtävä ennen ensimmäistä tapahtumaa ja testattava myös sen jälkeen, kun käynnistät sovelluksesi uudelleen

1
Luo viesti

Oma Sovelluksesi pyytää aktivoimaan Zoop-komponentin ja saa väliaikaisen merkin

2
Portti IOPAY

Token on ilmoitettu maksupäätteissä → Lisää pääte

3
Euroopan talous- ja sosiaalikomitean

SDK palauttaa tiedot, joita Oma Sovelluksesi tarvitsee pitääkseen kiinni tulevista alustuksista

!
Älä paljasta aktivointitietoja

Tallenna palautetut tiedot turvallisesti. Evit-markkinapaikka, seller ja pääsyAvain käyttäjän näytöille, sovelluslokeille, avoimen telemetrian tai vianetsintäkaapeille

07 · Ensimmäinen maksu

Kysy tapahtuma-avainta ennen veloittamista

Zoop-tapahtuma-avaimen on oltava PINPADissa, jotta korttimaksut voidaan suorittaa Jos olet poissa, napauta IOPAY-näppäintä, jotta korjaus voidaan koordinoida laitetoimittajan kanssa.

!
PINPAD ilman tapahtuma-avainta ei ole valmis myyntiin

Älä pidä avaimen puuttumista ohjelmistovirheenä PDV:ssä Päätettä on säänneltävä ennen kauppaa

Esimerkki korttimaksusta

Seuraavassa taulukossa esitetään yhteenveto tutkimuksen tuloksista: 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)

Käsittele myös virtauksen väliviestejä näyttääksesi operaattorille ohjeita, kuten lähestymistä, syöttämistä tai kortin lukemista Paikallisen palautteen avulla PDV voi seurata, mitä terminaalissa tapahtuu

Mikä jatkuu tuloksessa

Tuotteen tunnistetiedot transactionId

Liitä paikallinen tapahtuma tilaukseen ja operaatioon IOPAY:n mukana.

Lupa NSU + koodi

NSU:n säilytys ja lupakoodi palautettu täsmäytystä ja tukea varten

Muut Vastaanottotiedot

Tallenna SDK-version käyttöön saamat todistetiedot.

i
Älä käytä – virtauspäätä – synonyyminä hyväksyntää varten

Takaisinkutsu onComplete Se kertoo, että virta on päättynyt, vaikka vika olisi tapahtunut, katso hyväksytty maksu vain vastaavasta onnistuneesta tuotosta ja korreloi tulos IOPAY-tapahtuman kanssa.

Seuraavassa taulukossa esitetään yhteenveto tiedoista:

Vaihtoehto paikallisen WebSocket-palvelun kautta

Zoop Desktop Server toimii paikallisena palveluna ja paljastaa WebSocketin Oma Sovelluksesi:lle. Spektiivisi on edelleen TEF:n kaappaus Akkreditointi-, tili-, webhooks- ja tapahtumavirta IOPAY-alustoille.

01

Asenna ja käynnistä palvelu

Hanki asentaja virallisiin Zoop-julkaisuihin Oppaassa kuvatuissa Windows- ja Linux-asennuksissa valmista Java/JDK 17, joka on voimassa java -version ja pitää palvelimen käynnissä PINPAD-yhteysasemalla

Pääte
java -version
02

Liitä sovellus

Kun Oma Sovelluksesi- ja Desktop-palvelin ovat samassa koneessa, yhdistä paikalliseen osoitteeseen Treat-pistokkeen avautuminen, viestit, virheet ja sulkeutuminen

WebSocket
ws://localhost:1337
JavaScript · yhteysesimerkki
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

Käynnistä aktivointi

Lähetä se sisään. {"type":"activation"}. Kun palvelimen vastaus on tila tokenEsittäkää kenttä token ja täydennä linkki IOPAY-portaalin Save Status success.

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

Menestyksellisesti, sinnikkäästi marketplace, seller ja accessKey tuleville alustuksille

04

Aloita talteen otetuista tiedoista

Lähetä viesti initialize käyttämällä täsmälleen aktivoinnin jälkeen tallennettuja arvoja. Kenttä devicePort Serveri voi automaattisesti havaita PINPADin, jos se jätetään pois. Hetkinen. status: success ennen liiketoimien sallimista

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

Toteuta saalis VPD:ssä

Käytä Desktop-palvelimen dokumentoimia JSON-järjestelmiä paikallisten kaappauskomentojen hoitamiseen ja kaikkien palautusten hoitamiseen. Paikallinen vastaus auttaa PINPAD-kokemuksen johtamisessa. Transaktiohallinta ja webhooks jatkavat IOPAY:n kautta.

i
JSON-merkkiset merkkiaineet täytetään ajoajassa

<valor recebido na ativacao> edustaa sovelluksesi itsepintaista dataa Nämä eivät ole tietoja, jotka operaattorin on syötettävä jokaisessa aloituksessa.

09 · APIs & webhooks

Oma Sovelluksesi vastaanottaa edelleen IOPAYn tapahtumia.

Lisää TEF ei muuta epäyhtenäistä integraatiosopimusta: Oma Sovelluksesi edelleen vastaanotetaan webhooks mistä IOPAY Kunkin tapahtuman ja liiketoimen osalta sopimuksen mukaisen integraation mukaan SDK/Server Local Return täydentää PDV-kokemusta; se ei poista IOPAY Tapahtumakerros

Tapahtumien määrä IOPAY

Liiketoimet, operatiiviset päivitykset ja kotoutumistapahtumat

Loppupiste määritelty Oma Sovelluksesi

Pidä webhook- päätetapahtumasi ja korreloi tapahtumat pyynnön, päätetapahtuman ja paikallisen tapahtuman kanssa

Suositeltu vastaavuusmalli

Tilattu referenceId

Käytä omaa tunnistettasi yhdistääksesi maksun hakemukseesi, kun se on saatavilla

Kaappaus TransactionId / NSU

Tallenna päätteen paikallisvirran palauttamat tunnisteet

Asynkroninen tapahtuma Webhook IOPAY

Päivitä operaation tilanne IOPAY-integraatio-ohjelman saamiin tapahtumiin

✓
Yksi kerros tapahtumia hakemukseen

TEF-komponentti on paikallinen, mutta Oma Sovelluksesi:n ei tarvitse luopua IOPAY APIs:n ja webhooks:n olemassa olevasta virrasta Jatka webhooks:n validointia jokaisesta tapahtumasta ja tapahtumasta homologioinnin aikana

10 · Virheitä ja peruutuksia

Harjoitusviat ennen hyväksyntää

Älä vain hyväksy hyväksymisskenaariota Lentäjän on harkittava viestintähäiriöitä, vanhentunutta kuittia, keskeytystä kiinnioton aikana, uudelleenkäynnistettävä sovellus ja peruutukset

SDK Osuuskunnan peruuttaminen

Jos paikallisvirtaa sovelletaan, käytä SDK:n dokumentoimia komentoja keskeyttääksesi/peruuttaaksesi käynnissä olevan toiminnan

Desktop Server JSON-komennot

Palvelimella on omat peruutus- ja tilaviestin virrat Treat Start, Selection, Success, Fail and End käytetyn version dokumentoinnin mukaan

!
Seuraava on luettelo liiketoimista, jotka eivät sisälly liiketoimeen:

Peruutus koskee myös IOPAY-tapahtumavirtaa. Ennen kuin toistat veloituksen viestinnästä luopumisen jälkeen, vahvista tapahtuman todellinen tila päällekkäisyyksien välttämiseksi

11 · Turvallisuus

Aktivointitietojen on pysyttävä rajapinnan ja lokien ulkopuolella

Market, seller ja AccessKey ovat osa laitteen teknistä käynnistystä. Oma Sovelluksesi:n on suojattava ja käytettävä sitä automaattisesti aktivaation jälkeen.

Pysyvyys Suojattu varastointi

Käytä alustalle sopivaa paikallista mekanismia ja rajoita pääsyä prosesseihin, jotka todella tarvitsevat tietoja

Havainnoitavuus Ei salaisuutta lokissa

Älä syötä avaintietoja tai vastaavia tietoja lokitietoihin, jälkiin, virheilmoituksiin tai analytiikkaan

Operatiivinen UX Ei toistotyyppiä

Aktivointi on tekninen Toimijan ei tarvitse kopioida valtakirjoja myydäkseen

12 · Hyväksyntä

Tarkistuslista ennen lentäjän julkaisua

✓
Seuraavassa on luettelo IOPAY:n päätoiminnoista:

Akkreditointi, tili- ja tapahtumavirta jatkuvat IOPAY-alustojen kautta, ja webhooks on validoitu integraatiotapahtumiin ja -tapahtumiin

✓
Tarkastustiliin liittyvä pääte

Vahvista yhteys maksupäätteisiin → Lisää pääte ja käynnistä Oma Sovelluksesi uudelleen, jotta tallennettujen tietojen käyttö voidaan varmistaa

✓
Oikein kohdellun maksun tulos

Näytä SDK-viestit, erota virtauksen yksinkertainen lopetus onnistuneesti toisistaan ja säilytä tapahtumaId, NSU, valtuutuskoodi sekä todisteet/vastaanottajatiedot

✓
Virheet ja peruutukset

Tämä viestintähäiriötesti, viestikatkos, pysäytyskatkos ja peruutukset IOPAY-virrassa ja tarvittaessa paikallisessa kerroksessa.

✓
Valmistettu PINPAD

Vahvista tapahtuma-avaimen läsnäolo ennen ensimmäistä myyntiä Jos se on poissa, napauta IOPAYa, jotta korjaus voidaan koordinoida toimittajan kanssa.

✓
Seuraava luettelo on seuraava:

Näyttöjen, lokien ja epäasianmukaisen telemetrian aktivointitiedot tallennettu turvallisesti ja poissa käytöstä

13 · Referenssit

Viralliset asiakirjat täytäntöönpanoa varten

Käytä alla olevia oppaita teknisenä viitetietona projektin Parametreihin asennetun komponentin versiolle, yhteensopivuudelle, versioille ja protokollille voi kehittyä; vahvista aina viralliset asiakirjat toteutuksen aikana

i
Tämän sivun tekninen perusta

Virta on rakennettu IOPAY-tekniikan oppaasta TEF-integraatioon sekä Zoop:n julkisista viitetiedoista. Käytä projektille hyväksyttyä versiota ja vahvista viralliset oppaat täydet parametrit toteutushetkellä

Oletko valmis hyväksymään ensimmäisen terminaalin?

Hallinna token SDK- tai Desktop-palvelimen kautta, yhdistä pääte IOPAY-portaaliin ja vahvista koko virta – paikallinen kaappaus, tapahtuma ja webhooks – ennen kuin siirryt tuotantoon