Galina Savochkina, kepala pengembang pusat kompetensi sistem perusahaan Direktorat TI ICDHari ini kita akan berbicara tentang bagaimana kita bekerja pada otomatisasi layanan "Penawaran pribadi untuk pelanggan ICD - dengan peningkatan cashback dari perusahaan mitra".
Tujuan layanan
Bisnis memberi kami tugas - untuk mengimplementasikan produk perangkat lunak dengan pendekatan individual untuk setiap klien sebagai bagian dari program loyalitas. Setelah sekitar 2 bulan pengembangan dan sekitar 2,5 bulan pengujian di bank seluler Moscow Credit Bank, tab baru "Penawaran Pribadi" di bagian "Hak Istimewa" menjadi tersedia bagi pelanggan - individu. Di sini, berdasarkan aktivitas transaksional klien pada kartu rubel, saham dikumpulkan untuk menerima cashback untuk pembelian dari mitra yang ditawarkan oleh agregator LLC Svitkard LLC. Untuk setiap klien, stok aktual dipilih khusus untuknya agar mendapatkan hadiah maksimum untuk pembelian. Berikut ini adalah penawaran yang dikumpulkan dari hipermarket, toko, apotek, pompa bensin, toko online, kafe, dll. Di antara mitra proyek adalah pengecer Perekrestok-online, Utkonos, METRO, Leonardo, Kari, apotek 36.6, Stolichki dan Gorzdrav, pompa bensin ESA, dan banyak lainnya. Dalam jaringan ini dan lainnya, cashback 3% hingga 15% untuk semua pembelian akan tersedia untuk pelanggan ICD, dan untuk pembelian pertama dari mitra tertentu, pelanggan sudah dapat (dan siapa pun yang belum melakukannya - masih) mengembalikan hingga 25% dari jumlah pembayaran .
Untuk menampilkan stok saat ini, pelanggan bank harus memiliki versi terbaru dari aplikasi seluler MKB Mobile.



Deskripsi ini tidak dimaksudkan untuk memberikan informasi terperinci dan lengkap tentang fitur teknis pengembangan fungsi ini, namun beberapa prinsip dasar interaksi akan dipertimbangkan untuk berbagi pengalaman mengembangkan sistem yang kompleks tersebut. Ini adalah tentang mengatur interaksi dengan perusahaan pihak ketiga, sementara itu sangat penting untuk mematuhi prinsip-prinsip keamanan transfer data, peraturan untuk bekerja dengan data pelanggan, untuk memastikan operasi bebas masalah dan untuk meminimalkan kemungkinan kegagalan teknis dan gangguan pada kinerja sistem secara keseluruhan.
Proses pengembangan
Proyek untuk mengembangkan program loyalitas baru telah mengalami proses persetujuan yang menyeluruh, karena ICD selalu bertanggung jawab atas keselamatan pelanggan dan mempertahankan loyalitas di pihak mereka. Itu perlu untuk memikirkan proses pertukaran file dengan transaksi pelanggan dengan organisasi eksternal - Svitkard LLC. Tentu saja, semua data ditransmisikan melalui saluran aman dan dalam format anonim.
Berbagi File dengan Svitkard LLC
Untuk interaksi yang cepat dan nyaman antara ICD dan lingkungan perangkat lunak agregator, diputuskan untuk menggunakan format JSON untuk pertukaran. Seperti banyak format teks lainnya, JSON mudah dibaca oleh orang-orang, formatnya dianggap independen dari bahasa dan dapat digunakan dengan hampir semua lingkungan pemrograman. Ini sangat nyaman dari sudut pandang implementasi - cukup untuk membahas sekumpulan bidang dengan mitra dan tidak perlu lagi mengoordinasikan pemisah dan parameter tambahan lainnya, yang sering mempersulit interaksi ketika bertukar file teks.
Saluran SFTP khusus dikonfigurasikan untuk pertukaran di antara para pihak. Data dienkripsi oleh sisi pengirim (ICD atau agregator, karena pertukaran dua arah dikonfigurasi). Pertukaran file secara teratur telah dilaksanakan, yang berisi daftar klien ICD dalam bentuk anonim dan transaksi kartu yang dienkripsi secara terpisah. Informasi dipertukarkan sekali sehari: periodisitas seperti itu untuk tugas penghitungan cashback sudah cukup, karena data untuk hari yang sudah ditutup ditransmisikan, dan akrual cashback dilakukan sebulan sekali.
Jenis file untuk pertukaran disepakati - dari ICD: daftar pelanggan, daftar transaksi dalam format anonim dengan pengenal unik di dalam bank. Dari Svitkard LLC: daftar organisasi mitra, saham yang menunjukkan ukuran cashback (3%, 5%, 15%, 25%, dll.), Kondisi pengisian (untuk pembelian pertama, untuk pembelian apa pun), masa berlaku stok (dalam satu bulan, untuk periode waktu lain), titik aksi stok, yaitu, toko khusus, pompa bensin, dll. dengan alamat.
Sekali sebulan, tergantung pada transaksi yang dilakukan, organisasi agregator mengirimkan dalam format JSON daftar pelanggan dengan merujuk ke pengidentifikasi unik stok (pengidentifikasi diatur oleh Svitkard LLC). Artinya, daftar saham dan jumlahnya dinamis dan ditentukan oleh banyak faktor: aktivitas pelanggan menggunakan kartu ICD, permintaan untuk layanan tertentu. Program loyalitas, pertama-tama, bertujuan meningkatkan jumlah turnover pada kartu MKB dengan mitra bank. Mungkin file yang paling penting dalam pertukaran adalah file dengan jumlah cashback yang masih harus dibayar untuk klien ICD. Jumlah dihitung di sisi agregator, tergantung pada apakah operasi klien cocok untuk kondisi saham, apakah ia menggunakan bank seluler dan kartu rubel MKB.
Juga, informasi tentang pengguna MKB Mobile ditransmisikan dari ICD: pelanggan yang tidak menggunakan aplikasi atau menggunakan kartu mata uang untuk pembelian mereka tidak dapat menerima cashback yang meningkat. Persyaratan semacam itu diajukan oleh bisnis dan memiliki alasan sendiri: menarik pengguna tambahan dari bank seluler dan menggunakan mata uang nasional.
Saluran transfer data yang cukup cepat dibuat, karena penawaran dipilih untuk semua pelanggan bank yang ada, sehingga sebenarnya sejumlah besar data ditransfer dalam file JSON. Pengarsipan otomatis dari data yang dikirimkan, menyimpan ke arsip elektronik, melindungi file dari penyalinan tidak lengkap melalui SFTP, verifikasi checksum untuk data yang dikirimkan dikembangkan.
Bagian server dari sistem interaksi
Seperti halnya sebagian besar modul interaksi modern antara organisasi pihak ketiga, arsitektur "Client-Server" diimplementasikan untuk proyek "Penawaran Pribadi". Dalam hal ini, selain bagian server, ada juga interaksi dengan agregator (Svitkard LLC). Bagian server utama dari program diimplementasikan dalam PL / SQL dalam lingkungan pengembangan untuk database Oracle. Versi modern dari Oracle memungkinkan Anda untuk dengan cepat dan fleksibel memproses data dalam format JSON menggunakan fungsi bawaan: menggunakan JSON _table, nested path, mis. Tidak perlu bekerja dengan file JSON sebagai file teks, dan dimungkinkan untuk menggunakan objek data baru bersama dengan yang sama. File XML Semua aspek prinsip pemrosesan format oleh Oracle JSON versi di atas kedua belas dapat diperoleh dari sumber terbuka - dalam deskripsi versi, yang sangat nyaman dan tidak memerlukan biaya perangkat lunak tambahan untuk implementasi. Bagian klien dibuat oleh pengembang bank seluler ICD, antarmuka yang ramah pengguna disediakan, dan prinsip-prinsip kecepatan menampilkan dan memperbarui informasi diperhatikan. Ini akan dijelaskan secara lebih rinci di bagian lain dari deskripsi sistem.
Jadi, sisi server dari program ini. Sebenarnya, "inti" di mana operasi dasar sistem dilakukan, yaitu, mengunduh file dari folder jaringan ke tabel database Oracle dalam format CLOB (dengan layanan yang telah ditentukan menggunakan perlindungan kriptografi, file ditransfer dari server SFTP ke sumber daya jaringan internal ICD), JSON parsing -file, menyimpan isi file sudah dipecah oleh bidang tabel database bank.
Data penawaran dan promosi untuk pelanggan diunduh beberapa hari sebelum akhir bulan dalam mode otomatis, tampilan informasi yang ditampilkan dalam aplikasi seluler dalam versi uji dikontrol tambahan - teks dikonversi ke format HTML untuk pengalaman pengguna yang optimal. File dari mitra dibentuk dengan mempertimbangkan fakta bahwa teks harus diformat untuk stok dalam gaya tertentu, dan gambar tematik tersedia untuk kejelasan untuk setiap stok.
Di pertengahan bulan, cashback diperoleh untuk pelanggan sesuai dengan data yang diterima dari Svitkard LLC: debit dibuat dari akun khusus yang dibuka untuk mitra bank, sementara kebenaran informasi yang diterima dari mitra diverifikasi secara otomatis menggunakan sejumlah kasus uji (diimplementasikan dalam PL / SQL ) Jika informasi itu benar, rekening kartu tertutup terputus, karena tidak ada cara untuk menagih uang kembali. Akurasi akrual juga dikendalikan oleh staf akuntansi, untuk siapa fungsi khusus diimplementasikan dalam program ICD untuk karyawan kantor - laporan dan buku referensi untuk verifikasi. Jika semua persyaratan terpenuhi, petugas akuntansi mengkonfirmasikan kebenaran biaya dan mengkonfirmasi pembentukan transaksi. Posting diunggah ke sisi pemrosesan dan pesan SMS dari formulir dikirimkan ke pelanggan:
MKB: 05/17/19 Anda telah dikreditkan dengan cashback dari pembelian dari mitra bank 545,41 RUB pada kartu * 1111. Saldo 1445,96 RUB. Detail
mkb.ru/mDengan demikian, jika klien lebih suka pemberitahuan push, peringatan akan dikirim kepadanya. Itu semua tergantung pada pengaturan ICD Mobile.
Untuk menyimpan sejumlah besar data tentang saham dalam konteks setiap klien, partisi berdasarkan bulan digunakan untuk tabel informasi di Oracle, di mana stok valid, dan pengindeksan dipikirkan secara optimal. Ini memungkinkan Anda untuk dengan cepat menerima dan menampilkan data, terlepas dari kenyataan bahwa mereka bersifat individual untuk setiap klien dan berisi informasi media.
Bagian klien di bank seluler
Data yang diterima oleh sisi server melalui PL / SQL disimpan dalam database dan dikirim ke sisi klien melalui prosedur tersimpan. Format interaksi disepakati dengan pengembang bank seluler (di lingkungan pengembangan C #) sebelumnya: kembalikan kursor dengan data pada klien kepada mereka untuk menampilkan saham di halaman pengguna. Transfer lokasi jaringan file media - untuk desain setiap tindakan, segera lakukan transfer, dengan mempertimbangkan format HTML untuk setiap halaman tindakan. Sebelum mengaktifkan promosi baru untuk klien oleh bank seluler, caching dilakukan pada malam hari pertama bulan itu.



Berkat struktur interaksi yang terorganisir secara optimal, setiap klien ICD langsung melihat daftar untuk dirinya sendiri di halaman "Penawaran Pribadi". Terlepas dari kenyataan bahwa daftar tersebut bersifat individual untuk setiap klien, sistem ini bekerja dengan cepat, yang berkat administrator database DBMS Oracle kami yang berkualitas, well, saya, sebagai pengembang sisi server sistem, juga berusaha untuk selalu memikirkan kinerja))
Interaksi departemen dalam pengembangan dan pengoperasian sistem
Proyek ini mencakup beberapa departemen sekaligus: departemen pengembangan perangkat lunak back-office - untuk implementasi perlindungan data kriptografis dan transmisi file SFTP melalui saluran ke sumber daya internal ICD - dari agregator; kelompok pengembangan dan otomatisasi pada kartu bank. Sebenarnya, implementasi sisi server dari program - mengunduh file, mem-parsing file, menampilkan stok dan konten media untuk pelanggan, mengkreditkan cashback yang dikelompokkan berdasarkan kartu pelanggan, mendebit dari akun khusus dan mengembalikan saldo ke akun Svitkard LLC jika transfer tidak dimungkinkan karena penutupan akun klien kepada siapa cashback dikreditkan, mengirimkan informasi ke telepon pelanggan. Dari sisi klien bank seluler - menampilkan data yang dikembalikan oleh server.
Pengembang di sisi agregator juga menunjukkan diri mereka di sisi positif, mengoreksi semua perbedaan yang terjadi dengan format transfer, mengoreksi kumpulan bidang beberapa kali untuk pertukaran data yang lebih nyaman, menyetujui aturan interaksi, dan mengatur frekuensi transfer data. Selain itu, perusahaan agregator sangat loyal kepada pelanggan bank: jika, untuk beberapa alasan, klien menganggap bahwa dia tidak salah dikreditkan dengan cashback. Ada sangat sedikit keluhan selama periode pengujian, dan mereka terutama terkait dengan fakta bahwa klien tidak melihat pesan tentang akrual cashback atau salah paham tentang kondisi akrual, misalnya, dibayar dengan kartu mata uang, menganggap bahwa uang kembali harus datang kepadanya segera setelah pembelian pada stok (dan dibebankan pada pertengahan bulan), dll. Dari klien, termasuk karyawan bank, ulasan yang cukup positif diterima tentang penawaran ini. Program loyalitas ini menawarkan peluang yang hampir tak terbatas untuk menerima cashback untuk pembelian, misalnya, pada liburan Tahun Baru, kami senang melihat bagaimana pelanggan yang menghabiskan sekitar 50 ribu rubel di Rive Gauche untuk kosmetik menerima 5 ribu rubel cashback jujur, dll. e. 10% untuk semua pembelian. Dan ini langsung dalam bentuk uang ke rekening kartu, bukan bonus.
Ringkaslah
Pada musim gugur 2018, tab baru "Penawaran Pribadi" di bagian "Hak Istimewa" menjadi tersedia di bank seluler MKB, yang lebih luas didistribusikan di antara para pelanggan bank yang sudah ada di 2019. Saat ini, banyak pelanggan yang menggunakan bank seluler ICD telah menemukan peningkatan cashback untuk setiap saham - dari 3 menjadi 25%, sementara uang dikreditkan secara stabil di pertengahan bulan terlepas dari saldo akun dan segera, artinya, tidak perlu mentransfer poin dalam uang, pilih kategori kompensasi, dll.
Setelah memeriksa biaya dan berfungsinya mobile bank pada sirkuit uji, pengujian diluncurkan secara produktif untuk kalangan terbatas - pada kelompok uji karyawan ICD yang pergi berbelanja dan melakukan pembelian tes. Semua kemungkinan kekurangan dan keinginan dipertimbangkan, dan pada musim gugur 2018, semua pelanggan ICD yang bahkan tidak memiliki bank seluler terhubung sebelum menerima penawaran pribadi atas saham dari organisasi mitra. Artinya, setiap klien dari Moscow Credit Bank, jika menghubungkan Mobile Bank untuk pertama kalinya, melihat bahwa IBC telah mengurus penawaran individual untuknya.
Dalam versi perusahaan saat ini, yang interaksinya diatur melalui agregator,
dari kategori berikut:
- makanan, supermarket;
- SPBU;
- kafe dan restoran;
- apotek;
- toko online;
- obat-obatan;
- hiburan;
- pakaian dan sepatu.
Di antara mitra yang siap menagih cashback, ada perusahaan besar seperti 5 Karmanov, METRO, Farmasi 36.6, Leonardo, VICHY, Toy.ru, Gorzdrav, Hotel COSMOS, Kari, Utkonos, Diskon Rybolov, SOHO, Line, Burger King, Detsky Mir, Kozlovitsa dan banyak lainnya. Dan jika, misalnya, Anda sudah membeli sesuatu dari mitra kami, mengapa tidak mendapatkan penghasilan dari ini, katakanlah, 10% atau bahkan 25%? Menggoda, bukan?
Waktu tidak berhenti, dan sekarang jumlah mitra dalam saham "Penawaran Pribadi" terus bertambah. Sekarang setiap klien ICD dapat memperoleh uang dari pembelian mereka dan memilih penawaran pribadi yang nyaman untuk diri mereka sendiri, hal utama adalah untuk tetap up to date dan jangan lupa untuk menggunakan aplikasi mobile bank. Sekarang waktu berlalu ketika orang takut untuk terus menggunakan kartu untuk pembelian mereka dan lebih dipercaya dalam bentuk uang tunai. Jelaslah bahwa pengembalian uang bermanfaat bagi bank dan toko - dan, tentu saja, untuk pelanggan bank. Cashback memiliki lebih banyak keuntungan daripada, misalnya, diskon dan kupon bonus yang sama yang mengharuskan Anda untuk datang lagi ke toko sampai poin yang terkumpul habis, karena secara psikologis lebih menyenangkan bagi pengguna tidak hanya membeli produk dengan jumlah yang lebih kecil, tetapi untuk menerima uang kembali. Dan jika banyak bank menawarkan untuk mendapatkan cashback untuk kategori layanan atau barang tertentu yang dapat digunakan lebih banyak dalam satu bulan dan lebih sedikit di yang lain, maka penawaran pribadi dari ICD memungkinkan Anda memilih sendiri keuntungan harga untuk layanan yang diperlukan saat ini. , sementara kategori dan penawaran sudah cukup untuk membuat pilihan ini.