• 14-02-2024, 22:25:14
    #1
    Merhaba bir api kullanmak istiyorum

    https://developers.trendyol.com/docs...t-ile-gonderim

    // API URL si
    https://api.trendyol.com/sapigw/suppliers/{supplierId}/shipment-packages/{Id}/alternative-delivery

    Burada sipariş oluşturdum ve teslim etmedim. php ile bu apiyi kullanmak istiyorum paket id giriyorum telefon numarası giriyorum ama SMS Gönderimi olmuyor

    Bu konuda bilgisi olan arkadaşlar bana kod konusunda yardımcı olabilir mi?

    <?php
    // Trendyol API URL'si
    $url = 'https://api.trendyol.com/sapigw/suppliers/{supplierId}/shipment-packages/{Id}/alternative-delivery';
    // Kullanıcı bilgileri
    $supplierId = 'xxxx';
    $id = '2434343434';
    $apiKey = 'xxxxx';
    // API isteği için gerekli başlık
    $headers = array(
        'Content-Type: application/json',
        'Authorization: ApiKey ' . $apiKey
    );
    // API isteği için gerekli veri
    $data = array(
        "isPhoneNumber" => true,
        "trackingInfo" => "54xxxxxxxx",
        "params" => array(
            "digitalCode" => "123454454545"
        )
    );
    // CURL ile API isteğini oluştur
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $response = curl_exec($ch);
    curl_close($ch);
    // Yanıtı işle
    if ($response === false) {
        echo 'API isteği başarısız: ' . curl_error($ch);
    } else {
        // API yanıtını dizi olarak çözümle
        $responseData = json_decode($response, true);
        
        // Hata kontrolü
        if (isset($responseData['errors'])) {
            echo 'API hatası: ' . $responseData['errors'][0]['message'];
        } else {
            // Veri kontrolü
            if (isset($responseData['timestamp']) && isset($responseData['exception']) && isset($responseData['errors']) && $responseData['timestamp'] === 0 && $responseData['exception'] === "" && $responseData['errors'] === null) {
                echo 'API yanıtı: Veri bulunamadı veya beklenen formatta değil.';
            } else {
                // Başarılı yanıtı göster
                echo 'API yanıtı: ' . $response;
            }
        }
    }
    ?>
    API YANITI İse böyle gözüküyor

    API yanıtı: {"timestamp":0,"exception":"","errors":null}
  • 15-02-2024, 00:52:14
    #2
    supplierid ve id bilgilerini url içerisine almıyorsunuz ki.url'i başta tanımlıyorsunuz,daha sonra supplierid ve id bilgilerini tanımlıyorsunuz.
  • 15-02-2024, 04:50:37
    #3
    VEDANTA adlı üyeden alıntı: mesajı görüntüle
    supplierid ve id bilgilerini url içerisine almıyorsunuz ki.url'i başta tanımlıyorsunuz,daha sonra supplierid ve id bilgilerini tanımlıyorsunuz.
    Teşekkürler bunu çok sonradan farkettim ama başka yanlış birşey varmı diye beklemek istedim, deneyip haber vereceğim
  • 15-02-2024, 09:28:07
    #4
    Kodlarımı güncelledim ama şimdi şöyle bir hata alıyorum

    {"timestamp":1707978081621124,"exception":"Trendyo lAuthorizationException","errors":[{"key":"basic.authorization.failed","message":"Bus iness exception occurred basic.authorization.failed ","errorCode":"","args":null}]}



    $url = "https://api.trendyol.com/sapigw/suppliers/xxx/shipment-packages/xxx/alternative-delivery";

    // API Anahtarı ve Gizlisi
    $api_key = "Xxxx"; // Trendyol API anahtarı buraya eklenir
    $api_secret = "Xxxx"; // Trendyol API gizlisi buraya eklenir

    // Erişim Belirteci (Access Token)
    $access_token = "Xxxx"; // Trendyol API erişim belirteci buraya eklenir

    // Basic Authentication bilgisi
    $basic_auth = base64_encode($api_key . ":" . $api_secret);

    // Curl başlat
    $ch = curl_init($url);

    // Curl ayarları
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Authorization: Bearer ' . $access_token,
    'Content-Type: application/json'
    ));

    // API isteği yap
    $response = curl_exec($ch);

    // Curl kapat
    curl_close($ch);

    // API yanıtını ekrana yazdır
    echo $response;

    ?>
  • 15-02-2024, 11:08:52
    #5
    İşleri biraz karıştırmışsınız. Bu sefer kodlarda token kullanmışsınız.Onun yerine bir önceki koddaki header kısmını şu şekilde değiştirip bir denermisiniz :

    $header = array(
       'Authorization: Basic '. base64_encode('API-KEY'),
       'Content-Type: application/json'    );
    API-KEY yazan kısıma kendi api key'iniz gelecek

    Eğer yukarıdaki çalışmassa bir de bunu deneyin
    $header = array(
      "Authorization: Basic ".base64_encode("API-KEY".":"."API-SECRET"),
      "Content-Type: application/json",
      "User-Agent: "."PARTNERID"." - SelfIntegration");
  • 15-02-2024, 12:56:46
    #6
    VEDANTA adlı üyeden alıntı: mesajı görüntüle
    İşleri biraz karıştırmışsınız. Bu sefer kodlarda token kullanmışsınız.Onun yerine bir önceki koddaki header kısmını şu şekilde değiştirip bir denermisiniz :

    $header = array(
       'Authorization: Basic '. base64_encode('API-KEY'),
       'Content-Type: application/json'    );
    API-KEY yazan kısıma kendi api key'iniz gelecek

    Eğer yukarıdaki çalışmassa bir de bunu deneyin
    $header = array(
      "Authorization: Basic ".base64_encode("API-KEY".":"."API-SECRET"),
      "Content-Type: application/json",
      "User-Agent: "."PARTNERID"." - SelfIntegration");
    Teşekkürler deneyip haber vereceğim
  • 16-02-2024, 20:25:49
    #7
    Merhaba
    @VEDANTA;
    API-KEY
    API-Secret
    bunları biliyorum ama

    PARTNERID bu kısıme supplierid değerinimi yazacağım?
  • 16-02-2024, 21:00:30
    #8
    akatriel adlı üyeden alıntı: mesajı görüntüle
    Merhaba
    @VEDANTA;
    API-KEY
    API-Secret
    bunları biliyorum ama

    PARTNERID bu kısıme supplierid değerinimi yazacağım?
    evet
  • 16-02-2024, 22:12:18
    #9
    VEDANTA adlı üyeden alıntı: mesajı görüntüle
    İşleri biraz karıştırmışsınız. Bu sefer kodlarda token kullanmışsınız.Onun yerine bir önceki koddaki header kısmını şu şekilde değiştirip bir denermisiniz :

    $header = array(
       'Authorization: Basic '. base64_encode('API-KEY'),
       'Content-Type: application/json'    );
    API-KEY yazan kısıma kendi api key'iniz gelecek

    Eğer yukarıdaki çalışmassa bir de bunu deneyin
    $header = array(
      "Authorization: Basic ".base64_encode("API-KEY".":"."API-SECRET"),
      "Content-Type: application/json",
      "User-Agent: "."PARTNERID"." - SelfIntegration");
    Merhaba 2 yöntemde çalışmadı, boş ekran çıkıyor