Setat să fie anunțat în timpul Google I/O, Google adoptă oficial API-ul Payment Request în Chrome, permițându-vă să plătiți cu aplicații terță parte.
Se pregătește să fie anunțat la viitoarea conferință pentru dezvoltatori Google I/O, API-ul Payment Request va revoluționa modul în care efectuăm plăți online pe dispozitivele noastre mobile. Utilizatorii Google Chrome de pe Android nu vor mai trebui să treacă prin procese lungi de plată care implică introducerea informațiilor cardului de credit sau conectarea la PayPal. În schimb, API-ul le permite dezvoltatorilor de site-uri web să trimită intenții către aplicații de plată de la terțe părți acceptate pentru a efectua o plată. Spre deosebire de multe dintre alte surprize pe care Google ne-a pregătit, există deja o mulțime de informații publice despre cum va funcționa exact acest nou mod de plată. Am analizat toate aceste documente pentru a vă aduce câteva informații înainte de anunțul oficial al Google săptămâna aceasta.
Efectuarea plăților mai ușoară cu API-ul Payment Request
Să recapitulăm mai întâi modul în care plățile sunt gestionate în prezent în browserele web. Când accesați pagina de plată a oricărui comerciant online, vi se cere să introduceți informațiile de plată. Puteți fie să adăugați un card de credit acceptat de comerciant, fie să utilizați un serviciu integrat, cum ar fi PayPal, pentru a finaliza tranzacția. Acum, cu excepția cazului în care ați salvat deja informațiile cardului dvs. de credit pe site-ul web (ceea ce mulți oameni sunt reticenți să facă) sau sunt deja conectați în PayPal, poate fi o bătaie de cap să te ridici, să mergi la portofel, să găsești cardul, apoi să introduci numărul cardului, data de expirare și securitatea cod. De fiecare dată când doriți să faceți o achiziție pe un site web nou, trebuie să treceți printr-o variație a acestui proces. Pentru aceia dintre noi care le place să vâneze oferte, acest lucru poate deveni enervant destul de repede.
Diverse pagini online de plată a comerciantului
Multe instituții bancare și de carduri de credit au aplicații disponibile pe Google Play Store. Deoarece folosim deja aceste aplicații pentru a ne monitoriza conturile financiare, de ce nu le putem folosi pentru a autentifica plăți? Acesta este exact procesul de gândire din spatele Web Payments Working Group, format din membri precum Google, Mozilla, Samsung, Alibaba, Microsoft și alții. Acest grup a lucrat în culise pentru a introduceți un nou API numit Payment Request API și un nou standard online definit în Propunerea manifestului de plată pentru a facilita comunicarea între browserele web și comercianții online, astfel încât comerciantul online să poată utiliza aplicațiile existente pe dispozitivul unui utilizator final pentru a gestiona plățile.
Cum functioneaza
Pentru a îndeplini această sarcină, browserele web trebuie să accepte API-ul Payment Request, comercianții online trebuie să sprijine API-ul prin implementarea a ceea ce se numește a Identificatorul metodei de plată, și aplicații Android necesitatea implementării de noi servicii. Fără a intra în prea multe detalii, voi explica pe scurt ce se întâmplă în timpul procesului de checkout.
Presupunând că browserul dvs. web acceptă Payment Request API (mai multe despre asta mai târziu), atunci când navigați la pagina de plată a unui comerciant online, veți avea opțiunea de a plăti cu unul dintre gestionanții lor de plăți acceptați (card de credit/PayPal/etc.) Când atingeți butonul pentru a efectua o achiziție (cum ar fi în pagina exemplu de mai jos folosită de Google pentru a testează Payment Request API), apoi Payment Request API trimite o intenție Android către aplicația de plată acceptată pentru ca respectiva aplicație să autentifice plată.
Să presupunem că aplicația noastră ipotetică de card de credit instalată pe un dispozitiv Android ipotetic se numește Bob Pay. Bob Pay va adăuga următoarele în fișierul AndroidManifest.xml:
"font-weight: 400;"><manifestspan><spanstyle="font-weight: 400;">package=span><spanstyle="font-weight: 400;">"com.bobpay.app"span><spanstyle="font-weight: 400;">>span>
"font-weight: 400;"> </span> span> <spanstyle="font-weight: 400;">android: name=span><spanstyle="font-weight: 400;">".IsReadyToPayService"span>
<spanstyle="font-weight: 400;">span><spanstyle="font-weight: 400;">android: enabled=span><spanstyle="font-weight: 400;">"true"span>
<spanstyle="font-weight: 400;">span><spanstyle="font-weight: 400;">android: exported=span><spanstyle="font-weight: 400;">"true"span><spanstyle="font-weight: 400;">>span>
<spanstyle="font-weight: 400;">span><spanstyle="font-weight: 400;"><intent-filter>span>
"font-weight: 400;"> </span> span> <spanstyle="font-weight: 400;">android: name=span><spanstyle="font-weight: 400;">"org.chromium.intent.action.IS_READY_TO_PAY"span><spanstyle="font-weight: 400;">/></span>
<spanstyle="font-weight: 400;">span><spanstyle="font-weight: 400;">intent-filter>span>
<spanstyle="font-weight: 400;">span><spanstyle="font-weight: 400;">service>span>
"font-weight: 400;"> </span> span> <spanstyle="font-weight: 400;">android: name=span><spanstyle="font-weight: 400;">".PaymentActivity"span>
<spanstyle="font-weight: 400;">span><spanstyle="font-weight: 400;">android: exported=span><spanstyle="font-weight: 400;">"true"span><spanstyle="font-weight: 400;">>span>
<spanstyle="font-weight: 400;">span><spanstyle="font-weight: 400;"><intent-filter>span>
"font-weight: 400;"> </span> span> <spanstyle="font-weight: 400;">android: name=span><spanstyle="font-weight: 400;">"org.chromium.intent.action.PAY"span><spanstyle="font-weight: 400;">/></span>
<spanstyle="font-weight: 400;">span><spanstyle="font-weight: 400;">intent-filter>span>
"font-weight: 400;"> </span> span> <spanstyle="font-weight: 400;">android: name=span><spanstyle="font-weight: 400;">"org.chromium.default_payment_method_name"span>
<spanstyle="font-weight: 400;">span><spanstyle="font-weight: 400;">android: value=span><spanstyle="font-weight: 400;">"https://bobpay.com/put/optional/path/here"span><spanstyle="font-weight: 400;">/>span>
<spanstyle="font-weight: 400;">span><spanstyle="font-weight: 400;">activity>span>
<spanstyle="font-weight: 400;">manifest>span>
Când este trimisă o intenție care vizează această aplicație ipotetică de card de credit, atunci serviciul acestei aplicații este pornit. Toate informațiile necesare pentru ca aplicația noastră ipotetică Bob Pay să înțeleagă ce se achiziționează, de la ce furnizor și pentru câți bani sunt conținute în extra-ul intenției:
Bundle extras = new Bundle();
extras.putString("key", "value");
intent.putExtras(extras);
Odată ce Bob Pay a validat plata, atunci API-ul Payment Request primește aceste informații într-o altă intenție trimisă de Bob Pay:
Intent result = new Intent();
Bundle extras = new Bundle();
extras.putString("key", "value");
result.putExtras(extras);
setResult(RESULT_OK, result); // Changeto RESULT_CANCELED on failure.
finish(); // Close the payment activity.
Dar de unde știe comerciantul online care sprijină Bob Pay că Bob Pay instalat pe telefonul tău este adevăratul Bob Pay și nu un malware destinat să comită fraudă? Acesta realizează acest lucru prin crearea unui fișier JSON de identificare a manifestului metodei de plată care poate fi citit de mașină de către browser.
{
<span ><span >"span>name<span >"span>span><span >:span><span ><span >"span>BobPay - World's Greatest Payment Method<span >"span>span>,
<span ><span >"span>description<span >"span>span><span >:span><span ><span >"span>This payment method changes lives<span >"span>span>,
<span ><span >"span>short_name<span >"span>span><span >:span><span ><span >"span>BobPay<span >"span>span>,
<span ><span >"span>icons<span >"span>span><span >:span> [{
<span ><span >"span>src<span >"span>span><span >:span><span ><span >"span>icon/lowres.webp<span >"span>span>,
<span ><span >"span>sizes<span >"span>span><span >:span><span ><span >"span>64x64<span >"span>span>,
<span ><span >"span>type<span >"span>span><span >:span><span ><span >"span>image/webp<span >"span>span>
},{
<span ><span >"span>src<span >"span>span><span >:span><span ><span >"span>icon/lowres.png<span >"span>span>,
<span ><span >"span>sizes<span >"span>span><span >:span><span ><span >"span>64x64<span >"span>span>
}, {
<span ><span >"span>src<span >"span>span><span >:span><span ><span >"span>icon/hd_hi<span >"span>span>,
<span ><span >"span>sizes<span >"span>span><span >:span><span ><span >"span>128x128<span >"span>span>
}],
<span ><span >"span>serviceworker<span >"span>span><span >:span> {
<span ><span >"span>src<span >"span>span><span >:span><span ><span >"span>payment-sw.js<span >"span>span>,
<span ><span >"span>scope<span >"span>span><span >:span><span ><span >"span>/pay<span >"span>span>,
<span ><span >"span>use_cache<span >"span>span><span >:span><span >falsespan>
}
<span ><span >"span>related_applications<span >"span>span><span >:span> [
{
<span ><span >"span>platform<span >"span>span><span >:span><span ><span >"span>play<span >"span>span>,
<span ><span >"span>url<span >"span>span><span >:span><span ><span >"span>https://play.google.com/store/apps/details? id=com.bobpay<span >"span>span>,
<span ><span >"span>fingerprints<span >"span>span><span >:span> [{
<span ><span >"span>type<span >"span>span><span >:span><span ><span >"span>sha256_cert<span >"span>span>,
<span ><span >"span>value<span >"span>span><span >:span><span ><span >"span>59:5C: 88:65:FF: C4:E8:20:CF: F7:3E: C8...<span >"span>span>
}], <span >//newspan>
<span ><span >"span>min_version<span >"span>span><span >:span><span ><span >"span>1<span >"span>span>, <span >// newspan>
<span ><span >"span>id<span >"span>span><span >:span><span ><span >"span>com.example.app1<span >"span>span>
}, {
<span ><span >"span>platform<span >"span>span><span >:span><span ><span >"span>itunes<span >"span>span>,
<span ><span >"span>url<span >"span>span><span >:span><span ><span >"span>https://itunes.apple.com/app/example-app1/id123456789<span >"span>span>,
}
]
}
În acest fișier JSON se află o semnătură care este utilizată pentru a verifica integritatea aplicației instalate pe dispozitivul dvs. care pretinde a fi real Bob Pay. Dacă această verificare a semnăturii eșuează, atunci Bob Pay nu va fi acceptat ca operator de plăți.
Desigur, simplific mult, foarte mult, foarte mult procesul general implicat aici. Plățile sunt un sistem incredibil de complex care necesită mai multe straturi de verificări de securitate pentru a se asigura că sunt efectuate numai plăți valide. Cele trei documente la care am făcut legătura mai devreme subliniază modul în care browserul implementează pe deplin API-ul de solicitare de plată, cum un site-ul web implementează fișierul manifest JSON și modul în care o aplicație Android poate gestiona intenția trimisă de Solicitarea de plată API. Iată o diagramă care conturează procesul general pe care l-am rezumat mai sus:
Diagramă de plată. Sursă: Rouslan Solomakhin
După cum puteți vedea, aici sunt implicați o mulțime de pași. Toate aceste modificări vor fi gestionate de dezvoltatorii de site-uri web ale comercianților online, Android banking/credit aplicații de card și dezvoltatorii de browsere web, astfel încât un utilizator final probabil că nu va avea idee despre ce se întâmplă cu adevărat Aici. Dar să știți că rezultatul final este că plățile dvs. online vor deveni mult mai simple dacă toate părțile sunt implicate implementați aceste modificări, care, datorită eforturilor de standardizare ale Grupului de lucru pentru plăți web, sperăm să devină realitate.
Istoricul din spatele API-ului Payment Request
Consorțiul World Wide Web (abreviat W3C) a fost fondat în 1994 pentru a dezvolta platforma standarde care să permită tuturor site-urilor web și utilizatorilor acestora să beneficieze de intercompatibilitate și consistenta. Pentru a aborda fragmentarea tot mai mare a plăților web, W3C a format Grupul de lucru pentru plăți web în 2015 pentru a standardiza unele aspecte ale fluxului de plăți online. Ulterior, a început munca între toți membrii Grupului de lucru pentru plăți web pentru a găsi modalități de îmbunătățire a modului în care funcționează sistemele de plată online existente.
Grupul a venit cu Payment Request API, o colecție de metode care să permită site-urilor web să utilizeze metode de plată fără a integra metoda de plată în site-ul lor. Browserele web trebuie actualizate pentru a accepta API-ul, dar partea mai dificilă provine din atragerea comercianților online la bord. În acest scop, membrii grupului de lucru a venit cu o propunere despre modul în care site-urile web pot crea identificatori pentru a defini metodele de plată pe care le acceptă. Aceasta implică crearea unui fișier JSON Manifest de plată care poate fi citit de mașină (identificatorul metodei de plată) - trebuie să fie citit de browser, astfel încât Payment Request API poate identifica dacă utilizatorul are una sau mai multe dintre aplicațiile corespunzătoare metodelor de plată acceptate identificate în JSON fişier. Această implementare este inspirată de Google Protocolul Digital Asset Links care este modul în care site-urile web vă redirecționează de pe site-ul lor mobil către aplicația lor, dacă o aveți deja instalată.
După multe dus și înapoi din partea grupului, în cele din urmă, pe 25 noiembrie 2016, Zach Koch de la Google și Dapeng Liu de la Alibaba au trimis un schița inițială a manifestului metodei de plată pentru a începe procesul de standardizare pentru identificatorii de metode de plată cu care toți membrii ar putea fi de acord. În cele din urmă, membrii Grupului de Lucru întâlnit personal la Chicago în perioada 23-24 martie pentru a elimina API-ul de solicitare de plată, propunerea de manifest de plată și multe altele. Grupul de lucru a votat pentru adoptarea oficială o nouă versiune a propunerii de manifest de plată (versiunea 2), care este locul în care ne aflăm astăzi.
Asistență pentru Payment Request API
Pe 10 mai, suportul pentru aplicațiile de plată Android terță parte este acum activat implicit în Chromium, deoarece condiția prealabilă a manifestului de plată web a fost aprobată în ramura blink-dev (Blink este numele motorului de randare folosit de Chrome). Rețineți că această funcție a fost testată în Chrome de luni de zile, dar abia recent se pare că grupul este pregătit să continue acest lucru. Această funcție va fi disponibilă toate platformele/versiunile de Chromium, cu excepția Android Webview (care nu are o interfață de utilizare și, prin urmare, nu poate implementa Payment Request API).
Abia după luni de muncă în culise, vom vedea acum beneficiile la care a lucrat Web Payments Working Group. La Google I/O, compania va anunța probabil că Google Chrome va livra cu Payment Request API activat, iar Zach Koch a menționat mai devreme va susține discursul său joi despre modul în care furnizorii terți de plăți pot sprijini API-ul prin construirea JSON a Manifestului de plată fişiere.
Alte browsere lucrează, de asemenea, pentru a adăuga suport pentru Payment Request API. Mozilla și Samsung și-au exprimat totuși sprijinul public pentru adăugarea API-ului potrivit Googler Rouslan Solomakhin încă nu se știe dacă browserul Microsoft Edge sau Safari de la Apple vor adăuga suport. Ar trebui să remarcăm că Microsoft este testează deja API-ul Payment Request pentru aplicațiile Universal Windows Platform (UWP). iar la cel puțin o bancă a implementat deja suport (Monzo) în aplicația lor.
În ceea ce privește alți comercianți online și aplicații Android care vor accepta această nouă specificație de plată, potrivit Googler Zach Koch:
Numărul de „furnizori de metode de plată” care ar trebui să implementeze această specificație este destul de mic (sute), iar acum lucrăm direct doar cu un subset foarte mic dintre acestea (<5) de testat apele. Dacă ne-am întâlnit într-o situație în care ar fi trebuit să schimbăm unul dintre câmpuri, cred că am putea face acest lucru cu ușurință și fără prea mult (dacă există) riscuri de interoperabilitate. Toți partenerii noștri timpurii sunt conștienți de faptul că această specificație se poate schimba și sunt de acord cu asta.
Lansarea acestui lucru este esențială pentru a permite altor jucători să participe la ecosistemul PR, cel puțin pe Android. Chiar aș prefera să nu merg pe traseul complet proprietar pentru a activa aplicațiile native Android. Am păstrat amprenta asupra acestui lucru în mod intenționat mic pentru a lăsa loc pentru creștere și cazuri de utilizare mai avansate.
Astfel, putem vedea că, deși Google este pionierat în suportul pentru API-ul Payment Request, va dura ceva timp până când vom vedea cu adevărat această nouă modalitate de a plăti să-și găsească drumul în toate browserele, toți comercianții online și toate aplicațiile. Personal, sunt foarte încântat să văd că API-ul Payment Request devine acceptat de Google. Ecosistemul de comerț electronic a fost fragmentat inutil cu metodele de plată de ani de zile și dacă acest nou API o va face înseamnă că nu trebuie să introduc niciodată manual informațiile cardului meu de credit pe un site web, atunci sunt pentru tot aceasta.
Ce părere aveți despre acest standard viitor? Sună în comentarii și spune-ne părerea ta!