WooCommerce API · Genel

WooCommerce REST API kimlik doğrulama: Basic Auth, sorgu dizesi ve OAuth 1.0a

WooCommerce REST API isteklerini Consumer Key ve Consumer Secret ile doğrularsınız. HTTPS üzerinde HTTP Basic Auth kullanılır: kullanıcı adı Consumer Key, şifre Consumer Secret olur. Sunucu Authorization başlığını okuyamıyorsa anahtarlar sorgu dizesinde gönderilebilir. Şifresiz HTTP bağlantıda ise OAuth 1.0a imzası gerekir.

GET/wp-json/wc/v3/ordersBelgedeki örnek istek; Basic Auth ile çağrılır.

Üç yöntemin karşılaştırması

WooCommerce iki yerleşik yöntem tanımlar: anahtarla doğrulama ve HTTP üzerinde OAuth 1.0a. Belge ayrıca herhangi bir WP REST API kimlik doğrulama eklentisinin de kullanılabileceğini söyler.

YöntemNe zamanNasıl gönderilir
Basic AuthSite HTTPS ile açılıyorsaAuthorization başlığı: Basic ve base64(ck:cs)
Sorgu dizesiHTTPS var ama sunucu başlığı okumuyorconsumer_key ve consumer_secret parametreleri
OAuth 1.0a (tek ayaklı)Site şifresiz HTTP ile açılıyorsaoauth_* parametreleri ve imza

Sorgu dizesi yöntemi yalnız bir geçici çözümdür. Adres satırındaki değerler sunucu erişim kayıtlarında görünebilir. Mümkünse sunucuyu başlığı iletecek şekilde düzeltin.

Basic Auth başlığı nasıl kurulur?

Basic Auth için anahtar çiftini iki nokta üst üste ile birleştirip base64 ile kodlarsınız. Aşağıdaki değerler sahtedir.

  • Kullanıcı adı: ck_SAHTE_ANAHTAR
  • Şifre: cs_SAHTE_SIR
  • Birleştirilmiş metin: ck_SAHTE_ANAHTAR:cs_SAHTE_SIR
  • Başlık: Authorization: Basic ve ardından birleştirilmiş metnin base64 karşılığı

Belgeye göre Authorization başlığı WooCommerce 3.0 ile desteklenmeye başladı. Postman ya da Insomnia gibi araçlarda yetkilendirme türü olarak Basic Auth seçip iki anahtarı kullanıcı adı ve şifre alanlarına yazmanız yeterlidir.

Base64 bir şifreleme değildir, yalnız kodlamadır. Anahtarın ağda korunması HTTPS sayesindedir. Bu yüzden Basic Auth şifresiz HTTP üzerinde kullanılmaz.

HTTP üzerinde OAuth 1.0a

Siteniz HTTPS kullanmıyorsa anahtarların ele geçirilmemesi için OAuth 1.0a “tek ayaklı” imza zorunludur. Hazır bir OAuth 1.0a kütüphanesi kullanmak işi kolaylaştırır.

KuralBelgedeki değer
Zorunlu parametreleroauth_consumer_key, oauth_timestamp, oauth_nonce, oauth_signature, oauth_signature_method
oauth_versionGerekmez, gönderilmemeli
İmza algoritmasıYalnız HMAC-SHA1 ya da HMAC-SHA256
Zaman damgası15 dakikalık pencere dışındaki istekler reddedilir
NonceAnahtara özgü, önerilen 32 karakterlik rastgele dizi
İstek gövdesiİmzaya dahil edilmez

İmza taban metninde sitenin API dizininde verdiği adres kullanılmalıdır. Site www ile açılıyorsa istekleri de www ile yapın. Belge, WordPress’te ham başlıkları okumanın her ortamda güvenilir olmadığını, sorgu dizesinin bazı durumlarda daha sağlam olduğunu da not eder.

Sık hatalar ve çözümleri

BelirtiOlası nedenÇözüm
401 UnauthorizedAnahtar yanlış ya da kullanıcının o kaynağa yetkisi yokYeni anahtar üretin, kullanıcının rolünü kontrol edin
“Consumer key is missing”Sunucu Authorization başlığını PHP’ye iletmiyorSunucu ayarını düzeltin ya da sorgu dizesini kullanın
HTTPS’te sorun yok, HTTP’de 401HTTP’de Basic Auth kullanılmışOAuth 1.0a imzası kullanın ya da HTTPS’e geçin
OAuth isteği reddediliyorSaat farkı 15 dakikayı aşıyorSunucu saatini eşitleyin
Ara sıra 401FastCGI ortamında başlık kayboluyorBarındırma firmasından başlık iletimini isteyin

Hata kodlarının tamamı WooCommerce hata kodları sayfasında.

Sık sorulanlar

WooCommerce REST API için hangi kimlik doğrulama yöntemini kullanmalıyım?

Siteniz HTTPS ile açılıyorsa Basic Auth en basit yoldur. Kullanıcı adı Consumer Key, şifre Consumer Secret olur.

“Consumer key is missing” hatası ne demek?

Belgeye göre bu, sunucunun Authorization başlığını doğru okuyamadığını gösterir. Sunucu ayarını düzeltebilir ya da anahtarları HTTPS üzerinde sorgu dizesiyle gönderebilirsiniz.

Sitem HTTP ile açılıyor, Basic Auth çalışır mı?

Belge, HTTP üzerinde OAuth 1.0a imzasının kullanılması gerektiğini söyler. En temiz çözüm sitede HTTPS’i etkinleştirmektir.

OAuth imzasında hangi algoritmalar kabul edilir?

Yalnız HMAC-SHA1 ve HMAC-SHA256. Zaman damgası 15 dakikalık pencerenin dışındaysa istek reddedilir.

Kaynaklar

İlgili WooCommerce API konuları

Son güncelleme: 27.10.2026 · WooCommerce API rehberinin tamamı

WooCommerce entegrasyonunu kod yazmadan kurun

Saystok bu API'lerle stok, sipariş ve fiyatı sizin yerinize eşitler. 30 gün ücretsiz.