Paypal Sandbox Test Ortamı Ipn Settings

Paypal entegrasyonu artık çoğu e-ticaret ve işletme sistemleri için vazgeçilmez hale geldi. Geliştiriciler içinse paypal development http://www.developer.paypal.com adresinde. Geliştirme ortamı oldukça basit en önemli kısmı ipn (instant payment notification) uyarlaması.

Paypal Ödeme Entegrasyonu yazarken aldığım notları paylaşayım. Öncelikle paypal yayınına çıkmadan önce test etmeniz gereken kısımlar bunları da Paypal’ın orjinaliyle birebir olan test ortamı Sandbox üzerinde deneyebilirsiniz. Bu yazıda ipn dosyasını paypal sandboz’a nasıl set edeceğiz onu anlatalım.

        // cmd satırı okuyalim

        $req = 'cmd=_notify-validate';

        foreach ($_POST as $key => $value) {
        $value = urlencode(stripslashes($value));
        $req .= "&$key=$value";
        }

        // gelenleri okumak icin baglanti acalim
        $header .= "POST /cgi-bin/webscr HTTP/1.0\r\n";
        $header .= "Content-Type: application/x-www-form-urlencoded\r\n";
        $header .= "Host: www.sandbox.paypal.com\r\n";
        $header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
        $fp = fsockopen ('ssl://www.sandbox.paypal.com', 443, $errno, $errstr, 30);

        //baglanti kontrolü 
        if (!$fp) {
        // HTTP ERROR
        //biseyler yap
        }else{

        //headerı okuyalım
        fputs ($fp, $header . $req);
        while (!feof($fp)) {
        $res = fgets ($fp, 1024);

        //baglanti ve odeme bilgileri dogru ise
        if (strcmp ($res, "VERIFIED") == 0) {

        // degerleri alalim.
        $item_name = $_POST['item_name'];
        $item_number = $_POST['item_number'];
        $payment_status = $_POST['payment_status'];
        $payment_amount = $_POST['mc_gross'];
        $payment_currency = $_POST['mc_currency'];
        $txn_id = $_POST['txn_id'];
        $receiver_email = $_POST['receiver_email'];
        $payer_email = $_POST['payer_email'];
        $custom = $_POST['custom'];

         //odeme tamamlandi ise
         if($payment_status == "Completed"){
         //odememiz basarili. hayirli olsun.
         }
         }

         }