Payten / Asseco Nestpay Hash v3
Closed this issue · 4 comments
Merhaba,
Elinize sağlık öncelikle. 31 Temmuz 2023den itibaren Hash V3 kullanılması gerekiyor sanırım. Bununla alakalı geliştirme yapılacak mısınız?
Merhabalar,
Rica ederim, projeyi beğenmenize sevindim.
Sorunuz üzerine asseco ile iletişime geçtim. Bana verdikleri yanıt şu şekilde:
"Mevcut durumda Hash 1 versiyonumuzu kullanan işyerlerimize, en kısa zamanda Hash 3 versiyonumuza geçmelerini önermekteyiz. Fraud atakları ve riskleri minimize etmek amacıyla Hash 3 versiyonumuzun kullanımı önemlidir. Hash 3 versiyon, 1 versiyona göre daha az fraud riski içermektedir, versiyon 3'e geçmeyen işyerleri bu riski kabul etmiş sayılacaktır. Ekte Hash versiyon 3 dokümanları iletilmiştir."
Yani hash 3 olmasada kullanım devam edecek ancak bazı yükümlülükleri kabul etmeyeceklerini anlıyorum.
Ancak yinede 31 Temmuz'a kadar güncelleme yapacağım.
Teşekkürler Cem Bey, projenizi beğendim için size hatırlatmak istemiştim. Biz kendi sistemimizde şu şekilde yaptık belki işinize yarar;
`StringBuilder sb = new StringBuilder();
sb.Append(PosFormCreator.CreatePrePostFormHeader(Info.OdemeUrl + "est3Dgate"));
sb.Append(PosFormCreator.AddHiddenField("amount", amount));
sb.Append(PosFormCreator.AddHiddenField("clientid", clientId));
sb.Append(PosFormCreator.AddHiddenField("currency", "949"));
sb.Append(PosFormCreator.AddHiddenField("cv2", Form.GuvenlikKodu.ToString()));
sb.Append(PosFormCreator.AddHiddenField("Ecom_Payment_Card_ExpDate_Month", Form.Ay.ToString()));
sb.Append(PosFormCreator.AddHiddenField("Ecom_Payment_Card_ExpDate_Year", Form.Yil.ToString()));
sb.Append(PosFormCreator.AddHiddenField("failUrl", failUrl));
sb.Append(PosFormCreator.AddHiddenField("hashAlgorithm", "ver3")); -- hash version
sb.Append(PosFormCreator.AddHiddenField("lang", "tr"));
sb.Append(PosFormCreator.AddHiddenField("oid", oid));
sb.Append(PosFormCreator.AddHiddenField("okUrl", okUrl));
sb.Append(PosFormCreator.AddHiddenField("pan", Form.KartNumarasi));
sb.Append(PosFormCreator.AddHiddenField("rnd", rnd));
sb.Append(PosFormCreator.AddHiddenField("storetype", storetype));
String hashstr = $"{amount}|{clientId}|949|{Form.GuvenlikKodu}|{Form.Ay.ToString()}|{Form.Yil.ToString()}|{failUrl}|ver3|tr|{oid}|{okUrl}|{Form.KartNumarasi}|{rnd}|{storetype}|{storekey}";
System.Security.Cryptography.SHA512 sha = new System.Security.Cryptography.SHA512CryptoServiceProvider();
byte[] hashbytes = System.Text.Encoding.GetEncoding("ISO-8859-9").GetBytes(hashstr);
byte[] inputbytes = sha.ComputeHash(hashbytes);
String hash = System.Convert.ToBase64String(inputbytes);
sb.Append(PosFormCreator.AddHiddenField("hash", hash));`
1.6.1 versiyonunda hash v3 e geçildi. Teşekkürler.
ASP.NET C# Uygulamasını geliştiren varsa, Hash Version 3 Güncellemesi ile alakalı yardım almak isteyen olursa.
Yardımcı olabilirim. Mail Adresim: mrtbrr@gmail.com yada burdanda yazabilirsiniz.