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:


Monday, January 29, 2007

Named-Based Virtual Host

Metode yang digunakan oleh web server seperti Apache Web Server untuk me-manage hosting lebih dari 1 nama domain disebuah server, ini lah definisi umum dari virtual host.

Ada 2 metode utama yang dipakai oleh web server dalam kerangka virtualisasi host ini, yaitu named-based & ip-based.

Named-Based method adalah metode yang menggunakan banyak host name untuk sebuah ip address, syarat penggunaan metode Named-Based ini adalah DNS atau Domain Name Server sebuah server harus berjalan dengan baik. Sementara IP-Based adalah metode yang mengarahkan setiap situs (nama domain) ke 1 IP address yang unik, syaratnya webserver harus mempunyai banyak physical network interfaces (Network Card) atau harus diimplementasikan virtual network interface atau multiple IP address di 1 physical network interface. Selengkapnya mengenai ini bisa dilihat di http://httpd.apache.org/docs/1.3/vhosts/

Keduanya cukup populer didunia per-server-an di internet. Bagaimana mengimplemntasikan metode Named-Based Virtual Host? berikut bahasannya:
  1. Untuk kemudahan administrasi, sebaiknya dibuat sebuah file baru dengan nama vhost.conf atau apa saja terserah anda.
  2. Arahakan Web Server (dalam contoh ini Apache Web Server) untuk membaca vhost.conf nya melalui modifikasi di httpd.conf nya (biasanya dibagian paling bawah dari httpd.conf).
  3. Jika dirasa ribet, udah modif saja httpd.conf untuk menambahkan virtual host nya!
  4. Buat satu file log untuk setiap domain yang akan ditambahkan di virtual host anda,misal untuk domain 12345.com, lognya adalah 12345.log untuk domain 6789.net lognya adalah 6789.log, dst.
  5. Buka file httpd.conf atau vhost.conf nya kemudian isikan code berikut:
    1. Konfigurasi untuk IP server:



    2. Konfigurasi Untuk Domain Pertama:



      Catatan: semua nama domain yang ditulis di Server Name & Server Alias harus diarahkan ke Name Server (NS) yang dimiliki oleh Server anda.

    3. Konfigurasi Untuk Sub Domian Pertama Di Nama Domain Pertama:



    4. Konfigurasi Untuk Domain Kedua:



      Catatan: semua nama domain yang ditulis di Server Name & Server Alias harus diarahkan ke Name Server (NS) yang dimiliki oleh Server anda.

    5. Dan selajutnya.

Friday, January 19, 2007

RSS

Menurut http://id.wikipedia.org/wiki/RSS, RSS adalah sebuah file berformat XML untuk sindikasi yang telah digunakan (diantaranya dan kebanyakan) situs web berita dan weblog. Singkatan ini biasanya mengarah ke beberapa protokol:
  1. Rich Site Summary (RSS 0.91)
  2. RDF Site Summary (RSS 0.9 and 1.0)
  3. Really Simple Syndication (RSS 2.0)

Teknologi yang dibangun dengan RSS mengijinkan kita untuk berlangganan kepada situs web yang menyediakan umpan (feed) RSS, biasanya situs web yang isinya selalu diganti secara reguler (dinamik).

Untuk memanfaatkan teknologi ini kita membutuhkan layanan pengumpul. Pengumpul bisa dibayangkan sebagai kotak surat pribadi. Kita kemudian dapat mendaftar ke situs yang ingin kita tahu perubahannya. Namun, berbeda dengan langganan koran atau majalah, untuk berlangganan RSS tidak diperlukan biaya, alias gratis! Tapi, kita biasanya hanya mendapatkan satu baris (judul artikel) atau sebuah pengantar (abstark artikel) dari isi situs berikut alamat terkait untuk membaca isi lengkap artikelnya (link), sehingga ketika kita ingin membaca detail artikelnya, kita akan diarahkan pada web yang menyediakan feed tersebut.

Dari sisi penyedia feed, ini merupakan sarana mempromosikan web secara efektif, tapi kadang dari sisi web yang berlangganan, ada keinginan untuk menampilkan detail artikelnya diweb milik dia sendiri tanpa harus masuk ke web yang menyediakan feed tersebut (pencurian arikel melalui feed! hehehehehe...........ilegal engga ya?)

Bagaimana membuat feed yang baik & bagaimana cara untuk mengakali agar kita bisa menampilkan artikel sekaligus detail artikel nya di web kita? Berikut bahasannya:

  1. Membuat Feed
    Terdapat banyak sekali referensi yang bisa diambil ketika kita akan membuat sebuah feed, salahsatunya adalah http://feedvalidator.org/docs/.
    Pertama yang harus dilakukan ketika membuat sebuah feed adalah mendefinisikan header dari file feed yang akan kita buat, biasanya:



    Setelah itu kita definisikan tipe/versi & refence RSS feed yang akan kita buat, biasanya:


  2. Kemudian kita define bagian content dari RSS feed kita:



    Kemudian kita define item - item yang akan menjadi bagian di RSS kita:



    Perlu diperhatikan bahwa bagian "content:encoded" tidak akan ditampilkan dihalaman feed kita, tetapi nilainya bisa diambil oleh siapapun juga yang berlangganan.

    Selanjutnya kita tinggal menutup bagian content & feed yang kita buat:



    Selengkapnya feed diatas adalah:



  3. Jangan lupa untuk melakukan pengecekan apakah feed yang kita buat sudah benar & sesuai dengan kaidah RSS atau belum, carana adalah dengan masuk ke situs http://feedvalidator.org/ dan kemudian meng-copy-paste URL feed yang kita buat dan klik tombol VALIDATE, selanjutnya jika resultnya adalah "Congratulations! This is a valid RSS feed." maka artinya feed kita sudah baik & akan bisa dibaca oleh berbagai macam feed reader yang ada, tetapi jika ditemui beberapa error, maka lakukan perbaikan sesuai dengan HELP yang ada disana.
  4. Berlangganan/Mengambil Feed (dan menempatkannya disitus kita seolah milik kita)

    Pertama, silahkan download feed reader yang dibuat dengan PHP dari http://magpierss.sourceforge.net/, kemudian buat sebuah file PHP yang isinya:



    Kemudian eksekusi lewat browser, jika nilai dari variabel yang kita ingin tampilkan keluar di browser, maka artnya code kita sudah benar.

    Selanjutnya, kita bisa menampilkan judul, abstrak & link ke web feed tersebut atau kita juga bisa melakukan pencurian artikel dan menempatkannya disitus kita seolah milik kita, dengan cara:

    1. Buat sebuah database & sebuah tabel di web kita yang nantinya akan menampung data - data yang berhasil kita ambil lewat feed reader kita diatas.
    2. Input data - data yang berhasil kita ambil kedalam database ini (bisa memakai cronjob dengan mengabaikan artikel yang sudah pernah diinput (menghindari penginputan data untuk artikel - artikel yang sama), ataupun secara manual dengan cara meng-input tiap kali file yang menampilkan data - data ini dieksekusi)
    3. Kemudian tampilkan data - data tersebut disitus kita (kecuali data link nya tentunya atau sebaiknya tetap tampilkan data link tersebut tapi jadikan data link nya sebagai reference saja, agar kita tidak dibilang mencuri artikel! hehehehehe)

    Catatan: Pertimbangkan unsur legalitas & kesopanan saat anda melakukan pengambilan feed dan menampilannya seolah itu adalah milik anda!

Tuesday, January 9, 2007

SDLC

Website, menjadi barang yang paling menarik sejak kehadiran internet (diluar Chatting tentunya :-)). Apakah Website itu? ada banyak definisi tentangnya, yang jelas website adalah sebuah rumah di internet, sebuah media promosi elektronik, sebuah pusat layanan informasi non-stop 24 jam, lebih jauh dengan adanya aplikasi Virtual Office di dalamnya diharapkan proses kerja yang menyangkut pengiriman & pelaporan dokumen serta proses komunikasi berjalan lebih lancar karenanya.

Ingin memiliki website? buat sebagia orang : "Ga usah lah, buat apa?", buat sebagian lagi: "Kita harus punya agar image kita menjadi lebih baik!", buat sebagian orang lagi: "Dijaman seperti sekarang, jika kita tidak mempunyai nya, maka sama artinya dengan ketinggalan kereta!".

Buat orang yang ingin mememilikinya, ada beberapa tahapan yang harus dilalui saat membangun sebuah website, sebab pada dasarnya sebuah website adalah sebuah sistem software, jadi proses pengembangannya dijamin akan selalu terikat pada apayang dinamakan SDLC. SDLC adalah System Development Life Cycle, yang sederhananya adalah tahapan - tahapan pengembangan sistem. apa saja tahapannya?
  1. Identification, yaitu proses mengidentifikasi kebutuhan! apa saja yang diinginkan dengan memiliki sebuah website? tentunya hal ini berkaitan dengan fasilitas - fasilitas yang ada ddalam website yang akan dibangun itu sendiri.
  2. Analysis, proses menganalisa kebutuhan, proses menganalisa fasilitas - fasilitas apa saja yang diinginkan dalam web yang akan dibangun tersebut, berdasarkan proses Identification.
  3. Design, yaitu proses perancangan sistem yang akan dibangun baik itu dari sisi desain layout atau tampilan (nilai artistik & estetika nya) ataupun dari sisi teknis seperti database dan aplikasi atau fasilitas yang akan menjadi bagiannya, berdasarkan hasil analisa sebelumnya.
  4. Implementation, yaitu proses development, proses meng-implemntasi design yang telah dibuat.
  5. Testing & Documentation, adalah proses penge-test-an hasil development dan proses mendokumentasikan apa yang telah dibuat.

Jangan lupa bahwa pada saat proses testing ini, kadang kala muncul hal - hal yang tidak kita inginkan, seperti error dan lain lain, juga kadang ada permintaan untuk menambah atau mengubah sesuatu! Nah proses ini akan bisa kita lalui secara baik jika kita kembali merujuk pada tahapan - tahapan pengembangan sistem diatas.

Ribet? ga juga tuch....coba aja jalanin... kadang tanpa sadar semua tahapan itu telah kita lalui.
Perlu diperhatikan pula (khusus untuk para developer) bahwa ada kebiasaan disebagian masyarakat yang ingin membangun sebuah sistem, pada awalnya mereka tidak punya konsep akan seperti apa sistem yang akan dibangun tersebut, mereka hanya tahu, saya ingin ada A disana, saya ingin B bisa jalan disana, ketika ditanya konsep nya secara komprehensif, yang ada malah bingung! tetapi setelah sistem itu jadi, nah mulailah... saya pingin si A ini bisa jungkir balik! saya pingin B bisa melompat, saya ingin ada C, D, E, F, G, H sebab ini penting! Buruknya lagi, setelah berbagai fasilitas dibuat, "Gw Ga Bisa Makenya!".

Dengan tetap berpegang pada SDLC, mudah - mudahan semua masalah dalam pembangunan sistem (terutama sistem web) tersebut bisa diatasi dengan baik! Amien.