Google I/O sırasında duyurulacak olan Google, üçüncü taraf uygulamalarla ödeme yapmanıza olanak tanıyan Ödeme İsteği API'sini resmi olarak Chrome'da benimsiyor.
Açıklanacak şekilde ayarlandı Yaklaşan Google I/O geliştirici konferansında Ödeme İsteği API'si, mobil cihazlarımızda çevrimiçi ödeme yapma şeklimizde devrim yaratacak. Artık Android'deki Google Chrome kullanıcılarının, kredi kartı bilgilerini girmek veya PayPal'a giriş yapmak gibi uzun ödeme süreçlerinden geçmesi gerekmeyecek. Bunun yerine API, web sitesi geliştiricilerinin ödeme yapmak için desteklenen üçüncü taraf ödeme uygulamalarına niyet göndermesine olanak tanır. Çoğunun aksine diğer sürprizler Google'ın bizim için hazırladığı şey, Bu yeni ödeme yönteminin tam olarak nasıl işe yarayacağına dair zaten bir sürü kamuya açık bilgi var. Google'ın bu haftaki resmi duyurusundan önce size bazı bilgiler sunmak için tüm bu belgeleri ayrıntılı olarak inceledik.
Ödeme İsteği API'si ile Ödemeleri Kolaylaştırma
Öncelikle ödemelerin şu anda web tarayıcılarında nasıl işlendiğini özetleyelim. Herhangi bir çevrimiçi satıcının ödeme sayfasına gittiğinizde ödeme bilgilerinizi girmeniz istenir. İşleminizi tamamlamak için satıcı tarafından desteklenen bir kredi kartı ekleyebilir veya PayPal gibi entegre bir hizmeti kullanabilirsiniz. Şimdi, kredi kartı bilgilerinizi web sitesine zaten kaydetmediyseniz (birçok kişi bunu yapmak istemez) veya zaten oturum açmadıysanız PayPal'a girdiğinizde kalkıp cüzdanınıza gitmek, kartınızı bulmak, ardından kart numarasını, son kullanma tarihini ve güvenliği girmek zor olabilir. kod. Yeni bir web sitesinden satın alma işlemi yapmak istediğinizde, bu sürecin bazı varyasyonlarından geçmeniz gerekir. Bizden olanlar için
fırsat kollamayı severim, bu oldukça çabuk sinir bozucu olabilir.Çeşitli çevrimiçi satıcı ödeme sayfaları
Pek çok kredi kartı ve banka kurumunun Google Play Store üzerinde uygulamaları mevcuttur. Bu uygulamaları zaten finansal hesaplarımızı izlemek için kullandığımıza göre, ödemeleri doğrulamak için neden bunları kullanamıyoruz? Google, Mozilla, Samsung, Alibaba, Microsoft ve daha birçok üyeden oluşan Web Ödemeleri Çalışma Grubu'nun arkasındaki düşünce süreci tam olarak budur. Bu grup perde arkasında çalışıyor Ödeme İsteği API'si adı verilen yeni bir API'yi tanıtın ve web tarayıcıları arasındaki iletişimi kolaylaştırmak amacıyla Ödeme Bildirisi Teklifinde tanımlanan yeni bir çevrimiçi standart ve çevrimiçi tüccarlar, böylece çevrimiçi tüccar, ödemeleri gerçekleştirmek için son kullanıcının cihazındaki mevcut uygulamaları kullanabilir.
Nasıl çalışır
Bu görevi gerçekleştirmek için web tarayıcıları Ödeme İsteği API'sini desteklemelidir, çevrimiçi satıcıların API adı verilen yöntemi uygulayarak API'yi desteklemeleri gerekir. Ödeme Yöntemi Tanımlayıcısıve Android uygulamaları yeni hizmetler uygulamaya ihtiyaç var. Çok fazla detaya girmeden, ödeme sürecinde neler olduğunu kısaca anlatacağım.
Web tarayıcınızın Ödeme İsteği API'sini desteklediğini varsayarsak (bu konuya daha sonra değineceğiz), çevrimiçi bir satıcının ödeme sayfasına gittiğinizde ödeme yapma seçeneğiniz olacaktır. Desteklenen ödeme işleyicilerinden biriyle (kredi kartı/PayPal/vb.) Bir satın alma işlemi yapmak için düğmeye dokunduğunuzda (örneğin, Google çalışanları tarafından kullanılan aşağıdaki örnek sayfada olduğu gibi) Ödeme İsteği API'sini test edin), ardından Ödeme İsteği API'si, uygulamanın kullanıcının kimliğini doğrulaması için desteklenen ödeme uygulamasına bir Android amacı gönderir. ödeme.
Varsayımsal bir Android cihaza yüklenen varsayımsal kredi kartı uygulamamızın adının Bob Pay olduğunu varsayalım. Bob Pay, AndroidManifest.xml dosyasına aşağıdakileri ekleyecektir:
"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>
Bu varsayımsal kredi kartı uygulamasını hedef alan bir niyet gönderildiğinde bu uygulamanın hizmeti başlatılıyor. Varsayımsal Bob Pay uygulamamızın neyin, hangi satıcıdan satın alındığını ve amacın ekstralarında ne kadar para bulunduğunu anlaması için gerekli tüm bilgiler:
Bundle extras = new Bundle();
extras.putString("key", "value");
intent.putExtras(extras);
Bob Pay ödemeyi doğruladıktan sonra Ödeme İsteği API'si bu bilgiyi Bob Pay tarafından gönderilen başka bir niyetle alır:
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.
Peki Bob Pay'i destekleyen çevrimiçi satıcı, telefonunuza yüklenen Bob Pay'in sahtekarlık yapmayı amaçlayan bir kötü amaçlı yazılım değil, gerçek Bob Pay olduğunu nasıl biliyor? Bunu, tarayıcı tarafından makine tarafından okunabilen bir Ödeme Yöntemi Bildirim Tanımlayıcısı JSON dosyası oluşturarak gerçekleştirir.
{
<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>,
}
]
}
Bu JSON dosyasında, cihazınızda yüklü olduğunu iddia eden uygulamanın bütünlüğünü doğrulamak için kullanılan bir imza bulunur. gerçek Bob Pay. Bu imza kontrolü başarısız olursa Bob Pay ödeme sorumlusu olarak kabul edilmeyecektir.
Tabii ki, burada yer alan genel süreci çok, çok, çok fazla basitleştiriyorum. Ödemeler, yalnızca geçerli ödemelerin yapıldığından emin olmak için birden fazla güvenlik kontrolü katmanı gerektiren inanılmaz derecede karmaşık bir sistemdir. Daha önce bağlantı verdiğim üç belge, tarayıcının Ödeme İsteği API'sini nasıl tam olarak uyguladığını, web sitesi JSON bildirim dosyasını uygular ve bir Android uygulamasının Ödeme İsteği tarafından gönderilen amacı nasıl işleyebileceği API'dir. Yukarıda özetlediğim genel süreci özetleyen bir akış şeması:
Ödeme akış şeması. Kaynak: Rouslan Solomakhin
Gördüğünüz gibi burada birçok adım var. Bu değişikliklerin tümü, çevrimiçi ticari web sitelerinin geliştiricileri, Android bankacılığı/kredisi geliştiricileri tarafından gerçekleştirilecektir. kart uygulamaları ve web tarayıcısı geliştiricileri, böylece son kullanıcının gerçekte neler olup bittiğine dair hiçbir fikri olmayacak Burada. Ancak şunu bilin ki sonuçta, tüm taraflar dahil olursa çevrimiçi ödemeleriniz çok daha kolay hale gelecektir. Web Ödemeleri Çalışma Grubu'nun standardizasyon çabaları sayesinde bu değişikliklerin uygulamaya konması umulmaktadır. gerçeklik.
Ödeme İsteği API'sinin Arkasındaki Tarih
World Wide Web Konsorsiyumu (kısaca W3C), platform geliştirmek amacıyla 1994 yılında kuruldu. Tüm web sitelerinin ve kullanıcılarının uyumluluktan yararlanmasını sağlayacak standartlar ve tutarlılık. Web ödemelerinin artan parçalanmasına çözüm bulmak için W3C, Web Ödemeleri Çalışma Grubu 2015'te çevrimiçi ödeme akışının bazı yönlerini standartlaştırmak için. Daha sonra, mevcut çevrimiçi ödeme sistemlerinin çalışma şeklini iyileştirmenin yollarını bulmak amacıyla Web Ödemeleri Çalışma Grubunun tüm üyeleri arasında çalışmalar başladı.
Grup şunu ortaya çıkardı: Ödeme Talebi API'si, web sitelerinin, ödeme yöntemini sitelerine entegre etmeden ödeme yöntemlerini kullanmalarına olanak tanıyan yöntemler topluluğu. API'yi desteklemek için web tarayıcılarının güncellenmesi gerekiyorama işin daha zor kısmı şundan kaynaklanıyor: çevrimiçi satıcıları gemiye almak. Bu amaçla Çalışma Grubu üyeleri bir teklifle geldi web sitelerinin hangi ödeme yöntemlerini desteklediklerini tanımlamak için tanımlayıcıları nasıl oluşturabilecekleri hakkında. Bu, makine tarafından okunabilen bir Ödeme Manifestosu JSON dosyası (Ödeme Yöntemi Tanımlayıcısı) oluşturmayı içerir. Ödeme İsteği API'si, kullanıcının JSON'da tanımlanan desteklenen ödeme yöntemlerine karşılık gelen bir veya daha fazla uygulamaya sahip olup olmadığını belirleyebilir dosya. Bu uygulama Google'ın Dijital Varlık Bağlantıları Protokolü web siteleri sizi mobil sitelerinden uygulamalarına (eğer zaten yüklediyseniz) bu şekilde yönlendirir.
Grubun birçok dahili gidiş gelişinden sonra, sonunda 25 Kasım 2016'da Google'dan Zach Koch ve Alibaba'dan Dapeng Liu bir teklif sundu. Ödeme Yöntemi Manifestosu'nun ilk taslağı Tüm üyelerin kabul edebileceği Ödeme Yöntemi Tanımlayıcıları için standardizasyon sürecini başlatmak amacıyla. Son olarak Çalışma Grubu üyeleri 23-24 Mart tarihleri arasında Chicago'da şahsen buluştuk Ödeme İsteği API'sini, Ödeme Manifest Teklifini ve daha fazlasını elde etmek için. Çalışma Grubu resmen evlat edinmeye oy verdi Ödeme Manifestosu Teklifinin yeni bir versiyonu (versiyon 2), bugün bulunduğumuz yer burası.
Ödeme İsteği API'si desteği
10 Mayıs'ta üçüncü taraf Android ödeme uygulamaları desteği artık sunuluyor varsayılan olarak etkin Web ödeme bildirimi önkoşulu, Blink-dev dalında onaylandığından beri Chromium'da (Blink, Chrome tarafından kullanılan oluşturma motorunun adıdır). Bu özelliğin Chrome'da aylardır test edildiğini ancak grubun bu konuda ilerlemeye hazır olduğu ancak yakın zamanda anlaşıldı. Bu özellik şu tarihte yayınlanacak: Android Web Görünümü hariç Chromium'un tüm platformları/sürümleri (Kullanıcı arayüzü yoktur ve bu nedenle Ödeme İsteği API'sini uygulayamaz).
Ancak aylarca süren perde arkası çalışmalarından sonra artık Web Ödemeleri Çalışma Grubu'nun üzerinde çalıştığı şeyin faydalarını görebileceğiz. Google I/O'da şirket muhtemelen Google Chrome'un Ödeme İsteği API'si etkin olarak gönderileceğini duyuracak ve Zach Koch da bundan bahsetti Perşembe günü üçüncü taraf ödeme sağlayıcılarının Ödeme Manifest JSON'unu oluşturarak API'yi nasıl destekleyebilecekleri hakkındaki konuşmasını yapacak Dosyalar.
Diğer tarayıcılar da Ödeme İsteği API'sine destek eklemek için çalışıyor. Mozilla ve Samsung, API'nin eklenmesi konusunda kamuoyunun desteğini açıkladı Google çalışanına göre Rouslan Solomakhin Microsoft'un Edge tarayıcısının mı yoksa Apple'ın Safari'nin mi destek ekleyeceği konusunda henüz bir bilgi yok. Microsoft'un olduğunu unutmamalıyız. Evrensel Windows Platformu (UWP) uygulamaları için Ödeme İsteği API'si halihazırda test ediliyor ve en az bir banka halihazırda destek uyguladı (Monzo) kendi uygulamasında.
Google çalışanı Zach Koch'a göre bu yeni ödeme spesifikasyonunu destekleyecek diğer çevrimiçi satıcılar ve Android uygulamaları için:
Bu spesifikasyonu uygulaması gereken "ödeme yöntemi sağlayıcılarının" sayısı oldukça azdır (yüzlerce) ve şu anda bunların yalnızca çok küçük bir alt kümesiyle (<5) doğrudan çalışıyoruz. sular. Alanlardan birini değiştirmemiz gereken bir durumla karşılaşırsak, bunu kolayca ve (varsa) çok fazla birlikte çalışma riski olmadan yapabileceğimizi düşünüyorum. İlk ortaklarımızın tümü bu spesifikasyonun değişebileceğinin farkındadır ve bunda bir sakınca yoktur.
Bunun kullanıma sunulması, diğer oyuncuların en azından Android'de PR ekosistemine katılmasına izin vermek için kritik öneme sahiptir. Android yerel uygulamalarını etkinleştirmek için tam özel rotayı izlememeyi gerçekten tercih ederim. Büyümeye ve daha gelişmiş kullanım senaryolarına yer bırakmak için bu alandaki ayak izini kasıtlı olarak küçük tuttuk.
Böylece, Google'ın Ödeme İsteği API'si konusunda öncü bir destek olmasına rağmen, şunu görebiliriz: Bu yeni ödeme yönteminin tüm tarayıcılarda yerini bulduğunu gerçekten görmemiz biraz zaman alacak, tüm çevrimiçi satıcılar ve tüm uygulamalar. Ödeme İsteği API'sinin Google tarafından desteklendiğini görmek beni kişisel olarak çok heyecanlandırıyor. E-Ticaret ekosistemi yıllardır ödeme yöntemleri nedeniyle gereksiz yere bölünmüş durumda ve eğer bu yeni API Bu, bir daha asla kredi kartı bilgilerimi bir web sitesine manuel olarak girmek zorunda kalmayacağım anlamına geliyor, o zaman her şeyimi destekliyorum BT.
Yaklaşan bu standart hakkında ne düşünüyorsunuz? Yorumlarda sesinizi kısın ve fikrinizi bize bildirin!