• 04-03-2022, 21:22:18
    #1
    Merhaba arkadaşlar, payment sayfasında sipariş bilgilerini veritabanına ekleyip id'yi çekip sipariş id'si olarak gönderiyorum ancak callback sayfasında verileri $_POST ile listelediğimde benim gönderdiğim sipariş numarası gelmiyor. Gönderdiğim sipariş idsini $_POST['platform_order_id'] ile almama rağmen gönderdiğim id gelmiyor. Gelen id sürekli 1 olarak geliyor.

     callback kodları
    <?php
      
    require "classes/allClass.php";
     require_once("functions/guard.php");
    require_once("shopier-master/ayar.php");
    require_once ("shopierAPI.php");
    
    
    
    
    
    $db = new \db\db();
    
    
        if (isset($_POST["platform_order_id"]) && isset($_POST["status"]) && isset($_POST["installment"]) && isset($_POST["payment_id"]) && isset($_POST["random_nr"]) && isset($_POST["signature"])) {
            $signature  = base64_decode(post("signature"));
            $data       = post("random_nr").post("platform_order_id").post("total_order_value").post("currency");
            $expected   = hash_hmac('SHA256', $data, API_SECRET, true);
        $SiparisId = $_POST["platform_order_id"];
    
           if (strcmp($signature, $expected) == 0) {
                if (post("status") == 'success') {
                    $checkOrder = $db->GetRow("SELECT SiparisId, SiparisDurumu FROM siparisler WHERE SiparisId = ?",array($SiparisId));
          
    
                    if ($checkOrder && $checkOrder->SiparisDurumu == "Ödeme Bekliyor") {
                        $updateOrder = $db->Update("UPDATE siparisler SET ShopierId = ?, SiparisDurumu = ? WHERE SiparisId = ?",array(post("payment_id"),"Onaylandı",$checkOrder->SiparisId));
    
    
                    }
                    
                }
                else {
                    go("error.php");
                }
            }
        }
        else {
            go("error.php");
        }
    
    ?>
    payment kodları
    $shopier = new Shopier(API_KEY, API_SECRET);
    
    
                                            $amount = ($PaketKontrol->UrunFiyati) + ($PaketKontrol->UrunFiyati) * COMMISSION / 100;
                                        $KullaniciBilgiGetir = $db->GetRow("SELECT * FROM members WHERE MemberUsername=?", array($_SESSION['username']));
    
    
                                            // ÖDEME YAPAN KİŞİNİN BİLGİLERİ
                                            $shopier->setBuyer([
                                                'id' =>         "$KullaniciBilgiGetir->MemberID",
                                                'first_name' => "$KullaniciBilgiGetir->MemberName",
                                                'last_name' =>  "$KullaniciBilgiGetir->MemberLastname",
                                                'email' =>      "$KullaniciBilgiGetir->MemberEmail",
                                                'phone' =>      $KullaniciBilgiGetir->MemberPhone
                                            ]);
                                            // VERİLEN SİPARİŞİN FATURASI
                                            $shopier->setOrderBilling([
                                                'billing_address' => "$KullaniciBilgiGetir->UyeAdres",
                                                'billing_city' =>    "$KullaniciBilgiGetir->UyeSehir",
                                                'billing_country' => "TR",
                                                'billing_postcode' =>"34000"
                                            ]);
                                            // SİPARİŞİ VEREN KİŞİ - ÜSTTEKİ İLE AYNI BİLGİLERİ GİREBİLİRSİNİZ.
                                            $shopier->setOrderShipping([
                                                'shipping_address' => "$KullaniciBilgiGetir->UyeAdres",
                                                'shipping_city' =>    $KullaniciBilgiGetir->UyeSehir,
                                                'shipping_country' => "TR",
                                                'shipping_postcode' =>"34000"
                                            ]);
    
    
    
    
                                            $SiparisBitisTarihi=date("Y-m-d H:i:s",strtotime('+30 days'));
    
    
    
    
                                            $SiparisEkle=$db->Insert("INSERT INTO siparisler (ShopierId,MemberID,UrunId,SiparisBitisTarihi,SiparisDurumu) VALUES (?,?,?,?,?)",array(0,$KullaniciBilgiGetir->MemberID,$Id,$SiparisBitisTarihi,"Ödeme Bekliyor"));
                                            $SiparisId=$SiparisEkle;
    
    
                                            die($shopier->run($SiparisId,$amount, CALLBACK_URL));
  • 05-03-2022, 11:33:48
    #2
    API'de sorun varmış. Sorun çözüldü