folder Tahribat.com Forumları
linefolder Asp - Php - Cgi - Perl
linefolder Php Payu Entegrasyonu [SORU]



Php Payu Entegrasyonu [SORU]

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    WildWamqire
    WildWamqire's avatar
    Kayıt Tarihi: 06/Mart/2011
    Erkek

    Selamlar payu entegrasyonu yapmaya çalışıyorum ancak 2 gündür çözemedim

    <?php
    $url = "https://secure.payu.com.tr/order/alu/v3";
     
    $secretKey = 'SECRET_KEY';
    $arParams = array(
        //The Merchant's ID
        "MERCHANT" => "OPU_TEST",
        //order external reference number in Merchant's system
        "ORDER_REF" => rand(1000,9999),
        "ORDER_DATE" => gmdate('Y-m-d H:i:s'),
         
        //First product details begin
        "ORDER_PNAME[0]" => "Ticket1",
        "ORDER_PCODE[0]" => "TCK1",
        "ORDER_PINFO[0]" => "Barcelona flight",
        "ORDER_PRICE[0]" => "1",
        "ORDER_QTY[0]" => "1",
        //First product details end
         
        //Second product details begin
        "ORDER_PNAME[1]" => "Ticket2",
        "ORDER_PCODE[1]" => "TCK2",
        "ORDER_PINFO[1]" => "London flight",
        "ORDER_PRICE[1]" => "2",
        "ORDER_QTY[1]" => "1",
        //Second product details end
     
        "PRICES_CURRENCY" => "TRY",
        "PAY_METHOD" => "CCVISAMC",
        "SELECTED_INSTALLMENTS_NUMBER" => "2",
        "CC_NUMBER" => "4242424242424242",
        "EXP_MONTH" => "12",
        "EXP_YEAR" => "2020",
        "CC_CVV" => "000",
        "CC_OWNER" => "FirstName LastName",
         
        //Return URL on the Merchant webshop side that will be used in case of 3DS enrolled cards authorizations.
        "BACK_REF" => "https://www.example.com/alu/3ds_return.php",
        "CLIENT_IP" => "127.0.0.1",
        "BILL_LNAME" => "John",
        "BILL_FNAME" => "Doe",
        "BILL_EMAIL" => "shopper@payu.ro",
        "BILL_PHONE" => "13556778900",
        "BILL_COUNTRYCODE" => "TR",
    	"BILL_ZIPCODE" => "12345", //optional
    	"BILL_ADDRESS" => "Billing address", //optional
    	"BILL_ADDRESS2"=> "Billing address ", //optional
        "BILL_CITY" => "City", //optional
        "BILL_STATE" => "State / Dept.", //optional
    	"BILL_FAX" => "1234567890", //optional
    	
        "DELIVERY_LNAME" => "John", //optional
        "DELIVERY_FNAME" => "Doe", //optional
    	"DELIVERY_EMAIL" => "shopper@payu.ro", //optional
    	"DELIVERY_PHONE" => "1234567890", //optional
    	"DELIVERY_COMPANY" => "Company Name", //optional
    	"DELIVERY_ADDRESS" => "Delivery Address", //optional
    	"DELIVERY_ADDRESS2" => "Delivery Address", //optional
    	"DELIVERY_ZIPCODE" => "12345", //optional
        "DELIVERY_CITY" => "City", //optional
        "DELIVERY_STATE" => "State / Dept.", //optional
        "DELIVERY_COUNTRYCODE" => "TR", //optional
    	
    );
     
    //begin HASH calculation
    ksort($arParams);
     
    $hashString = "";
     
    foreach ($arParams as $key=>$val) {
        $hashString .= strlen($val) . $val;
    }
     
    $arParams["ORDER_HASH"] = hash_hmac("md5", $hashString, $secretKey);
    //end HASH calculation
     
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    
    curl_setopt($ch, CURLOPT_TIMEOUT, 60);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($arParams));
    $response = curl_exec($ch);
     
    $curlerrcode = curl_errno($ch);
    $curlerr = curl_error($ch);
     
    if (empty($curlerr) && empty($curlerrcode)) {
        $parsedXML = @simplexml_load_string($response);
        if ($parsedXML !== FALSE) {
     
            //Get PayU Transaction reference.
            //Can be stored in your system DB, linked with your current order, for match order in case of 3DSecure enrolled cards
            //Can be empty in case of invalid parameters errors
            $payuTranReference = $parsedXML->REFNO;
     
            if ($parsedXML->STATUS == "SUCCESS") {
     
                //In case of 3DS enrolled cards, PayU will return the extra XML tag URL_3DS that contains a unique url for each
                //transaction. For example https://secure.payu.com.tr/order/alu_return_3ds.php?request_id=2Xrl85eakbSBr3WtcbixYQ%3D%3D.
                //The merchant must redirect the browser to this url to allow user to authenticate.
                //After the authentification process ends the user will be redirected to BACK_REF url
                //with payment result in a HTTP POST request - see 3ds return sample.
                if (($parsedXML->RETURN_CODE == "3DS_ENROLLED") && (!empty($parsedXML->URL_3DS))) {
                    header("Location:" . $parsedXML->URL_3DS);
                    die();
                }
     
                echo "SUCCES [PayU reference number: " . $payuTranReference . "]";
            } else {
                echo "FAILED: " . $parsedXML->RETURN_MESSAGE . " [" . $parsedXML->RETURN_CODE . "]";
                if (!empty($payuTranReference)) {
                    //the transaction was register to PayU system, but some error occured during the bank authorization.
                    //See $parsedXML->RETURN_MESSAGE and $parsedXML->RETURN_CODE for details               
                    echo " [PayU reference number: " . $payuTranReference . "]";
                }
            }
        }
    } else {
        //Was an error comunication between servers
        echo "cURL error: " . $curlerr;
    }
    

     

    Payunun verdiği kod bu  yapmak istediğim şey 

    //First product details begin
        "ORDER_PNAME[0]" => "Ticket1",
        "ORDER_PCODE[0]" => "TCK1",
        "ORDER_PINFO[0]" => "Barcelona flight",
        "ORDER_PRICE[0]" => "1",
        "ORDER_QTY[0]" => "1",
        //First product details end

     

    Buradaki ürün bilgilerini dbden while veya for döngüsüyle  yapıya uygun aktarmak bu konuda kaynak varmı veya deaha önce yapan biri
    Tek ürün bilgilerini aktarıyorum ancak çoklu üründe sıkıntı çıkıyor yapı oturmuyor


    Abure cubure subure dubure re re re tey tey tey
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    BiUyeOlamadim
    BiUyeOlamadim's avatar
    Kayıt Tarihi: 10/Eylül/2005
    Erkek

    "ORDER_PNAME[0]" => array("Ticket1","Ticket2")

    şeklinde olabilir sanki.

    Edit: Dökümantasyona baktım bu şekilde değilmiş.

    Biraz daha açıklayıcı yazabilirseniz sorunu belki yardımcı olabilirim.

    BiUyeOlamadim tarafından 22/Mar/16 15:22 tarihinde düzenlenmiştir

    The tip of the tongue taking a trip of three steps down the palate to tap, at three, on the teeth. Lo. Lee. Ta.
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    WildWamqire
    WildWamqire's avatar
    Kayıt Tarihi: 06/Mart/2011
    Erkek
    BiUyeOlamadim bunu yazdı

    "ORDER_PNAME[0]" => array("Ticket1","Ticket2")

    şeklinde olabilir sanki.

    Edit: Dökümantasyona baktım bu şekilde değilmiş.

    Biraz daha açıklayıcı yazabilirseniz sorunu belki yardımcı olabilirim.

     

    Şimdi array dizisi olarak değerleri  gönderiyor .

    Her bir ürün için 

    //First product details begin
        "ORDER_PNAME[0]" => "Ticket1",
        "ORDER_PCODE[0]" => "TCK1",
        "ORDER_PINFO[0]" => "Barcelona flight",
        "ORDER_PRICE[0]" => "1",
        "ORDER_QTY[0]" => "1",
        //First product details end

     

    bu değerleri şart koısuyor misal 3 ürün gönderdiğimde

    //1.ürün
        "ORDER_PNAME[0]" => "Ticket1",
        "ORDER_PCODE[0]" => "TCK1",
        "ORDER_PINFO[0]" => "Barcelona flight",
        "ORDER_PRICE[0]" => "1",
        "ORDER_QTY[0]" => "1",
        //2.ürün
        "ORDER_PNAME[1]" => "Ticket2",
        "ORDER_PCODE[1]" => "TCK2",
        "ORDER_PINFO[1]" => "Barcelona flight2",
        "ORDER_PRICE[1]" => "1",
        "ORDER_QTY[1]" => "1",
    	//3.ürün
        "ORDER_PNAME[2]" => "Ticket3",
        "ORDER_PCODE[2]" => "TCK3",
        "ORDER_PINFO[2]" => "Barcelona flight3",
        "ORDER_PRICE[2]" => "1",
        "ORDER_QTY[2]" => "1",

     

    böyle bir dizi ortaya çıkıyor  bewnde verileri dbden çektiğim için bu arra y dizisi içinde  bu yapıya uygun while veya for döngüsü kurmalıyım veya başka bir yolu var mı


    Abure cubure subure dubure re re re tey tey tey
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    nurulmac11
    nurulmac11's avatar
    Kayıt Tarihi: 04/Ağustos/2012
    Erkek

    nasıl bir hata alıyosun hacı yapmaya çalıştığında ?


    black implies white, self implies other, life implies death.
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    WildWamqire
    WildWamqire's avatar
    Kayıt Tarihi: 06/Mart/2011
    Erkek
    nurulmac11 bunu yazdı

    nasıl bir hata alıyosun hacı yapmaya çalıştığında ?

    Aldığım bir php hatası yok Payudan gelen HATA: Hash mismatch [HASH_MISMATCH] hatası dönüyor yani diyorki bu degerler istediğim gibi dökülmemiş.

    Ürün değerlerini su sekilde alıyorum

    if($db->num_rows > 0){
    
    foreach($obj as $key){
    if($key->urun_indirim_fiyat != '0.00'){$fyxt = $key->urun_indirim_fiyat;}else{$fyxt = $key->urun_fiyat;};
    $sh = '"ORDER_PNAME['.$pi.']" => "'.ss($key->urun_adi).'",
        "ORDER_PCODE['.$pi.']" => "'.ss($key->urun_kod).'",
        "ORDER_PINFO['.$pi.']" => "Beden: '.ss($key->sepet_ozellik).'",
        "ORDER_PRICE['.$pi.']" => "'.$fyxt.'",
        "ORDER_QTY['.$pi.']" => "'.$key->sepet_adet.'",
        ';
    	$pi++;
    }
    }

     

    bunu şu sekilde  yazdırıyorum

    $arParams = array(
        "ORDER_REF" => rand(1000,9999),
        "ORDER_DATE" => gmdate('Y-m-d H:i:s'),
    	$sh,
        "PRICES_CURRENCY" => "TRY",
        "PAY_METHOD" => "CCVISAMC",
        "SELECTED_INSTALLMENTS_NUMBER" => "2",
        "CC_NUMBER" => $kart,
        "EXP_MONTH" => $ay,
        "EXP_YEAR" => $yil,
        "CC_CVV" => $ccv,
        "CC_OWNER" => $adss
    ):

     

    Sonuç olarak söyle bir yapı geliyor

    İşaretlediğim yerii yok etmem gerek 


    Abure cubure subure dubure re re re tey tey tey
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    WildWamqire
    WildWamqire's avatar
    Kayıt Tarihi: 06/Mart/2011
    Erkek

    Hiç yapan tecrübeli biri yokmu arkdaslar


    Abure cubure subure dubure re re re tey tey tey
Toplam Hit: 1258 Toplam Mesaj: 6
php payu