Salah satu masalah penting ketika bekerja dengan layanan dari penyedia IaaS adalah kenyamanan pembayaran. Sejak hari pertama dimulainya proyek kami, kami mencoba menyederhanakan proses pembayaran menggunakan kartu bank dan terus meningkatkan mekanisme ini. Hari ini kami memutuskan untuk berbicara tentang di mana kami memulai dan berbagi pengalaman kami.
/ Flickr / Muhammad Ashiq / CC BY-SALatar belakang
Kami telah menyediakan layanan IaaS di
1cloud sejak 2012. Selama waktu ini, kami
berhasil bekerja dengan sejumlah besar gateway pembayaran. Salah satunya adalah Money Online. Kami bekerja dengannya selama dua tahun, dan kemudian mulai menghubungkan layanan alternatif jika ada kesulitan teknis.
Sebagai alternatif, PayPal dan Robocassa dipertimbangkan. Akibatnya, kedua platform terhubung, meskipun
ada beberapa kesulitan dengan
ini . Dalam kasus pertama, untuk mengimpor ID pelanggan ke dalam bentuk pembayaran, kami harus menyesuaikan aturan CSS dan memodifikasi elemen standar pada halaman web. Dalam situasi dengan Robocassa, sejumlah permintaan dalam API tidak sesuai dengan uraiannya, tetapi dengan bantuan dukungan teknis, situasinya juga diselesaikan. Kami tidak berhenti pada keputusan ini dan mempertimbangkan opsi lain yang ditawarkan calon mitra kepada kami.
Jadi, kami mulai bekerja dengan sistem pembayaran PayMaster (menggantikan "Money Online"), yang menawarkan kepada kami syarat-syarat komisi dan API yang nyaman. Untuk waktu yang lama, gateway pembayaran ini bertindak sebagai yang utama. Namun, baru-baru ini kami memutuskan untuk mendesain ulang kegunaan layanan kami dan menyederhanakan proses pembayaran layanan dengan kartu bank untuk individu. Agar UX memenuhi persyaratan kami, kami telah mengintegrasikan gateway pembayaran lain - CloudPayments.
Bagaimana saya bisa meningkatkan proses pembayaran UX?
Kami sedang mengerjakan model prabayar. Klien mengisi kembali akunnya di akun pribadinya, dan kemudian dana didebit dari akun ini karena layanan IaaS dikonsumsi (didebet setiap sepuluh menit).
Untuk mengisi saldo dengan kartu kredit, dalam kasus PayMaster, klien harus melalui proses empat langkah:
- Masukkan jumlah pembayaran dalam formulir di panel kontrol, klik tombol "Bayar" dan buka halaman gateway pembayaran.
- Tunjukkan telepon atau alamat email untuk menerima cek dan klik Lanjutkan.
- Masukkan detail kartu dan tekan tombol "Bayar" lagi.
- Tunjukkan kode konfirmasi transaksi yang dikirim bank sebagai bagian dari prosedur 3D Secure.
Penafian: algoritma yang dijelaskan di atas berlaku untuk pembayaran kartu bank yang dilakukan oleh individu. Badan hukum membayar jasa penyedia IaaS dengan tagihan. Sementara meningkatkan kegunaan, kami memfinalisasi mekanisme penagihan faktur semacam itu secara otomatis, tetapi kami tidak akan mempertimbangkannya dalam kerangka materi ini, karena badan hukum tidak berinteraksi dengan gateway pembayaran.
Kami memutuskan untuk menyederhanakan proses pembayaran bagi pengguna dan umumnya meningkatkan tampilan dan kegunaan formulir untuk mengisi data kartu bank. Untuk ini, kami telah mengidentifikasi dua tugas untuk diri kami sendiri, yang akan kami diskusikan di bawah ini.
Tugas 1: mengecualikan bagian ke halaman gateway pembayaran
Seperti yang kami sebutkan di atas, ketika pengguna membayar layanan kami, untuk mengisi rincian kartu, ia terpaksa pergi ke situs gateway pembayaran. Jadi seseorang harus menekan banyak tombol konfirmasi dan menunggu memuat halaman dengan informasi tentang penambahan akun.
Dalam hal ini, masalah lain muncul - setelah pengguna memasukkan uang ke dalam akun, ia tetap berada di halaman gateway pembayaran hingga mengklik tautan khusus untuk kembali ke 1cloud.ru. Ini membuatnya sulit untuk bekerja dengan panel kontrol kami, misalnya, jika, setelah pembayaran, pengguna ingin menambah kapasitas infrastruktur TI-nya.
"Menurut analitik, hanya segelintir pelanggan yang mengikuti tautan dan kembali ke situs web kami," kata Sergey Belkin , kepala pengembangan di 1cloud.ru. - Ini sebagian disebabkan oleh fakta bahwa klien harus mengklik tautan "Kembali ke toko online". Ini terlepas dari kenyataan bahwa layanan kami bukan toko online. ”
Selain itu, kami ingin mengurangi jumlah bidang yang diisi oleh pengguna ke minimum, hanya menyisakan yang benar-benar diperlukan untuk operasi. Untuk menyelesaikan tugas ini, kami memilih gateway pembayaran CloudPayments, yang karyawannya awalnya menarik perhatian kami dengan respons dukungan teknis yang cepat dan lengkap.
Selain itu, gateway pembayaran ini memiliki kantor perwakilan di Kazakhstan. Ini memungkinkan untuk menerapkan metode pembayaran baru untuk layanan hosting kami
oblako.kz . Kalau tidak, semua transfer kami dari Kazakhstan ke Rusia (atau sebaliknya) akan dikenakan komisi tambahan.
CloudPayments disarankan menggunakan
skrip chekout khusus. Ini memungkinkan Anda untuk mengimplementasikan formulir pembayaran langsung di panel kontrol kami dan mentransfer data yang telah dilengkapi ke gateway pembayaran tanpa menyimpannya di pihak kami.
Untuk mengimplementasikan skrip, kami harus melalui pemindaian keamanan
PCI DSS di salah satu organisasi terakreditasi - yang merupakan persyaratan CloudPayments. Pemindaian diperlukan untuk mengonfirmasi kepatuhan teknis dengan standar dan untuk mengecualikan kemungkinan pencurian data pengguna saat mengisi formulir di situs.
Audit kepatuhan PCI DSS dilakukan oleh ARinteg. Kami mengirimkan mereka sebuah aplikasi di mana kami mengindikasikan keinginan untuk menjalani audit, mengisi kuesioner dan menetapkan tanggal untuk verifikasi. Di sisi ARinteg, persiapan untuk pemindaian memakan waktu setengah hari (yaitu, Anda dapat memindai hampir seketika), tetapi kami membutuhkan tambahan empat hingga lima hari untuk mempersiapkan infrastruktur kami dengan hati-hati.
Pemindaian berlangsung sekitar 15 jam, walaupun pemindaiannya berlangsung beberapa hari. Spesialis ARinteg memeriksa SSL dan perlindungan terhadap permintaan injeksi dan kerentanan lainnya di situs web kami.
Kami tidak lulus tes awal, dan kami diberi daftar masalah yang perlu diperbaiki. Semuanya tidak signifikan, misalnya, ada metode pasca yang digunakan ketika pengguna mengevaluasi petunjuk langkah-demi-langkah kami di situs. Kami menghapus semua komentar dan upaya audit kedua berhasil. Selanjutnya, kita bisa beralih ke implementasi skrip chekout.
Skrip terdaftar di situs web kami, mengumpulkan data kartu dari formulir yang ditentukan dan menyusun kriptogram dari mereka untuk pembayaran melalui CloudPayments API. Ini terlihat seperti ini:
this.createCryptogram = function () { var result = checkout.createCryptogramPacket(); if (result.success) {
Formulir untuk memasukkan data kartu bank terlihat seperti ini:

Selama implementasi skrip dan formulir, kami dapat mengurangi jumlah bidang yang diisi oleh pengguna hingga minimum. Mereka hanya menyisakan yang benar-benar diperlukan untuk operasi. Misalnya, bidang "Nama Depan" dan "Nama Belakang" telah dihapus. Seperti yang dijelaskan oleh perwakilan gateway pembayaran kepada kami, bank tidak memeriksa data ini (hanya nomor kartu, tanggal, dan CVV yang penting), jadi kami memutuskan untuk menghilangkannya dan menyederhanakan seluruh proses.
Selain itu, kami memperjelas informasi tentang
program diskon kami: dengan pengisian akun satu kali dalam jumlah dari 5 ribu rubel, 10% dikreditkan dalam bentuk bonus, dari 10.000 rubel - 20%, lebih dari 100.000 rubel - 25%. Kami juga menambahkan kemampuan untuk menyimpan data peta untuk pengguna. Semua informasi ini disimpan di sisi gateway pembayaran CloudPayments dalam bentuk terenkripsi.
Tugas 2: mewujudkan pembayaran otomatis
Ini adalah pembayaran yang terjadi secara otomatis dalam kondisi tertentu. Seringkali fitur ini digunakan oleh layanan berlangganan. Namun, sebagian besar gateway pembayaran hanya menawarkan opsi ketika pengisian otomatis terjadi pada jadwal (pada tanggal tertentu). Penting bagi kami bahwa kesempatan untuk mengisi kembali akun tersedia secara otomatis kapan saja ketika klien kehabisan dana pada akun (karena kami bekerja dengan prabayar). Karenanya, untuk menerapkan pembayaran otomatis, kami menggunakan metode yang digunakan saat membayar dari kartu "ingat" (menggunakan token sementara).
Ini berfungsi sebagai berikut: setelah pembayaran pertama yang berhasil dilakukan oleh pengguna, gateway menghasilkan tokennya untuk pasangan kartu layanan dan mengirimkannya dalam respons postback. Token ini disimpan, dan setelah pembayaran berulang itu sudah ditransfer, dan bukan data kartu. Ternyata kami mengirim permintaan ke gateway tempat kami menunjukkan kunci API kami (pengidentifikasi bahwa permintaan tersebut berasal dari 1cloud), token dan jumlah. Gateway memeriksa apakah token tersebut dibuat, dan jika semuanya beres, ia memproses pembayaran untuk jumlah yang ditentukan.
Tanggal ketika diperlukan untuk melakukan pembayaran otomatis, kami menghitung secara dinamis berdasarkan konsumsi layanan saat ini oleh pengguna dan saldo pada akun. Misalkan klien memiliki seribu rubel pada neraca, dan ia mengonsumsi dua rubel selama sepuluh menit interval terakhir. Jelas bahwa tanggal perkiraan pemberian titik akan datang pada interval lima ratus sepuluh menit - ini adalah sekitar 34 hari. Dengan demikian, kami dapat melakukan pembayaran otomatis beberapa hari sebelum berakhirnya dana. Pelanggan memilih ukuran pembayaran otomatis secara mandiri.
Apa selanjutnya
Sekarang kami sedang menguji solusi ini dan mengevaluasi hasil implementasi. Menurut suara di antara pelanggan, sebagian besar sangat berubah. Kami akan mempelajari lebih dalam umpan balik tentang sistem, menganalisis data, dan, jika perlu, melakukan penyesuaian.
Materi segar PS dari blog perusahaan kami: