You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
flutter tarafında iyzico entegrasyonu gerçekleştirirken fark ettiğim bir durum var. Authentication header'ı için http post body parametrelerini belirttiğiniz şekilde/formatta request string'e dönüştürmeme rağmen 'geçersiz imza' geri dönüşü alıyorum.
Burada farkına vardığım durum, sizin kendi tarafınızda (büyük ihtimalle) post body parametrelerini kendi modelinize oturtup ondan sonra bu model üzerinden request stringi oluşturmanız. Aşağıdaki örneğe bakabilirsiniz.
var myMap = { email : "[email protected]", locale:"tr" } // aynı zamanda bu map, json formatına dönüştürülüp http post body'isine yerleştiriliyor.
bu mapten oluşturduğum request string = [email=[email protected], locale=tr]
siz bu http post isteğini process ederken, body'deki json'a encode edilmiş map datasını büyük ihtimalle önce kendi tarafınızdaki model'e(map türüne) dönüştürüyorsunuz ve kendi modeliniz üzerinden request string oluşturuyorsunuz. Bundan dolayı sizin oluşturduğunuz request string = [locale=tr, email=[email protected]]
iki tarafta(client ve iyzico server) aynı dataya sahip olmasına rağmen farklı request string'lerden(key'lerin aynı sırada olmamalarından dolayı) hash ürettiği için "geçersiz imza" hatası gönderiyorsunuz.
Buradaki problem kullanıcının request string oluşturacağı map datasının key sıralaması.
Örneğin; email ile locale keylerinin yerini değiştirip tekrardan bu mapten request string oluştursam, sizinle aynı request stringi oluşturmuş olacaktım.
Bundan dolayı dökümanlarınıza kullanıcının request string'i oluştururken kullanacağı map datasında keyleri(locale, cardAlias, cardNumber vs) nasıl sıralaması gerektiğini söylemelisiniz. Ya da sizin serverlarınızda çalışan ve request string oluşturan kodu sıralama bağımsız request string oluşturacak şekilde güncellemeniz gerekiyor.
The text was updated successfully, but these errors were encountered:
debate-dev
changed the title
Flutter için Authorization içeriğinin oluşturulması
Authorization içeriğinin oluşturulması
Mar 2, 2024
debate-dev
changed the title
Authorization içeriğinin oluşturulması
Authorization Header içeriğinin oluşturulması
Mar 2, 2024
flutter tarafında iyzico entegrasyonu gerçekleştirirken fark ettiğim bir durum var. Authentication header'ı için http post body parametrelerini belirttiğiniz şekilde/formatta request string'e dönüştürmeme rağmen 'geçersiz imza' geri dönüşü alıyorum.
Burada farkına vardığım durum, sizin kendi tarafınızda (büyük ihtimalle) post body parametrelerini kendi modelinize oturtup ondan sonra bu model üzerinden request stringi oluşturmanız. Aşağıdaki örneğe bakabilirsiniz.
var myMap = { email : "[email protected]", locale:"tr" } // aynı zamanda bu map, json formatına dönüştürülüp http post body'isine yerleştiriliyor.
bu mapten oluşturduğum request string = [email=[email protected], locale=tr]
siz bu http post isteğini process ederken, body'deki json'a encode edilmiş map datasını büyük ihtimalle önce kendi tarafınızdaki model'e(map türüne) dönüştürüyorsunuz ve kendi modeliniz üzerinden request string oluşturuyorsunuz. Bundan dolayı sizin oluşturduğunuz request string = [locale=tr, email=[email protected]]
iki tarafta(client ve iyzico server) aynı dataya sahip olmasına rağmen farklı request string'lerden(key'lerin aynı sırada olmamalarından dolayı) hash ürettiği için "geçersiz imza" hatası gönderiyorsunuz.
Buradaki problem kullanıcının request string oluşturacağı map datasının key sıralaması.
Örneğin; email ile locale keylerinin yerini değiştirip tekrardan bu mapten request string oluştursam, sizinle aynı request stringi oluşturmuş olacaktım.
Bundan dolayı dökümanlarınıza kullanıcının request string'i oluştururken kullanacağı map datasında keyleri(locale, cardAlias, cardNumber vs) nasıl sıralaması gerektiğini söylemelisiniz. Ya da sizin serverlarınızda çalışan ve request string oluşturan kodu sıralama bağımsız request string oluşturacak şekilde güncellemeniz gerekiyor.
The text was updated successfully, but these errors were encountered: