Monday, February 12, 2007

Paypal API

Paypal (http://www.paypal.com/) adalah salahsatu online payment yang kredibilitasnya tidak perlu diragukan lagi. Begitu banyak situs yang memakai jasa paypal untuk melakukan pembayaran atas pembelian produk atau jasa yang mereka jual.

Salahsatu yang membuat Paypal menjadi sangat populer adalah ketersediaan begitu banyak API atau Application Programming Interface yaitu tools yang digunakan untuk menjalin komunikasi antara Paypal dengan website yang memakai jasa nya dalam proses penjualan produk.

Disamping itu Paypal pun menyediakan fasilitas yang bernama SandBox (http://www.sandbox.paypal.com/) dan https://developer.paypal.com/ yang bisa digunakan oleh para webmaster untuk melakukan testing code Paypal API yang telah dibuat olehnya.

Salahsatu API yang cukup sederhana, namun sangat bagus dalam melakukan komunikasi dengan Paypal adalah yang dibuat oleh Micah Carrick (http://www.micahcarrick.com/). Sebuah produk opensource berbasis PHP yang sangat mudah untuk dipelajari dan dimodifikasi sesuai dengan kebutuhan kita untuk melakukan komunikasi dengan Paypal.

API yang dibuat oleh oleh Micah Carrick hanya terdiri dari satu file saja yang berisi sebuah Class yang ditulis dengan bahasa pemrograman PHP. Class yang dibuatnya cukup lengkap, terdiri dari 3 fungsi utama, yaitu fungsi pemrosesan transaksi, fungsi pengambilan data transaksi yang dikirim Paypal jika transaksi sukses & fungsi untuk meng-handle fungsi IPN atau Instant Payment Notification (http://www.paypal.com/cgi-bin/webscr?cmd=p/xcl/rec/ipn-intro-outside) dari Paypal.

Berdasarkan Class yang dibuat oleh Micah Carrick tersebut, kita bisa melakukan komunikasi dengan Paypal lewat API yang bisa kita buat sendiri. Namun terlebih dahulu tentunya kita harus melakukan registrasi di Paypal, melengkapi semua formulir yang disediakan Paypal untuk registrasi dan kemudian mendapatkan Username & Password sebagai identitas dari account kita di Paypal.

Setelah kita mendapatkan Username & Password untuk login di Paypal, selanjutnya kita harus melakukan beberapa konfigurasi di account kita di Paypal & membuat API untuk komunikasi antara website kita dengan Paypal. Konfigurasi tersebut adalah:
  1. Masuk ke halaman Profile dengan meng-klik link Profile dihalaman account kita di Paypal. Halaman Profile Summary ini terdiri dari 3 bagian utama, yaitu:
    1. Account Information, pada bagian ini, section yang harus diperhatikan adalah:
      1. Email, pastikan alamat email yang menjadi Primary Email anda benar & valid, sebab semua pemberitahuan akan dikirim ke alamat email ini.
      2. Notifications, pada bagian ini terdapat banyak pilihan, yang direkomendasikan untuk dipilih adalah opsi “PayPal Periodical Monthly Newsletter and Product Updates”, “Customer Feedback Surveys”, “I receive money with PayPal”, “I request money with PayPal” dan opsi “I receive PayPal Website Payments and Instant Purchase”.
      3. Section yang lain tidak perlu dimodifikasi.
    2. Financial Information
      1. Currency Balances, pastikan menggunakan US Dollar (USD).
      2. Section yang lain tidak perlu dimodifikasi.
    3. Selling Preferences
      1. Website Payment Preferences, terdapat beberapa subsection dibagian ini, yaitu:
        1. Auto Return for Website Payments, pastikan bernilai OFF & Return URL nya kosong.
        2. Payment Data Transfer (optional), pastikan bernilai OFF.
        3. Encrypted Website Payments, pastikan bernilai OFF.
        4. PayPal Account Optional, pastikan bernilai ON.
        5. Contact Telephone Number, pastikan bernilai ON (Required Field).
        6. Express Checkout Settings, pastikan bernilai NO.
      2. Section yang lain tidak perlu dimodifikasi.
  2. Copy sebuah Paypal’s Button, dengan cara masuk ke Merchant Service, kemudian pilih Website Payment Standar, pilih Paypal’s Button yang anda inginkan, misalnya Button “Buy Now”, klik kanan digambar ini dan pilih Save As. Gambar Paypal Button ini nantinya akan dipasang diwebsite anda sebagai sebuah button submit.
  3. Buat API code berdasarkan Class yang dibuat oleh Micah Carrick, misalnya:
    1. Bagian Definisi:



      Variabel item adalah nama produk yang akan dijual, Variabel harga adalah nilai jual produk dalam US Dollar, Variabel Paypal Account adalah Username yang kita miliki di Paypal, biasanya berupa alamat E-mail yang kita daftarkan di Paypal.

    2. Bagian Action:



    3. Bagian Yang Ditampilkan Ke konsumen secara default:



    4. Selengkapnya code tersebut adalah:



  4. Lakukan test untuk code kita di SandBox (http://www.sandbox.paypal.com/) dengan terlebih dahulu membuat Test Account di https://developer.paypal.com/.

Monday, February 5, 2007

2Checkout API

2CO atau 2CheckOut (http://www.2checkout.com/) adalah salahsatu authorized reseller untuk lebih dari 1,6 miliar produk & jasa yang ditawarkan lewat internet.

2CO sangat terpercaya untuk ditempatkan sebagai “payment method” dari produk atau jasa yang akan kita tawarkan lewat internet. Hasil penjualan nantinya akan langsung diterima oleh account bank yang kita tunjuk (diluar USA dikenakan biaya transfer tentunya).

Banyak sekali situs yang menggunakan 2CO sebagai “payment method” utamanya, tetapi seringkali terdapat pula permintaan untuk melakukan sebuah tindakan saat pembayaran lewat 2CO telah sukses dilakukan. Misalnya kita menjual sebuah produk software yang untuk memakainya diperlukan serial number, saat seseorang meng-klik link beli di website kita, mereka akan diarahkan atau di-redirect ke 2CO, kemudian mereka melakukan pembayaran, setelah selesai mereka kembali ke website kita dan akan menerima sebuah email yang berisikan link untuk mendownload software yang kita jual tersebut berikut serial numbernya. Perlu diingat bahwa setiap kali terjadi transaksi pembelian produk kita lewat 2CO, kita sebagai “Merchant“ akan mendaatkan sebuah email otomatis dari 2CO yang berisi detail transaksi. Manakah yang lebih mudah untuk website kita, apakah membaca email yang dikirim 2CO (secara otomatis) atau melakukan komunikasi dengan 2CO sesaat setelah transaksi sukses (secara otomatis juga)?

Saya rasa yang lebih mudah dilakukan adalah menjalin komunikasi antara website kita dengan 2CO secara otomatis sesaat setelah transaksi sukses dilakukan, pertanyaan berikutnya adalah bagaimana website kita bisa berkomunikasi dengan 2CO agar data – data pembayaran yang dilakukan konsumen bisa secara otomatis dikirim balik ke website kita untuk mengetahui sukses atau tidaknya transaksi dan kemudian dilakukan pengiriman email ke konsumen yang bersangkutan? API adalah jawaban dari pertanyaan ini.

Apakah API? Banyak sekali definisi mengenai Application Programming Interface atau API, sederhananya API adalah seperangkat alat komunikasi yang bisa digunakan untuk melakukan komunikasi antara website kita dengan dengan website lain, dalam hal ini 2CO. Bagaimana membuat API antara website kita dengan 2CO secara sederhana? Berikut bahasannya:
  1. Buat account di 2CO, tanpa ini jangan mimpi bisa memakai 2CO sebagai “payment method kita” sebab saat kita membuat sebuah API (Application Programming Interface – Alat komunikasi antara website kita dengan 2CO) kita membutuhkan User Account di 2CO.
  2. Setelah anda register & mendapatkan User & Password dari 2CO, langkah selanjutnya adalah melakukan konfigurasi di account anda di 2CO, hal – hal yang harus dikonfigurasi setelah anda login di 2CO adalah:

    1. Bank Account & Payment Details. Pastikan anda mengisi bagian ini dengan benar, sebab nantinya uang hasil transaksi produk anda akan dikirim kesini.
    2. Additional Site Information atau Vendor Account Information. Deskripsikan website anda dibagian ini.
    3. Vendor Contact Information atau Edit Customer Contact Information, pastikan kolom Email diisi dengan alamat Email anda yang benar & valid, sebab semua pemberitahuan dari 2CO akan dikirim kesini.
    4. Set Up Products. Isi bagian ini dengan deksripsi yang lengkap mengenai product yang anda tawarkan, lengkapi dengan gambar dan harga produk yang benar (dalam USD).
    5. Business Contact Information. Pastikan semua field di formulir yang tersedia dibagian ini diisi dengan data yang benar & valid.
    6. Bagian terakhir dan sangat menentukan yang harus anda konfigurasi adalah bagian “Look & Feel”, pastikan dibagian ini section “Account Demo Setting” nilainya OFF, jika ON, maka semua transaksi yan terjadi akan dianggap sebagai kegiatan testing traksaksi saja. Section “Direct Return” pastikan ernilai NO, jika YES, maka semua data transaksi yang terjadi tidak akan di-parsing ke website anda. Kemudian terakhir adalah section “Approved, pending and affiliate area”, pastikan anda mengisi Approved URL & Pending URL dengan alamat URL yang benar. Approved URL adalah URL yang akan ditampilkan 2CO jika transaksi sukses dilakukan sementara Pending URL adalah URL yang akan ditampilkan 2CO jika transaksi harus diverifikasi dahulu oleh 2CO untuk dinyatakan sukses atau gagalnya dilakukan. Sample Approved URL adalah http://websitesaya.com/sukses.php (jangan lupa buat halaman ini), sementara Pending URL adalah http://websitesaya.com/pending.html (jangan lupa juga untuk membuat halaman ini).
    7. Nah dihalaman Approved URL (contohnya http://websitesaya.com/sukses.php) ini lah kita akan membuat code yang akan menangkap data transaksi yang dikirim 2CO dan selanjutnya melakukan pengiriman URL untuk download berikut serial number produk kita ke konsumen yang telah melakukan pembayarandan telah divalidasi 2CO.

  3. Buat 2 file untuk Approved URL & Pending URL, dalam contoh ini Approved URL adalah http://websitesaya.com/sukses.php dan Pending URL adalah http://websitesaya.com/pending.html.

    Dihalaman http://websitesaya.com/pending.html, anda cukup menampilkan pesan ahwa transaksi yang telah dilakukan dalam status PENDING dan konsumen anda harus menunggu verifikasi data dari 2CO yang pemberitahuannya akan dikirim ke Email anda, jika nanti ternyata transaksinya sukses, anda bisa melakukan pengiriman alamat URL download berikut serial number produk anda secara manual ke alamat email konsumen yang tercatat di 2CO (untuk kasus pending ini mau tidak mau website kita harus bisa membaca isi email yang dikirim 2CO jika transaksinya dinyatakan Pending, sebab 2CO tidak mengirim data apapun ke website kita saat sebuah transaksi dinyatakan Pending. Jika tidak memungkinkan, maka pengiriman data - data produk kita secara manual adalah satu - satunya alternatif yang kita punya).

    Dihalaman http://websitesaya.com/sukses.php, yang pertama harus anda lakukan adalah membuat code (dalam contoh ini dibuat dengan PHP) untuk menangkap data – data yang dikirim 2CO saat transaksi sukses, kemudian buat code yang akan menginput data - data tersebut ke database anda (untuk pencatatan - jika diperlukan!) selanjutnya code pengiriman data tentang produk kita, code - code tersebut adalah: