iOS SDK

K vyhodnocení zákazníka v mobilních aplikacích pro iOS je k dispozici knihovna. Celý proces probíhá stejně jako s knihovnou Twisto.js na webu.

Stejně jako na webu potřebujete ze serveru e-shopu šifrovaná data. K identifikaci požadavků se používá také veřejný klíč.

Upozornění: Tajný klíč se nesmí dostat do kódu mobilní aplikace. Veškeré požadavky s tajným klíčem provádějte pouze ze serveru.

Instalace

Knihovnu lze přidat do projektu ručně nebo pomocí CocoaPods.

CocoaPods

Pro instalaci přes CocoaPods přidejte do souboru Podfile řádek:

pod 'Twisto'

Poté v konzoli spusťte:

$ pod install

Ruční instalace

Nejdříve stáhněte knihovnu Twisto.

Distribuovaný zip obsahuje adresář Twisto.framework. Přetáhněte balíček do projektu z adresáře, kam archiv rozbalíte. V nastavení projektu v sekci General přidejte Twisto.framework do Embedded Binaries.

Implementace

Nejdříve je potřeba inicializovat instanci třídy Twisto:

import UIKit class ViewController: UIViewController { var twisto: Twisto! override func viewDidLoad() { super.viewDidLoad() let publicKey = "" // veřejný klíč najdete v administraci twisto = Twisto(publicKey: publicKey) } }

Po odeslání dat objednávky na server e-shopu, doplnění dat o předchozích objednávkách a zašifrování tajným klíčem se data vrátí do aplikace a předají se knihovně Twisto voláním metody checkWithPayload:

let payload = "…".data(using: String.Encoding.utf8) twisto.check( withPayload: payload!, acceptedCompletionHandler: { (transactionId) in }, rejectedCompletionHandler: { (transactionId, reason) in }, errorCompletionHandler:{ (error) in }, willDisplayLoginDialogHandler: { }, didHideLoginDialogHandler: { } )

Metoda checkWithPayload odešle údaje o zákazníkovi na servery Twisto a spustí asynchronní vyhodnocení. Vaše požadavky včetně chybových hlášení najdete v administraci e-shopu.

Odpověď je asynchronní; je nutné zajistit, aby objekt Twisto nebyl předčasně uvolněn automatickou správou paměti.

Vyhodnocení končí voláním jednoho z návratových bloků:

  • acceptedCompletionHandler – objednávka byla schválena, argument transactionId obsahuje ID transakce používané k vytvoření objednávky na straně serveru e-shopu.
  • rejectedCompletionHandler – objednávka byla zamítnuta, argument reason obsahuje text chybové zprávy, kterou byste měli uživateli zobrazit. Uživateli nabídněte alternativní platební metodu.
  • errorCompletionHandler – došlo k chybě kvůli neplatnému požadavku nebo selhání připojení.

Pokud se vyhodnocení provádí na dosud neznámé adrese, je nejdříve nutné ověření identity uživatele přihlášením. Před zobrazením dialogu pro přihlášení se zavolá blok willDisplayLoginDialogHandler. V tomto bloku zastavte veškeré animace, které by mohly bránit zobrazení dialogu. Po zadání přihlašovacích údajů nebo zavření dialogu se zavolá blok didHideLoginDialog, kde můžete animaci znovu zobavit a informovat uživatele o probíhajícím vyhodnocení objednávky.