Google Secara Resmi Mengadopsi API Permintaan Pembayaran, Memungkinkan Anda Membayar dengan Aplikasi Pihak Ketiga di Chrome

Ditetapkan untuk diumumkan pada Google I/O, Google secara resmi mengadopsi API Permintaan Pembayaran ke Chrome, memungkinkan Anda membayar dengan aplikasi pihak ketiga.

Ditetapkan untuk diumumkan pada konferensi pengembang Google I/O mendatang, API Permintaan Pembayaran akan merevolusi cara kita melakukan pembayaran online di perangkat seluler. Pengguna Google Chrome di Android tidak lagi harus melalui proses pembayaran yang panjang dengan memasukkan informasi kartu kredit atau masuk ke PayPal. Sebaliknya, API memungkinkan pengembang situs web mengirimkan maksud ke aplikasi pembayaran pihak ketiga yang didukung untuk melakukan pembayaran. Tidak seperti banyak dari kejutan lainnya yang Google siapkan untuk kita, sudah ada banyak sekali informasi publik tentang cara kerja cara pembayaran baru ini. Kami telah mendalami semua dokumen ini untuk memberi Anda beberapa informasi sebelum pengumuman resmi Google minggu ini.


Mempermudah Pembayaran dengan API Permintaan Pembayaran

Mari kita rekap dulu bagaimana pembayaran saat ini ditangani di browser web. Saat Anda masuk ke halaman checkout pedagang online mana pun, Anda diminta memasukkan informasi pembayaran Anda. Anda dapat menambahkan kartu kredit yang didukung oleh pedagang atau menggunakan layanan terintegrasi seperti PayPal untuk menyelesaikan transaksi Anda. Sekarang, kecuali Anda sudah menyimpan informasi kartu kredit Anda di situs web (yang banyak orang enggan melakukannya) atau sudah login masuk ke PayPal, akan merepotkan untuk membukanya, membuka dompet Anda, mencari kartu Anda, lalu memasukkan nomor kartu, tanggal kedaluwarsa, dan keamanan kode. Setiap kali Anda ingin melakukan pembelian di situs web baru, Anda harus melalui beberapa variasi proses ini. Bagi kita yang

suka berburu penawaran, ini bisa mengganggu dengan cepat.

Berbagai halaman checkout pedagang online

Banyak lembaga kartu kredit dan perbankan memiliki aplikasi yang tersedia di Google Play Store. Karena kita sudah menggunakan aplikasi ini untuk memantau rekening keuangan kita, mengapa kita tidak bisa menggunakannya untuk mengautentikasi pembayaran? Itulah proses pemikiran di balik Kelompok Kerja Pembayaran Web, yang terdiri dari anggota seperti Google, Mozilla, Samsung, Alibaba, Microsoft, dan banyak lagi. Kelompok ini telah bekerja di belakang layar untuk melakukan hal tersebut memperkenalkan API baru yang disebut API Permintaan Pembayaran dan standar online baru yang ditetapkan dalam Proposal Manifes Pembayaran untuk memfasilitasi komunikasi antar browser web dan pedagang online sehingga pedagang online dapat menggunakan aplikasi yang ada di perangkat pengguna akhir untuk menangani pembayaran.

Bagaimana itu bekerja

Untuk menyelesaikan tugas ini, browser web harus mendukung API Permintaan Pembayaran, pedagang online perlu mendukung API dengan menerapkan apa yang disebut a Pengenal Metode Pembayaran, dan aplikasi Android perlu menerapkan layanan baru. Tanpa menjelaskan terlalu detail, saya akan menjelaskan secara singkat apa yang terjadi selama proses checkout.

Dengan asumsi browser web Anda mendukung API Permintaan Pembayaran (lebih lanjut tentang itu nanti), saat Anda menavigasi ke halaman pembayaran pedagang online, Anda akan memiliki opsi untuk membayar dengan salah satu pengendali pembayaran yang mereka dukung (kartu kredit/PayPal/dll.) Saat Anda mengetuk tombol untuk melakukan pembelian (seperti pada laman contoh di bawah yang digunakan oleh Karyawan Google untuk menguji API Permintaan Pembayaran), lalu API Permintaan Pembayaran mengirimkan maksud Android ke aplikasi pembayaran yang didukung agar aplikasi tersebut dapat mengautentikasi permintaan pengguna pembayaran.

 Katakanlah aplikasi kartu kredit hipotetis kita yang dipasang pada perangkat Android hipotetis disebut Bob Pay. Bob Pay akan menambahkan yang berikut ke file 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>

Ketika maksud dikirim menargetkan aplikasi kartu kredit hipotetis ini, maka layanan aplikasi ini dimulai. Semua informasi yang diperlukan untuk aplikasi hipotetis Bob Pay kami untuk memahami apa yang dibeli, dari vendor mana, dan berapa banyak uang yang terkandung dalam tambahan maksud:

Bundle extras = new Bundle();
extras.putString("key", "value");
intent.putExtras(extras);

Setelah Bob Pay memvalidasi pembayaran, API Permintaan Pembayaran menerima informasi ini dalam maksud lain yang dikirim oleh 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.

Namun bagaimana pedagang online yang mendukung Bob Pay mengetahui bahwa Bob Pay yang terpasang di ponsel Anda adalah Bob Pay asli, dan bukan malware yang dimaksudkan untuk melakukan penipuan? Hal ini dilakukan dengan membuat file JSON Pengidentifikasi Manifes Metode Pembayaran yang dapat dibaca mesin oleh 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>,
}
]
}

Di dalam file JSON ini terdapat tanda tangan yang digunakan untuk memverifikasi integritas aplikasi yang diinstal pada perangkat Anda yang mengklaim sebagai nyata Bob Bayar. Jika pemeriksaan tanda tangan ini gagal, maka Bob Pay tidak akan diterima sebagai penangan pembayaran.

Tentu saja, saya terlalu menyederhanakan proses umum yang terlibat di sini. Pembayaran adalah sistem yang sangat kompleks yang memerlukan pemeriksaan keamanan berlapis untuk memastikan bahwa hanya pembayaran valid yang dilakukan. Tiga dokumen yang saya tautkan sebelumnya menguraikan bagaimana browser sepenuhnya mengimplementasikan API Permintaan Pembayaran, bagaimana a situs web mengimplementasikan file manifes JSON, dan bagaimana aplikasi Android dapat menangani maksud yang dikirim oleh Permintaan Pembayaran API. Berikut adalah flowchart yang menguraikan proses umum yang saya rangkum di atas:

Diagram alur pembayaran. Sumber: Rouslan Solomakhin

Seperti yang Anda lihat, ada banyak langkah yang terlibat di sini. Semua perubahan ini akan ditangani oleh pengembang website merchant online, perbankan/kredit Android aplikasi kartu, dan pengembang browser web sehingga pengguna akhir mungkin tidak tahu apa yang sebenarnya terjadi Di Sini. Namun ketahuilah bahwa hasil akhirnya adalah pembayaran online Anda akan menjadi jauh lebih sederhana jika semua pihak terlibat menerapkan perubahan ini, yang diharapkan akan terwujud berkat upaya standardisasi Kelompok Kerja Pembayaran Web realitas.


Sejarah Dibalik API Permintaan Pembayaran

World Wide Web Consortium (disingkat W3C) didirikan pada tahun 1994 dengan tujuan mengembangkan platform standar yang memungkinkan semua situs web dan penggunanya mendapatkan manfaat dari interkompatibilitas dan konsistensi. Untuk mengatasi fragmentasi pembayaran web yang semakin meningkat, W3C membentuk Kelompok Kerja Pembayaran Web pada tahun 2015 untuk membakukan beberapa aspek aliran pembayaran online. Setelah itu, pekerjaan dimulai di antara semua anggota Kelompok Kerja Pembayaran Web untuk menemukan cara meningkatkan cara kerja sistem pembayaran online yang ada.

Kelompok itu datang dengan API Permintaan Pembayaran, kumpulan metode yang memungkinkan situs web menggunakan metode pembayaran tanpa mengintegrasikan metode pembayaran ke situsnya. Browser web perlu diperbarui untuk mendukung API, tetapi bagian yang lebih sulit berasal dari mengajak pedagang online bergabung. Untuk itu, anggota Kelompok Kerja datang dengan sebuah proposal tentang bagaimana situs web dapat membuat pengidentifikasi untuk menentukan metode pembayaran mana yang didukungnya. Hal ini melibatkan pembuatan file JSON Manifes Pembayaran yang dapat dibaca mesin (Pengidentifikasi Metode Pembayaran) - file tersebut perlu dibaca oleh browser sehingga API Permintaan Pembayaran dapat mengidentifikasi apakah pengguna memiliki satu atau lebih aplikasi yang sesuai dengan metode pembayaran yang didukung yang diidentifikasi dalam JSON mengajukan. Implementasi ini terinspirasi oleh Google Protokol Tautan Aset Digital itulah cara situs web mengalihkan Anda dari situs seluler mereka ke aplikasi mereka jika Anda sudah menginstalnya.

Setelah melalui bolak-balik internal grup, akhirnya pada tanggal 25 November 2016, Zach Koch dari Google dan Dapeng Liu dari Alibaba mengajukan draf awal Manifes Metode Pembayaran untuk memulai proses standarisasi Pengenal Metode Pembayaran yang dapat disetujui oleh semua anggota. Akhirnya, anggota Kelompok Kerja bertemu langsung di Chicago antara 23-24 Maret untuk meng-hash API Permintaan Pembayaran, Proposal Manifes Pembayaran, dan banyak lagi. Kelompok Kerja memilih untuk mengadopsi secara resmi versi baru dari Proposal Manifes Pembayaran (versi 2), di situlah kita berdiri saat ini.


Dukungan untuk API Permintaan Pembayaran

Pada tanggal 10 Mei, dukungan untuk aplikasi pembayaran Android pihak ketiga kini tersedia diaktifkan secara default di Chromium sejak prasyarat manifes pembayaran web disetujui di cabang Blink-dev (Blink adalah nama mesin rendering yang digunakan oleh Chrome). Perhatikan bahwa fitur ini telah diuji di Chrome selama berbulan-bulan, namun baru belakangan ini tampaknya grup tersebut siap untuk melanjutkannya. Fitur ini akan dikirimkan semua platform/versi Chromium kecuali Android Webview (yang tidak memiliki UI sehingga tidak dapat mengimplementasikan API Permintaan Pembayaran).

Hanya setelah berbulan-bulan melakukan pekerjaan di balik layar, kini kita dapat melihat manfaat dari apa yang telah dikerjakan oleh Kelompok Kerja Pembayaran Web. Di Google I/O, perusahaan kemungkinan akan mengumumkan bahwa Google Chrome akan dikirimkan dengan API Permintaan Pembayaran diaktifkan, dan Zach Koch menyebutkan sebelumnya akan memberikan ceramahnya pada hari Kamis tentang bagaimana penyedia pembayaran pihak ketiga dapat mendukung API dengan membuat Manifes Pembayaran JSON file.

Browser lain juga berupaya menambahkan dukungan untuk API Permintaan Pembayaran. Mozilla dan Samsung telah menyatakan dukungan publik untuk menambahkan API tersebut menurut Googler Rouslan Solomakhin belum ada kabar apakah browser Edge Microsoft atau Safari Apple akan menambahkan dukungan. Kita harus mencatat bahwa Microsoft memang demikian sudah menguji API Permintaan Pembayaran untuk aplikasi Universal Windows Platform (UWP). dan di setidaknya satu bank telah menerapkan dukungan (Monzo) di aplikasi mereka.

Adapun merchant online dan aplikasi Android lainnya yang akan mendukung spesifikasi pembayaran baru ini, menurut Googler Zach Koch:

Jumlah "penyedia metode pembayaran" yang perlu menerapkan spesifikasi ini cukup sedikit (ratusan), dan saat ini kami hanya bekerja secara langsung dengan sebagian kecil (<5) untuk menguji perairan. Jika kami menghadapi situasi di mana kami perlu mengubah salah satu bidang, saya rasa kami dapat melakukannya dengan mudah dan tanpa banyak risiko interop (jika ada). Semua mitra awal kami menyadari bahwa spesifikasi ini dapat berubah dan menyetujuinya.

Meluncurkan hal ini sangat penting agar pemain lain dapat berpartisipasi dalam ekosistem PR, setidaknya di Android. Saya benar-benar memilih untuk tidak menggunakan rute kepemilikan penuh untuk mengaktifkan aplikasi asli Android. Kami sengaja menjaga jejak ini tetap kecil untuk memberikan ruang bagi pertumbuhan dan kasus penggunaan yang lebih maju.

Dengan demikian, kita dapat melihat bahwa meskipun Google memelopori dukungan untuk API Permintaan Pembayaran, perlu beberapa waktu sebelum kita benar-benar melihat cara baru untuk membayar ini dapat diterapkan di semua browser, semua pedagang online, dan semua aplikasi. Saya pribadi sangat senang melihat API Permintaan Pembayaran didukung oleh Google. Ekosistem eCommerce telah terfragmentasi dengan metode pembayaran selama bertahun-tahun, dan API baru ini akan terfragmentasi artinya saya tidak perlu lagi memasukkan informasi kartu kredit saya secara manual ke situs web, maka saya setuju dia.


Apa pendapat Anda tentang standar yang akan datang ini? Suarakan di komentar dan beri tahu kami pendapat Anda!