Üçüncü Taraf Sağlayıcı İmza Rehberi
Üçüncü taraf ödeme sağlayıcısı imzalarını nasıl oluşturacağınızı öğrenin.
Başarılı bir imza oluşturmak için, aşağıda belgelenen talimatları izleyin. RFC 9421 şartname. Amazon'un SP-API istekleri yapan TPP'ler için uyguladığı imza oluşturma yönleri olduğunu unutmayın. Bunlar aşağıdaki bölümlerde belgelenmiştir.
İmza bileşenleri
RFC 9421 Bir istekte hangi HTTP ileti bileşenlerinin imzalandığını iletme sürecini açıklar. İmza oluştururken aşağıdaki ileti bileşenlerini eklemelisiniz.
Not
Aşağıdaki bileşenlerin dahil edilememesi, imza doğrulama hatasına neden olur. Bu bileşenleri herhangi bir sırayla ekleyebilirsiniz.
HTTP alanları (mesaj başlıkları)
Başlık | Açıklama |
---|---|
x-amz-access-token | İstek yapmak için kullanılan LWA erişim belirteci. |
x-amzn-content-digest | İstek yükünün sha-256 özeti. Yük yükü olmayan istekler için, sha-256 özetini bir bilgisayarda oluşturun boş dize. |
Ek bilgi için bkz. HTTP Alanları.
Türetilmiş bileşenler
Component | Açıklama |
---|---|
@method | İsteğin HTTP yöntemi. Değer büyük harf olmalıdır (örneğin GET , POST ). |
@query | Tarafından tanımlanan normalleştirilmiş sorgu dizesi URI ve liderleri içerir ? karakter.İstekte bir sorgu yoksa, bileşen değerini şu şekilde doldurmanız gerekir ? içinde belirtilen imza tabanını oluşturduğunuzda RFC 9421.Değer, Yüzdelik Kodlama gibi gerekli tüm kodlamayı gerçekleştirdikten sonra türetilmelidir. Yaptığınız diğer değişiklikler queryString imzayı oluşturduğunuzda dahil edilmeyen imza hatasına neden olur. |
Ek bilgi için bkz. Türetilmiş Bileşenler.
İmza parametreleri
Parametre | Açıklama |
---|---|
created | Saniye cinsinden bir dönem zaman damgası. Eğer created Epoch, isteğin alındığı zamana kadar beş dakikadan daha eski bir süreye işaret eder, imza süresi dolmuş sayılır ve çağrı reddedilir. |
alg | İmza tabanını imzalamak için kullandığınız bir algoritma. Değeri alg olmalı PS512 . Ek ayrıntılar için bkz. İmzalama algoritması. |
Ek bilgi için bkz. İmza Parametreleri.
Dikkat
Tüm istek başlığı değerleri büyük/küçük harfe duyarlıdır. Herhangi bir durum uyumsuzluğu varsa, imza doğrulamanız başarısız olur.
İmza etiketi
RFC 9421 aynı başlık içinde birden fazla imzaya izin verir (belirsizliği gidermek için kullanın imza etiketleri). SP-API, yalnızca bir imza kullanır ve bu imza ile tanımlanır x-amzn-psd2
imza etiketi. Bunu içinde kullanmalısın Signature
ve Signature-Input
PSD2 ile ilgili bilgileri tanımlamak için başlıklar.
İmzalama algoritması
İşlemi tamamladığınızda oluşturulan imza taban dizesinde bir imza oluşturulur. RFC 9421'deki adımlar. İmza taban dizenizi oluşturduktan sonra, isteği şu şekilde imzalamak için elektronik NCA Sertifikanızla ilişkili özel anahtarı kullanmanız gerekir. PS512 algoritma. Bu algoritma şu anda SP-API istekleri için desteklenen tek algoritmadır.
İmzada kullandığınız özel anahtarla ilişkilendirilen sertifika bir başlık olarak iletilmelidir (x-amzn-psd2-certificate
) SP-API isteğinizde. Sertifika bir olmalıdır PEM-formatlı Şununla başlayan Base64 kodlamasında dize -----BEGIN CERTIFICATE-----
ve bitiyor -----END CERTIFICATE-----
.
Sertifikada izin verilmeyen karakterler kullanırsanız SP-API isteğiniz reddedilir. Yalnızca Nitelikli Güven Hizmet Sağlayıcıları (QTSP) tarafından verilen HTTP isteklerini imzalamayı amaçlayan sertifikaları kullanmanız gerekir.
Dikkat
Kullandığınız sertifika, geliştirici kaydınızda sağladığınız kuruluş tanımlayıcısıyla ilişkilendirilmelidir. Bir uyumsuzluk varsa, isteğiniz reddedilir.
Hata yanıtı
İstek imzası doğrulamanız başarısız olursa, gövdede ek bilgiler içeren 403 Hatası alırsınız. Örneğin:
{
"errors": [
{
"code": "Unauthorized",
"message": "Access to requested resource is denied.",
"details": "Reason for error."
}
]
}
Aşağıdakiler için olası değerlerin bir listesidir. details
alan:
Hata mesajı | Açıklama |
---|---|
TPP certificate required but missing from request | x-amzn-psd2-certificate Header eksik. |
TPP certificate has invalid format | Sağlanan sertifika geçerli PEM formatında değil. |
Content Digest header required but missing from request | X-amzn-content-digest istek başlığı eksik. |
Invalid Content Digest | İçerik özeti doğrulanamadı veya desteklenmeyen bir algoritma kullandınız. Yalnızca SHA-256 desteklenmektedir. |
Signature-Input header required but not presented | Signature-Input istek başlığı eksik. |
Signature-Input header is invalid | Signature-Input başlık değeri RFC 9421 spesifikasyonuna uymuyor. |
Request PSD2 Signature is Invalid | Geçersiz imza. Bunun yanlış özel anahtar veya sertifika kullanılması veya yazım hatası gibi birden fazla nedeni olabilir. |
Signature header is required but not presented | Signature istek başlığı eksik. |
Örnek imza
Aşağıdaki örnek, gerekli tüm bileşenleri içeren bir imza taban dizesidir:
"x-amz-access-token": Atza|IgEBIN...
"x-amzn-content-digest": sha-256=:fadf3qr3TAFASEG3234gADA+krdzMzYayg4YFig=:
"@method": POST
"@query": ?key2=value2&key1=value1
"@signature-params": ("x-amz-access-token" "x-amzn-content-digest" "@method" "@query");created=1720137600;alg="PS512";
İlişkili Signature-Input
başlık:
Signature-Input: x-amzn-psd2=("x-amz-access-token" "x-amzn-content-digest" "@method" "@query");created=1720137600;alg="PS512"
Aşağıdaki örnek, aşağıdakilere sahip bir imza başlığıdır: Signature
etiket:
Signature: x-amzn-psd2=:cyqStwls2k3Xs8SSzDvDhxWEc_P0dNxV5I6Tp... :
Updated 27 days ago