Anda sedang membangun aplikasi web e-commerce dan Anda perlu mendukung beberapa metode pembayaran (Visa, MasterCard ... dll.) Sehingga pelanggan Anda dapat dengan mudah membayar pesanan mereka. Daripada menerapkan ini sendiri, Anda memutuskan untuk mengandalkan penyedia pihak ketiga yang tepercaya untuk menyediakan layanan ini untuk Anda.
Perusahaan terkenal dari Belgia yang menyediakan layanan pembayaran adalah Ogone. Mereka menyediakan lebih dari 40 metode pembayaran internasional dan lokal. Mereka menangani transaksi pembayaran antara pelanggan Anda, toko online Anda dan penyedia metode pembayaran (misalnya Visa).
Tentu saja Anda harus membayar sejumlah kecil untuk setiap transaksi yang ditangani oleh Ogone, tetapi itu memberi Anda perlindungan penipuan terintegrasi, keamanan, alat untuk mengelola pembayaran Anda ... dan banyak lagi. Biaya menerapkan semua ini sendiri jauh lebih besar.
Jadi Anda mendaftar untuk akun Ogone dan memutuskan untuk mengintegrasikan sistem mereka ke dalam aplikasi web Anda.
Bagaimana kita bisa menyadari hal ini? Mari kita cari tahu ...
Hal pertama yang pertama, buka situs web Ogone dan mendaftar untuk akun tes gratis. Di sudut kanan atas situs Anda "akan menemukan tombol berlabel" Buat akun uji gratis Anda ".
Gambar 1 - Akun Uji

Klik dan isi formulir yang dihasilkan. Pastikan data yang Anda masukkan dalam formulir ini benar. Setelah mengirimkan permintaan Anda untuk akun tes baru, karyawan Ogone akan memverifikasi detail Anda dan tergantung pada hasilnya akan menyetujui atau menolak permintaan Anda. Proses ini mungkin memakan waktu beberapa jam. Cukup menyebalkan, tetapi tidak ada jalan lain di sekitarnya.
Setelah akun Anda disetujui, Anda akan menerima email yang berisi kata sandi Anda. Anda sekarang siap untuk masuk ke Administrasi Pedagang Ogone.
Sebelum Anda dapat mulai menggunakan akun pengujian Anda, Anda perlu mengonfigurasi pengaturan berikut:
Untuk mengonfigurasi opsi langganan Anda, klik pada akun opsi yang ditampilkan di menu di sisi kiri layar.
Gambar 2 - Menu Administrasi Pedagang

Pada halaman akun Anda akan disajikan dengan beberapa opsi, pilih opsi "Langganan Anda". Sekarang Anda perlu memilih jenis langganan. Pilih "Petualangan" dan klik tombol berlabel "Konfirmasi dan pergi ke opsi Anda".
Di sini Anda dapat menambahkan sejumlah opsi ke langganan Anda seperti deteksi penipuan, hosting gambar, tampilan faktur ... dll. Untuk demo ini, kami tidak memerlukan opsi tambahan, jadi cukup klik konfirmasi untuk menyimpan pengaturan Anda.
Setelah Anda mengkonfigurasi jenis langganan Anda, Anda dapat melanjutkan dengan menambahkan metode pembayaran yang ingin Anda tawarkan kepada pelanggan Anda. Klik Metode Pembayaran Opsi di menu Administrasi Pedagang (Gambar 2). Setelah Anda menambahkan visa ke daftar "Metode Pembayaran yang Dipilih", Anda perlu mengedit metode pembayaran ini dan mengaturnya untuk diaktifkan.
Gambar 3 - Aktifkan metode pembayaran visa

Cukup klik pada opsi Edit yang ditunjukkan pada Gambar 3, tandai metode pembayaran seperti yang diaktifkan (aktivasi: ya) dan klik Kirim. Anda dapat menggunakan nomor kartu 4111 1111 1111 1111 untuk menguji pembayaran visa. Cukup masukkan apapun untuk tanggal kedaluwarsa dan kode keamanan 3 digit.
Terakhir namun tidak terkecuali Anda perlu mengkonfigurasi beberapa pengaturan teknis yang menentukan bagaimana pembayaran online akan ditangani. Lanjutkan dengan mengklik opsi informasi teknis yang ditampilkan di menu (Gambar 2).
Halaman yang dihasilkan dibagi menjadi tab berikut:
Cukup klik tautan ini untuk melihat tangkapan layar bagaimana saya telah mengonfigurasi akun uji Ogone saya. Saya telah menetapkan tanda tangan SHA-1-IN dan SHA-1-OUT ke "MicrosoftaspNet4". Kami akan kembali lagi nanti.
Anda sekarang telah membuat dan mengonfigurasi akun uji Ogone Anda. Anda siap melakukan pembayaran online pertama Anda.
Saya telah membuat proyek aplikasi web ASP.NET sederhana yang menunjukkan bagaimana Anda dapat mengintegrasikan pembayaran OGONE dalam situs web yang diaktifkan ASP.NET Anda sendiri.
Gambar 4 - Solusinya

Aplikasi web ini hanya berisi beberapa halaman:
Komentar : Karena Anda dapat melihat proyek juga berisi beberapa file kode. Kami akan membahasnya di bagian berikut. File -file ini berisi kode yang diperlukan untuk menangani proses pembayaran dengan Ogone. Jangan ragu untuk meningkatkan desain, saya hanya menyertakan kode minimum untuk membuat semuanya berfungsi.
Jangan mengklik tombol Mulai Pembayaran yang ditampilkan di bawah ini, itu hanya tangkapan layar. Inilah yang terlihat seperti halaman default.aspx:
Gambar 5 - halaman default.aspx

Referensi (atau ID pesanan) dihasilkan untuk secara unik mengidentifikasi pesanan yang dibayarkan. Ogone melacak referensi ini. Anda tidak dapat memproses referensi yang sama dua kali. Jadi itu sebabnya saya memilih untuk menggunakan GUID yang dihasilkan secara acak untuk contoh ini. Saya harus mempersingkat GUID menjadi 30 karakter karena Ogone tidak mengizinkan lebih dari batas ini.
Jelas, selain referensi ini, Anda juga perlu menentukan jumlah yang harus dibayar. Kode contoh juga mengirimkan alamat email pelanggan yang dimaksud. Dengan cara ini Ogone dapat mengirim email kepada pelanggan bahwa pembayarannya telah berhasil diproses.
Mari kita lihat kode yang tersembunyi di balik acara klik tombol:
Daftar 1 - Meminta Pembayaran Ogone
// Persist order to database
// ...
OgoneRequest ogoneRequest = new OgoneRequest ( ) ;
ogoneRequest . RequestPayment ( this . _reference , amount , customerEmail ) ;
// Clear shopping cart
// ...Anda dapat memulai pembayaran dengan membuat instance baru dari kelas Ogonerequest dan memanggil metode permintaan pembayaran (...). Metode ini membutuhkan 3 parameter, yaitu referensi pesanan, jumlah yang perlu dibayar dan alamat email pelanggan.
Listing 2 - Ogonerequest Constructor
public OgoneRequest ( )
{
OgoneUrl = ConfigurationManager . AppSettings [ "Ogone_Url" ] ;
Psid = ConfigurationManager . AppSettings [ "Ogone_PSID" ] ;
ShaKey = ConfigurationManager . AppSettings [ "Ogone_SHA1_IN" ] ;
Currency = ConfigurationManager . AppSettings [ "Ogone_Currency" ] ;
Language = ConfigurationManager . AppSettings [ "Ogone_Language" ] ;
AcceptUrl = ConfigurationManager . AppSettings [ "Ogone_AcceptUrl" ] ;
ExceptionUrl = ConfigurationManager . AppSettings [ "Ogone_ExceptionUrl" ] ;
CancellationUrl = ConfigurationManager . AppSettings [ "Ogone_CancellationUrl" ] ;
}Konstruktor kelas Ogonerequest menginisialisasi beberapa properti dengan membaca beberapa nilai dari file konfigurasi aplikasi (web.config). Anda perlu menentukan URL untuk menelepon untuk memulai proses pembayaran, Ogone PSID (nama pengguna) Anda, kunci SHA1-in yang Anda tentukan pada administrasi pedagang, URL pengalihan ... dll.
Metode Listing 3 - RequestPaypayment (...)
public void RequestPayment ( string reference , double amount , string email )
{
// Multiply by one hundred and round to zero decimals
amount = Math . Round ( amount * 100 , 0 ) ;
RemotePost post = new RemotePost { Url = this . OgoneUrl } ;
post . Add ( "pspid" , this . Psid ) ;
post . Add ( "orderid" , reference ) ;
post . Add ( "amount" , amount . ToString ( ) ) ;
post . Add ( "currency" , this . Currency ) ;
post . Add ( "language" , this . Language ) ;
post . Add ( "email" , email ) ;
// Hash
post . Add ( "SHASign" , Ogone . GenerateHash (
reference + amount + this . Currency +
this . Psid + this . ShaKey ) ) ;
// Redirection URLs
post . Add ( "accepturl" , this . AcceptUrl ) ;
post . Add ( "exceptionurl" , this . ExceptionUrl ) ;
post . Add ( "cancelurl" , this . CancellationUrl ) ;
post . Post ( ) ;
}Metode RequestPaypayment (...) memulai proses pembayaran baru dengan membuat posting HTTP menggunakan kelas Remotepost. Semua informasi yang diperlukan termasuk dalam pos seperti PSID Anda, jumlah yang perlu dibayar, bahasa, tanda sha1 ... dll.
Anda perlu menghitung hash SHA1 menggunakan tanda tangan SHA1-in yang Anda konfigurasi dalam administrasi pedagang. Ogone menyatakan bahwa Anda juga perlu memasukkan referensi, jumlah, mata uang, dan PSID Anda dalam hash ini. Kami akan kembali menghitung hash sha1 nanti.
Komentar : Posting HTTP mengirimkan beberapa URL pengalihan yang akan digunakan Ogone saat pembayaran dilakukan, dibatalkan ... dll. Jika Anda tidak memberikan ini, maka URL default seperti yang dikonfigurasi dalam administrasi pedagang akan digunakan (tab umpan balik transaksi di bawah informasi teknis).
Gambar 6 - Konfirmasi Pembayaran

Setelah memulai proses pembayaran, Anda akan dialihkan ke halaman baru seperti yang terlihat pada gambar di atas. Anda dapat mengubah tata letak halaman ini dengan menentukan parameter tambahan dalam posting HTTP. Lihat kode sumber yang menyertai artikel ini dan dokumentasi resmi Ogone untuk informasi lebih lanjut tentang hal itu.
Jika pengguna mengklik tombol Batal maka proses pembayaran akan berakhir dan dia akan diarahkan ke halaman PaymentCancelled.aspx. Halaman ini hanya menampilkan pesan bahwa pengguna membatalkan proses pembayaran.
Tetapi kami telah mengkonfigurasi akun Ogone kami sedemikian rupa sehingga semua informasi yang relevan mengenai proses pembayaran termasuk dalam string kueri. Misalnya:
http: // localhost: 3767/paymentcancelled.aspx? orderId = 246cf6f0-8bad-4edb-806c-eed3fb & mata uang = EUR & jumlah = 19,99 & pm = kartu kredit & penerimaan = & status = 1 & Cardno = & ed = & cn = & trxDate = 04%2F08%2F10 & payId = 6806803 & ncerror = & brand = ... dll.
Anda dapat mengekstrak informasi seperti referensi pesanan asli, jumlah, metode pembayaran (misalnya: visa), status keberhasilan pembayaran ... dll. Anda dapat mencatat atau membuang informasi ini jika Anda menginginkannya. Terserah Anda. Ogone juga menyertakan hash SHA1 yang disusun dengan bantuan tanda tangan SHA1-out yang dikonfigurasi dalam administrasi pedagang. Hash ini memungkinkan Anda untuk memverifikasi identitas orang yang membuat permintaan dan validitas data yang ada dalam string kueri.
Jika proses pembayaran berhasil diselesaikan maka Ogone akan mengarahkan pengguna ke halaman Payment Accepted.aspx. String kueri juga akan menyertakan data yang sama. Selama acara pemuatan halaman, status pembayaran dan validitas hash SHA diperiksa. Jika keduanya benar, pembayaran diterima.
Listing 4 - Paymentaccepted.aspx Page Load Event Handler
OgonePaymentStatus status = OgoneResponse . Status ;
// Invalid Sha key returned from Ogone?
bool paymentSucceeded = OgoneResponse . IsShaSignValid && Ogone . IsPaymentStatusValid ( status ) ;Komentar : Ogone menyertakan parameter yang disebut status (integer) di string kueri. Status ini memberi tahu Anda tentang status pembayaran. Kode sampel untuk artikel ini membungkus beberapa nilai ini dalam enum yang disebut OgonePaymentstatus. Lihatlah dokumentasi resmi Ogone untuk daftar semua nilai yang mungkin. Metode ISPaymentStatusValid (...) memverifikasi jika parameter status yang masuk adalah salah satu nilai yang memberi tahu kami bahwa pembayaran telah dilakukan.
Jenis kelas Ogoneresponse hanyalah pembungkus kecil yang menangani berurusan dengan parameter string kueri yang disertakan Ogone ketika mengarahkan kembali pengguna kembali ke situs Anda.
Listing 5 menunjukkan kutipan kecil dari kelas ini. Properti IsShasignValid membaca tanda tangan SHA1-out dari file konfigurasi aplikasi (web.config) dan menghitung ulang tanda SHA. Untuk melakukan ini, Anda harus memasukkan data lain seperti jumlah, referensi pesanan, mata uang ... dll. (Konsultasikan dengan dokumentasi Ogone resmi untuk informasi lebih lanjut).
Jika tanda SHA yang dihitung cocok dengan yang termasuk dalam string kueri maka kami berurusan dengan permintaan yang berasal dari Ogone dan data dalam parameter string kueri valid.
Daftar 5 - Kelas Ogoneresponse
public static class OgoneResponse
{
public static string OrderId { get { return HttpContext . Current . Request [ "orderid" ] ; } }
public static string Amount { get { return HttpContext . Current . Request [ "amount" ] ; } }
public static string ShaSign { get { return HttpContext . Current . Request [ "shasign" ] ; } }
public static bool IsShaSignValid
{
get
{
string key = OrderId + Currency + Amount + PaymentMethod + AcceptanceCode +
( int ) Status + CardNumber + PaymentId + NcError + Brand +
ConfigurationManager . AppSettings [ "Ogone_SHA1_OUT" ] ;
return ShaSign == Ogone . GenerateHash ( key ) ;
}
}
} Listing 6 menunjukkan kepada Anda satu cara yang mungkin bagaimana Anda dapat menghitung hash sha1 untuk string. String dikonversi ke array byte dan kemudian dikodekan menggunakan sha1cryptoServiceProvider. Hash yang dihasilkan kemudian dikonversi menjadi format heksadesimal.
Listing 6 - Menghitung hash sha1
public static string GenerateHash ( string input )
{
byte [ ] bytes = new ASCIIEncoding ( ) . GetBytes ( input ) ;
SHA1CryptoServiceProvider sha = new SHA1CryptoServiceProvider ( ) ;
byte [ ] hash = sha . ComputeHash ( bytes ) ;
StringBuilder result = new StringBuilder ( ) ;
for ( int i = 0 ; i < 20 ; i ++ )
{
string temp = hash [ i ] . ToString ( "X2" ) ;
if ( temp . Length == 1 )
{
temp = "0" + temp ;
}
result . Append ( temp ) ;
}
return result . ToString ( ) ;
}Dan dengan ini, artikel berakhir ...
Saya harap Anda menikmati tutorial ini tentang cara mengintegrasikan layanan pembayaran Ogone dengan aplikasi web e-commerce Anda. Untuk merekap apa yang telah kami bahas dari sudut pandang pengembang: