Pași pentru integrare
Pentru a utiliza iOS sau Android Mobile SDK cu eGenius Platform, urmați aceste instrucțiuni.
Pasul 1: Descărcați SDK-ul și documentația
iOS și Android Mobile SDK și documentația aferentă pot fi descărcate de la Merchant Administration (MA):
- Conectați-vă la MA, apoi selectați Administrator > Descărcare software.
- Selectați linkul corespunzător și urmați instrucțiunile de pe ecran pentru a descărca fișierul necesar.
Este afișat ecranul Administrare – Descărcare software și documentație. Acesta conține ghidurile de integrare Mobile SDK și Mobile SDK.
Versiuni de dispozitive și simulatoare pentru iOS
Mobile SDK pentru iOS este lansat cu două versiuni:
- Versiunea dispozitivului: Versiunea dispozitivului are bitcode activat, ceea ce permite aplicației să aibă o amprentă mai mică pe dispozitivul utilizatorului. Cu toate acestea, versiunea nu acceptă arhitectura x86_64. Dezvoltatorii tind să prefere versiunea de dispozitiv a SDK-ului ca versiune finală.
- Versiunea simulatorului: Pentru a utiliza un simulator, aveți nevoie de arhitectura x86_64. Aceasta înseamnă că bitcode este dezactivat, rezultând o amprentă mai mare a aplicației. Dezvoltatorii tind să prefere versiunea de simulator în timpul dezvoltării, unde amprenta nu este o preocupare reală.
Pentru mai multe informații, consultați documentația Apple:
Pasul 2: Instalați și inițializați SDK-ul
Această secțiune include instrucțiuni despre cum să instalați și să inițializați SDK-ul.
iOS
Pentru a instala SDK-ul în proiectul dvs. Xcode:
- Trageți directorul
Gateway-SDK.xcframeworkîn proiectul dvs. Xcode. - Adăugați biblioteca la Cadre de lucru, biblioteci și conținut încorporat în ținta dvs.
- Efectuați import Gateway pentru cadrul de lucru acolo unde este necesar.
- Dacă este necesar, setați Gateway-SDK.xcframework ca pachet Swift local cu opțiunea .binaryTarget.
- Asigurați-vă că includeți uSDK.xcframework în proiectul dvs. SDK-ul depinde de uSDK.xcframework inclus în fișierul ZIP.
// AppDelegate.swift import Gateway
Trebuie să inițializați SDK-ul înainte de a-l folosi. Se recomandă efectuarea acestei operațiuni în clasa dvs. AppDelegate.
// AppDelegate.swift
GatewaySDK.shared.initialize(
merchantId: "MERCHANT_ID",
merchantName: "Merchant Name",
merchantUrl: "https://merchant-url.com",
region: "Your gateway region"
Android
SDK-ul este structurat ca un depozit maven.
Pentru a instala SDK-ul în proiectul dvs.:
- Dezarhivați fișierul din directorul rădăcină al proiectului dvs. Android, de exemplu, ~/my-android-project/gateway-repo).
- Adăugați o referință la acest depozit local în fișierul
build.gradleal proiectului dvs. - În fișierul modulului de aplicație
build.gradle, includeți Mobile SDK ca dependență.
// build.gradle
allprojects {
repositories {
mavenCentral()
google()
// Gateway Android SDK repo
maven {
url "$rootDir/gateway-repo"
}
}
}
// app/build.gradle implementation 'com.mastercard.gateway:Mobile_SDK_Android:x.x.x'
Directorul Mobile_SDK_Android conține un fișier maven-metadata.xml care conține informații pentru construirea referinței de implementare pentru bibliotecă. Formatul de gradle de implementare este implementation <groupId>:<artifactId>:<version>.
Trebuie să inițializați SDK-ul înainte de a-l folosi. Este recomandat să efectuați această operație în clasa dvs. personalizată Application, în funcția onCreate().
// CustomApplication.kt
override fun onCreate()
{
super.onCreate()
// init Gateway SDK
GatewaySDK.initialize
(
this,
"YOUR_MERCHANT_ID",
"Your Merchant Name",
"https://your-merchant-url.com",
region: "Your gateway region",
callback
)
}
Recomandări de securitate pentru integrarea SDK-ului nostru
- Limitarea încercărilor de actualizare a sesiunii: Implementați limitarea încercărilor de actualizare a sesiunii pentru a preveni atacurile de tip forță brută și accesul neautorizat.
- Măsuri suplimentare de securitate:
- Integrare CAPTCHA: Utilizați CAPTCHA pentru a valida autenticitatea utilizatorului și pentru a preveni atacurile automate.
- Autentificare biometrică: Folosiți amprenta digitală sau recunoașterea feței pentru autentificarea robustă a utilizatorului și pentru a împiedica încercările de acces neautorizat.
- Protecție DDoS: Implementați mecanisme robuste de protecție DDoS pentru a vă proteja împotriva atacurilor volumetrice și pentru a asigura disponibilitatea continuă a serviciului.
- Detectare boți: Încorporați tehnici avansate pentru a identifica și atenua impactul activităților rău intenționate ale boților care exploatează vulnerabilitățile aplicațiilor.
- Limitarea ratei: Aplicați politici stricte de limitarea ratei de solicitare pentru a reglementa solicitările de la clienți sau adresele IP, asigurând alocarea corectă a resurselor și reducând abuzurile.
- Ancorarea SSL cu propriul nostru server: Includeți ancorarea SSL pentru a asigura o comunicare sigură, prevenind atacurile de tip man-in-the-middle și accesul neautorizat la server.
Pasul 3: Crearea și actualizarea unei sesiuni
Procesul Mobile SDK se bazează pe conceptul de sesiune. O sesiune este un container temporar pentru orice câmpuri de solicitare și valori ale operațiunilor care fac referire la o sesiune. Pentru mai multe informații, consultați Noțiuni de bază privind sesiunile.
Creați și actualizați o sesiune cu gateway-ul pentru a iniția procesul de plată pe un dispozitiv mobil:
- Pentru a pregăti această sesiune pentru tranzacții mobile, trimiteți o solicitare API
CREATE SESSION. Pentru câmpurile de solicitare, consultați tabelul de câmpuri de solicitareCREATE SESSION. - Pentru a actualiza sesiunea, trimiteți solicitarea
UPDATE SESSIONcu câmpurile obligatorii. Pentru câmpurile de solicitare, consultați tabelul de câmpuri de solicitareUPDATE SESSIONcorespunzător.
Tabel: Câmpuri de solicitare CREATE SESSION
| Parametru solicitare | Descriere | Exemplu |
|---|---|---|
| authenticationLimit | Numărul de operațiuni care pot fi trimise către gateway folosind ID-ul acestei sesiuni ca parolă. ID-ul sesiunii este folosit ca parolă în solicitările autentificate prin sesiune legate de autentificarea 3D Secure (3DS). | 25 |
Tabel: Câmpurile obligatorii ale solicitării UPDATE SESSION
| Parametru solicitare | Descriere | Exemplu |
|---|---|---|
| order.id | Identificator unic pentru această comandă. | ID-ul comenzii dvs. |
| order.amount | Valoarea totală a comenzii. | 1.23 |
| order.currency | Moneda comenzii. | AUD |
| authentication.acceptVersions | Versiunea 3DS pe care o acceptați pentru această plată. Dacă nu specificați o versiune, 3DS2 este acceptat. Gateway-ul utilizează 3DS2, dacă această opțiune este acceptată de emitent și de card. Dacă 3DS2 nu este disponibil, autentificarea nu continuă. | 3DS2 |
| authentication.channel | Canalul pe care este inițiată solicitarea de autentificare. | PAYER_APP |
| authentication.purpose | Scopul autentificării. | PAYMENT_TRANSACTION |
Odată ce o sesiune este creată pe serverul dvs.:
- Returnați informațiile despre sesiune în aplicația mobilă pentru a le utiliza în operațiuni ulterioare.
- Creați o instanță a obiectului
Session.
let sessionId = "session-id" let apiVersion = "61" // api version used to create the session let orderId = "order-id" // must match order id used on your server let amount = "1.23" let currency = "USD"
// example
val session = Session(
id = "session-id",
amount = "1.23",
currency = "USD",
apiVersion = "61", // api version used to create the session
orderId = "order-id" // must match order id used on your server
)
apiVersion trebuie să fie aceeași pentru întregul ciclu de viață al tranzacției, de la crearea sesiunii la plata finală.Pasul 4: Colectarea informațiilor de plată
Puteți să: colectați informațiile de plată de la plătitor în mai multe moduri:
- Dacă nivelul de conformitate PCI permite acest lucru, puteți aduna manual detaliile cardului și le puteți adăuga la sesiune. Pentru mai multe informații, consultați Detalii manuale ale cardului.
- Dacă nivelul de conformitate PCI nu vă permite să gestionați date sensibile, puteți utiliza metoda de plată Apple Pay sau Google Pay pentru a obține un simbol de plată care reprezintă un card pe care plătitorul l-a adăugat în portofelul Apple sau Google Pay. Apoi, adăugați simbolul la sesiune. Pentru mai multe informații, consultați Apple Pay și Google Pay.
Funcția updateSession() este folosită în Mobile SDK pentru a adăuga informațiile de plată, detaliile cardului sau simbolul la sesiune. Informațiile de plată trebuie să fie prezente în sesiune înainte de a continua cu autentificarea opțională a plătitorului și tranzacția de plată reală.
updateSession() este cea mai simplă modalitate de a încărca detaliile de plată în sesiune fără a afecta domeniul dvs. PCI. Cu toate acestea, dacă domeniul PCI nu este o problemă, puteți încărca detaliile și în alte moduri, cum ar fi prin solicitarea UPDATE SESSION de pe serverul dvs.Detalii manuale ale cardului
Obțineți detaliile cardului de la plătitor pe ecranul aplicației și transmiteți informațiile direct către gateway folosind ID-ul de sesiune care a fost returnat în răspunsul CREATE SESSION mai devreme.
// The GatewayMap object provides support for building a nested map structure using key-based dot(.) notation.
// Each parameter is similarly defined in your online integration guide.
val request = GatewayMap()
request.sourceOfFunds.provided.card.nameOnCard.value = nameOnCard
request.sourceOfFunds.provided.card.number.value = cardNumber
request.sourceOfFunds.provided.card.securityCode.value = cvv
request.sourceOfFunds.provided.card.expiry.month.value = cardExpiryMM
request.sourceOfFunds.provided.card.expiry.year.value = cardExpiryYY
GatewayAPI.shared.updateSession(sessionId, apiVersion: apiVersion, payload: request) { (response) in
// handle result
}
// The GatewayMap object provides support for building a nested map structure using key-based dot(.) notation.
// Each parameter is similarly defined in your online integration guide.
val request = GatewayMap()
.set("sourceOfFunds.provided.card.nameOnCard", nameOnCard)
.set("sourceOfFunds.provided.card.number", cardNumber)
.set("sourceOfFunds.provided.card.securityCode", cardCvv)
.set("sourceOfFunds.provided.card.expiry.month", cardExpiryMM)
.set("sourceOfFunds.provided.card.expiry.year", cardExpiryYY);
GatewayAPI.updateSession(session, request, callback);
După actualizarea sesiunii cu detaliile cardului, puteți crea simboluri pentru detaliile cardului, pentru a vă permite să stocați simbolul pentru utilizare ulterioară când plătitorul se întoarce sau când trebuie să efectuați tranzacții inițiate de comerciant. De exemplu, din cauza plăților periodice. Pentru a crea simboluri pentru detaliile cardului, utilizați operațiunea CREATE Or UPDATE TOKEN de pe serverul dvs. cu ID-ul de sesiune valid. Pentru mai multe informații, consultați Crearea de simboluri.
Pasul 5: Crearea tranzacției de plată
Când plătitorul a fost autentificat și sesiunea conține detaliile de plată precum detaliile cardului sau un simbol, trimiteți solicitarea de tranzacție de plată PAY sau AUTHORIZE de pe serverul dumneavoastră, incluzând ID-ul sesiunii în solicitare. Pentru mai multe informații, consultați Realizarea unei solicitări Server API.