Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Authorization Header içeriğinin oluşturulması #126

Open
debate-dev opened this issue Mar 2, 2024 · 0 comments
Open

Authorization Header içeriğinin oluşturulması #126

debate-dev opened this issue Mar 2, 2024 · 0 comments

Comments

@debate-dev
Copy link

debate-dev commented 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.

@debate-dev 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 debate-dev changed the title Authorization içeriğinin oluşturulması Authorization Header içeriğinin oluşturulması Mar 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant