Obsah
- 1 Jak používat Apple Wallet
- 2 Apple Wallet. Co to je a jak do ní kartu integrovat
- 3 Struktura mapy
- 4 Palubní lístek
- 5 Kupón
- 6 Vstupenka na akci
- 7 Obecná mapa
- 8 Slevová karta
- 9 struktura pass.json
- 10 Povinná pole
- 11 Klávesy pro související aplikace
- 12 Stylové klávesy
- 13 Vizuální klávesy
- 14 čárový kód
- 15 Umístění
- 16 Zadní strana
- 17 Vytvoření mapy. Část 2
- 18 Integrace aplikací
- 19 Přidání mapy
- 20 Získání informací o přidaných kartách
- 21 Kontrola jedinečnosti
- 22 Testování
- 23 Závěr
- 24 Použité materiály:
- 25 Jak používat Apple Wallet na iPhone
- 26 Pomocí aplikace Apple Wallet
- 27 Přidání bankovní karty
- 28 Přidání slevové karty
- 29 Plaťte za zboží pomocí Apple Pay
- 30 Odebrání karty
Jak používat Apple Wallet
Apple Wallet. Co to je a jak do ní kartu integrovat
Obecně se uznává, že Peněženka není nejoblíbenější službou v SNS. Ale pro druhý projekt v řadě si zákazník stanoví úkol „Provést integraci s Peněženkou“. Proto jsem se rozhodl napsat tento článek, abych pohovořil o službě jako celku a ukázal, jak do ní integrovat svůj produkt.
Co je Peněženka? Umožňuje vám uchovávat v telefonu různé typy karet (jízdenky, slevové karty atd.), což uživatelům produktů usnadňuje život. Navíc je možné aktualizovat informace o kartě prostřednictvím push notifikací, ale to je téma na samostatný článek. Ale pokud máte kartu/lístek/pas, který lze integrovat do vašeho telefonu, pak pro to existuje řešení! Jak to udělat – přečtěte si níže.
Za vytvoření mapy je obvykle odpovědný váš server. Aplikace obdrží kartu ve formě souboru .pkpass a prostřednictvím aplikace může uživatel přidat kartu do Wallet.
Struktura mapy
Co je to mapa z pohledu vývojáře? Mapa je archiv s příponou .pkpass. Obsahuje všechny údaje potřebné k zobrazení a ovládání mapy. Obsah archivu je v tabulce níže.
Soubor | Jmenování |
---|---|
pozadí.png | Obrázek na pozadí pro kartu. |
zápatí.png | Obrázek vedle čárového kódu |
icon.png | Ikona pro oznámení a dopisy |
logo.png | Logo karty. Zobrazeno vlevo nahoře |
manifest.json | Registrujte všechny zahrnuté soubory |
podpis | podpis PKCS7 |
pass.json | Vzhled a informace na mapě |
strip.png | Obrázek umístěný za hlavním popisem karty |
miniatura.png | Další obrázek (upřesněte) |
Existují následující typy karet:
- palubní lístek: letadlem nebo vlakem. Obvykle je kupón platný na jednu cestu;
- Kupón: pro kupóny a speciální nabídky;
- Vstupenka na akci: může fungovat jak na jednu akci, tak na celou sezónu;
- slevová karta: věrnostní karty, slevové nebo dárkové karty;
- Obecná mapa: pokud nic z výše uvedeného nevyhovuje vašemu případu: například karta na metro nebo permanentka do posilovny.
Podívejme se schematicky na vzhled různých karet. Je lepší pojmenovat obrázky tak, jak je uvedeno v tabulce výše.
Palubní lístek
Kupón
Vstupenka na akci
Obecná mapa
Slevová karta
struktura pass.json
Povinná pole. Obsahuje ID typu průkazu, ID týmu, název organizace atd.
Klávesy pro související aplikace. Potřebné pro zobrazení aplikací, které je třeba „spojit“ s kartou.
Klíče k „datu vypršení platnosti“ karty.
Klíče relevance. Například souřadnice oblasti, kde lze mapu použít, nebo začátek akce, pro kterou je určena.
Stylový klíč. Na začátku článku bylo uvedeno 5 typů karet pro Wallet. Každý z nich má svůj vlastní styl. Musí existovat přesně jeden takový klíč.
Klíče k vizuálnímu designu mapy. Kromě toho, co je zřejmé, obsahují informace o čárovém kódu zobrazeném na kartě.
Klíče webové služby. Pro interakci s mapou můžete použít webové služby, například ji automaticky aktualizovat.
NFC klávesy. Obsahuje další informace o transakcích Apple Pay.
Nyní o všem podrobněji.
Povinná pole
popis | Řetězec Lokalizovatelný |
Stručný popis mapy. Lokalizovatelný. |
formatVersion | Int | Verze formátu souboru. Hodnota musí být 1. |
Řetězec Lokalizovatelný |
Název organizace, která karty vydává. | |
Řetězec | Předat ID typu a účet vývojáře. | |
Řetězec | Sériové číslo jednotlivé karty | |
Řetězec | ID týmu vývojového týmu |
Klávesy pro související aplikace
[mezinárodní] | Volitelný. ID aplikací spojených s kartou. Vždy se bere první kompatibilní s aktuálním zařízením. |
Řetězec | Adresa URL, která se odešle do aplikace při otevření |
Stylové klávesy
[JSON] | Základní informace o kartě. |
[JSON] | Sekundární informace. |
[JSON] | Pole pro další informace. Volitelný |
[JSON] | Název mapy. Zobrazí se, i když jsou karty viditelné jako seznam. |
[JSON] | Základní informace o kartě. |
Řetězec | Typ dopravy pro jízdenkové karty. Může nabývat následujících hodnot: PKTransitTypeAir, PKTransitTypeBoat, PKTransitTypeBu`, PKTransitTypeGeneric, „PKTransitTypeTrain“. |
[JSON] | Pole polí odpovědných za zadní stranu karty |
JSON v tomto případě vypadá takto:
"key" : "value1", "label" : "value2", "value" : "value3"
Hodnota klíče hodnoty může být číselná nebo řetězcová. Měnový kód však nelze použít společně s hodnotou řetězce. Co se týče pomocných polí a sekundárních polí, může jich být několik a vyplatí se hlídat délku čar, které jsou v nich použity.
Vizuální klávesy
[JSON] | Informace o čárovém kódu (viz níže). |
barva jako provázek | Barva pozadí. (#fa32e4) |
barva jako provázek | Barevné štítky s významy |
Řetězec | Volitelné pro vstupenky na akce a jízdenky na dopravu. Karty se stejným stylem – passTypeIdentifier a groupingIdentifier – budou seskupeny |
barva jako provázek | Text štítku s názvy polí |
Lokalizovatelný řetězec | Text zobrazený vedle loga |
čárový kód
Nejdůležitější část mapy. Je do ní všito identifikační číslo karty (například fyzické číslo karty nebo číslo vstupenky). Je důležité, aby skener nebo jakýkoli jiný nástroj dokázal číst kódy v požadovaném kódování.
Řetězec | Volitelný text zobrazený vedle čárového kódu, pokud čárový kód nelze přečíst. |
Řetězec | Formát čárového kódu. Může nabývat hodnot: PKBarcodeFormatQR, PKBarcodeFormatPDF417, PKBarcodeFormatAztec, PKBarcodeFormatCode128 |
Řetězec | Kód nebo číslo karty zašifrované v čárovém kódu. |
Řetězec | Kódování zpráv. Typicky iso-8859-1 |
Umístění
Tyto klíče jsou odpovědné za umístění, ve kterém lze kartu použít.
Řetězec | Volitelný text zobrazený vedle čárového kódu, pokud čárový kód nelze přečíst. |
Zeměpisná délka | Zeměpisná šířka |
Dvojnásobek | Zeměpisná šířka |
Řetězec | Volitelný text, který se zobrazí na zamykací obrazovce v okamžiku, kdy uživatel vstoupí do dosahu karty. |
Zadní strana
Na zadní informační část můžete umístit další informace: podmínky použití, zásady automatického obnovení, kontaktní informace a odkaz na aplikaci, ke které karta patří. Obrázek ukazuje shodu mezi poli v pass.json a vzhled zadní strany karty. Pokud pole hodnoty obsahuje odkazy, telefonní čísla atd., budou automaticky zvýrazněny.
Vytvoření mapy. Část 2
Obrázky jsou tedy připraveny, pass.json je vytvořen, zbývá jen vše poskládat. Chcete-li to provést, vyplňte soubor manifest.json (viz Tabulka 1), kde musíte zahrnout všechny obrázky a soubor pass.json. Ukazuje se něco takového:
. . . . . . "pass.json" = 303c753abc39aa732ec74643d6db28348fe8a823; "strip.png" = 736d01f84cb73d06e8a9932e43076d68f19461ff; "strip@2x.png" = 468fa7bc93e6b55342b56fda09bdce7c829d7d46; . . . . . .
Od tohoto okamžiku není třeba nic měnit, protože SHA bude v případě změn nesprávné, musíte SHA vygenerovat znovu.
Dále musíte vytvořit Pass Type ID v účtu vývojáře a vytvořit pro něj certifikát. Postup by měl být víceméně známý, pokud jste dříve vytvořili například Provisioning profily.
Dále přejděte do Keychain a exportujte odtud certifikát Apple Worldwide Developer Relation Certificate (WWDR) jako .pem.
Odtud exportujeme vytvořené Pass Type ID jako .p12. V tomto okamžiku vás držitel klíče vyzve k zadání hesla k certifikátu. V tomto případě není nutné zadávat heslo.
Upozorňujeme, že všechny další akce musí být provedeny v jedné složce, kde by již měly být umístěny manifest.json, pass.json a obrázky.
Nyní musíme vygenerovat podpis, kterým archiv podepíšeme. Nejprve exportujte ID typu Pass a klíč k němu jako .pem.
openssl pkcs12 -in certificate.p12 -clcerts -nokeys -out passcertificate.pem -passin pass: your_password
openssl pkcs12 -in certificates.p12 -nocerts -out passkey.pem -passin pass: -passout pass:new_password
Nyní jsme připraveni vygenerovat podpis. Udělejme to příkazem:
openssl smime -binary -sign -certfile WWDR.pem -signer passcertificate.pem -inkey passkey.pem -in manifest.json -out signature -outform DER -passin pass:пароль_из_предыдущей_команды
Takže máme vše připraveno, zbývá jen shromáždit archiv, uděláme to příkazem:
zip -r nameOfPass.pkpass manifest.json pass.json signature logo.png logo@2x.png logo@3x.png icon.png icon@2x.png icon@3x.png
Upozorňujeme, že zde by měly být uvedeny všechny soubory, do kterých chcete zahrnout datový archiv pro kartu (.pkpass).
V důsledku toho získáme soubor .pkpass, který lze otevřít na počítači. Uvidíme náhled mapy, jejíž vzhled se může lišit od pohledu na telefonu.
To vše lze udělat trochu jednodušeji. Apple poskytuje utilitu signpass (Apple Wallet sample meterials), která se stará o všechny výpočty SHA (soubor manifest.json nemusíte dělat sami) a práci s vytvářením podpisů. Chcete-li jej použít, musíte sestavit projekt a umístit soubor signpass do složky se všemi potřebnými prostředky.
Obecně by struktura měla vypadat nějak takto:
Dále spustíme příkaz:
./signpass -p wallet
Wallet je název složky, ve které jsou umístěny všechny zdroje. Výstupem je soubor wallet.pkpass. Jeho obsah lze zobrazit rozbalením wallet.pkpass.
unzip wallet.pkpass
Je možné, že se vytvoření pkpass přenese na backend, v takovém případě bude nutné přenést na vývojáře WWDR certifikát pro Pass Type ID ve tvaru .p12 a heslo k němu.
Integrace aplikací
Aby aplikace mohla přidávat karty do Walletu, je nutné tuto schopnost povolit v ID aplikace a také povolit tuto schopnost v projektu Capabilities.
To je nezbytné pro plnou správnou práci s Peněženkou. Jinak nebude možné číst karty z Peněženky a například nebude možné pochopit, zda byla naše karta přidána nebo ne. Je také důležité poznamenat, že ID týmu v pass.json se musí shodovat s ID týmu, nebo je budete muset ručně přidat k nárokům, což může situaci napravit, ale toto jsem nezkontroloval.
Přidání mapy
Přidání karet je velmi jednoduché:
guard let passPath = Bundle.main.path(forResource: "wallet", ofType: "pkpass") else < return >let error: ErrorPointer = ErrorPointer(nilLiteral: ()) guard let passData = NSData(contentsOfFile: passPath) else < return >let pass = PKPass(data: passData as Data, error: error) let passLibrary = PKPassLibrary() passLibrary.addPasses([pass])
Nicméně, opět častěji než ne, soubor .pkpass bude nutné stáhnout z vašeho serveru.
Stojí za zmínku, že PassKit produkuje poměrně čitelné chyby, takže můžete snadno zjistit, co přesně bylo uděláno špatně.
Získání informací o přidaných kartách
Chcete-li získat informace o kartách dostupných v Peněžence, které jsou specifické pro vaši aplikaci, musíte získat přístup k objektu PKPassLibrary.
let passLibrary = PKPassLibrary() let passes = passLibrary.passes()
Tímto způsobem můžete zjistit, zda byla karta přidána nebo ne, a také aktualizovat rozhraní. Kromě toho lze karty aktualizovat a mazat prostřednictvím knihovny PKPassLibrary. Mapy můžete aktualizovat i prostřednictvím webových služeb, ale v tomto článku se touto možností nebudeme zabývat.
Kontrola jedinečnosti
Vzhledem k tomu, že ve vaší službě je karta zpravidla propojena s účtem, aplikace s největší pravděpodobností bude muset nějak určit, zda karta patří aktuálnímu uživateli. Doporučuji to udělat přes serialNumber . Nastavte například ID uživatele nebo číslo karty jako serialNumber.
Testování
Apple poskytuje příklady pkpass pro různé typy, můžete je použít jako vodítko.
Vzorky Apple Wallet
Chcete-li vidět, jak mapa vypadá, můžete do projektu přidat pkpass (viz „Přidání mapy“). Proces přidávání/odebírání již byl diskutován výše, zbývá pouze připomenout, že aplikace neuvidí již přidané karty, pokud byla karta pro Wallet vytvořena na jednom účtu vývojáře a samotný vývoj byl proveden z jiného účtu (relevantní pro outsourcingové společnosti). Karty přitom můžete bez problémů přidávat.
Zda jsou informace v čárovém kódu zakódovány správně, můžete zkontrolovat pomocí libovolného skeneru QR kódu. A určitě je potřeba zkontrolovat, zda funguje správně se skutečným skenerem.
Závěr
Článek pojednával o procesu tvorby a návrhu mapy, stejně jako o procesu integrace s aplikací a problémech, které mohou nastat. Záměrně jsem se otázek integrace s webovými službami a aktualizací map nedotkl a doufám, že tak učiním v dalším článku.
Použité materiály:
Zvláštní poděkování mehdzorovi za vývojářský účet za testování.
Jak používat Apple Wallet na iPhone
Aplikace Apple Wallet je elektronickou náhradou běžné peněženky. Můžete si v něm uložit své bankovní a slevové karty a také je kdykoli použít při placení na pokladně v obchodech. Dnes se blíže podíváme na to, jak tuto aplikaci používat.
Pomocí aplikace Apple Wallet
Pro uživatele, kteří na svém iPhonu nemají NFC, není funkce bezkontaktních plateb v Apple Wallet dostupná. Tento program však lze použít jako peněženku pro uložení slevových karet a jejich použití před zaplacením nákupu. Pokud vlastníte iPhone 6 nebo novější, můžete si navíc propojit debetní a kreditní karty a úplně zapomenout na svou peněženku – platby za služby, zboží a elektronické platby budou probíhat pomocí Apple Pay.
Přidání bankovní karty
Chcete-li propojit debetní nebo kreditní kartu s Vallet, vaše banka musí podporovat Apple Pay. V případě potřeby můžete požadované informace získat na webových stránkách banky nebo zavoláním na podporu.
- Spusťte aplikaci Apple Wallet a poté klepněte na ikonu znaménka plus v pravém horním rohu.
- lis „Dále“.
- Na obrazovce se otevře okno „Přidání karty“, ve kterém budete muset vyfotit jeho přední stranu: za tímto účelem namiřte fotoaparát iPhone a počkejte, až smartphone automaticky pořídí snímek.
- Jakmile je informace rozpoznána, na obrazovce se zobrazí číslo přečtené karty a také jméno a příjmení držitele. V případě potřeby tyto informace upravte.
- V dalším okně zadejte údaje o kartě, konkrétně datum vypršení platnosti a bezpečnostní kód (třímístné číslo, obvykle uvedené na zadní straně karty).
- Chcete-li dokončit přidání karty, budete muset dokončit ověření. Pokud jste například klientem Sberbank, bude na vaše mobilní telefonní číslo zaslána zpráva s kódem, který je nutné zadat do odpovídajícího sloupce Apple Wallet.
Přidání slevové karty
Bohužel ne všechny slevové karty lze do aplikace přidat. A kartu můžete přidat jedním z následujících způsobů:
- Postupujte podle odkazu přijatého v SMS zprávě;
- Postupujte podle odkazu obdrženého v e-mailu;
- Skenování QR kódu, který má značku „Přidat do peněženky“;
- Registrace prostřednictvím obchodu s aplikacemi;
- Automaticky přidat slevovou kartu po zaplacení pomocí Apple Pay v obchodě.
Podívejme se na princip přidání slevové karty pomocí obchodu Lenta jako příklad má oficiální aplikaci, ve které můžete propojit stávající kartu nebo vytvořit novou.
- V okně aplikace Feed klikněte na středovou ikonu s obrázkem karty.
- V okně, které se otevře, klikněte na tlačítko „Přidat do Apple Wallet“.
- Poté se zobrazí obrázek karty a čárový kód. Vázání dokončíte kliknutím na tlačítko v pravém horním rohu „Přidat“.
- Od této chvíle bude karta v elektronické aplikaci. Chcete-li ji použít, spusťte Peněženku a vyberte kartu. Na obrazovce se zobrazí čárový kód, který si prodejce bude muset přečíst na pokladně před zaplacením zboží.
Plaťte za zboží pomocí Apple Pay
- Chcete-li zaplatit na pokladně za zboží a služby, spusťte na svém smartphonu Vallet a poté klepněte na požadovanou kartu.
- Chcete-li pokračovat v platbě, budete muset ověřit svou identitu pomocí otisku prstu nebo rozpoznávání obličeje. Pokud se některý z těchto dvou způsobů nepodaří přihlásit, zadejte heslo pro zamykací obrazovku.
- Pokud je autorizace úspěšná, zobrazí se na obrazovce zpráva „Přiveďte zařízení k terminálu“. V tuto chvíli se dotkněte tělem smartphonu čtečky a několik okamžiků podržte, dokud z terminálu neuslyšíte charakteristický zvukový signál, označující úspěšnou platbu. V tuto chvíli se na obrazovce objeví zpráva „připraven“, což znamená, že telefon lze odložit.
- Pro rychlé spuštění Apple Pay můžete použít tlačítko „Domov“. Chcete-li tuto funkci nakonfigurovat, otevřete „Nastavení“a pak přejděte do sekce „Peněženka a Apple Pay“.
- V dalším okně možnost aktivujte „Double Press Home“.
- Pokud máte propojených několik bankovních karet, v bloku „Výchozí možnosti platby“ Vyberte sekci „Mapa“a poté vyberte, která z nich se zobrazí jako první.
- Zamkněte svůj smartphone a poté dvakrát klikněte na tlačítko „Domov“. Na obrazovce se spustí výchozí mapa. Pokud s jeho pomocí plánujete provést transakci, přihlaste se pomocí Touch ID nebo Face ID a přiveďte zařízení k terminálu.
- Pokud plánujete platbu provést pomocí jiné karty, vyberte ji ze seznamu níže a poté proveďte ověření.
Odebrání karty
V případě potřeby lze z Peněženky odebrat jakoukoli bankovní nebo slevovou kartu.
- Spusťte platební aplikaci a poté vyberte kartu, kterou chcete odebrat. Poté klepnutím na ikonu se třemi tečkami otevřete další nabídku.
- Na samém konci okna, které se otevře, vyberte tlačítko „Odebrat kartu“. Potvrďte tuto akci.
Apple Wallet je aplikace, která opravdu zjednoduší život každému majiteli iPhonu Tento nástroj poskytuje nejen možnost platby za zboží, ale také bezpečné platby.