İade İşlemi

C# Örneği
// API isteğinin yapılacağı endpoint linki
var api_url = "https://yourdomain.com/api/live";

// API hesabına ait güvenlik anahtarı
var secret_key = "İmzaPos panelinden aldığınız güvenlik anahtarı";

// Parametreler
var parameters = new Dictionary<string, string>
{
// İmzaPos panelinden aldığınız bayi kodu
    { "merchant", "Bayi kodunuz" },
    { "mode", "return" },
    { "customer_ip", "192.168.1.0" },
    { "transaction_id", "IP_8gf3t4Y8x545" },
};

// Parametreler başlıklarına göre alfabetik olarak sıralanır
var sortedParameters = parameters.OrderBy(k => k.Key);

// Parametreler birleştirilir.
var joinParameters = string.Join("ip", sortedParameters.Select(v=> v.Value));

// Parametreler hash'lenir.
var hashedParameters = ComputeSha256Hash(joinParameters + secret_key);

parameters.Add("hash", hashedParameters);

try
{
    var client = new HttpClient();
    var content = new FormUrlEncodedContent(parameters);
    var response = await client.PostAsync(api_url, content);

    // Değer alınır
    var responseString = await response.Content.ReadAsStringAsync();
}
catch (Exception)
{
// Hata oluştu
    throw;
}

// SHA256 Metodu
static string ComputeSha256Hash(string rawData)
{
    using (SHA256 sha256Hash = SHA256.Create())
    {
        var bytes = sha256Hash.ComputeHash(Encoding.UTF8.GetBytes(rawData));

        var builder = new StringBuilder();
        for (int i = 0; i < bytes.Length; i++)
        builder.Append(bytes[i].ToString("x2"));
                    
        return builder.ToString();
    }
}

Başarılı bir şekilde tamamlanmış ödeme işlemlerini iade edebilirsiniz. Bunun için ödeme sonrasında verilen transaction_id değerini kullanmalısınız.

Parametreler

Parametre Zorunlu Açıklama
mode Zorunlu string Değer Return olarak gönderilmelidir.
merchant Zorunlu string İmzaPos paneli üzerinden aldığınız bayi kodu alanını bu bölüme yazmalısınız.
lang Opsiyonel string Bu değer varsayılan olarak tr'dir. Eğer cevabı farklı bir dilde almak istiyorsanız bu bölüme dil kodunu yazmalısınız. Desteklenenler: tr
customer_ip Zorunlu string İşlem yapan müşterinin IP adresini bu bölümde iletmelisiniz.
transaction_id Zorunlu string Her ödeme işlemi sonucunda transaction_id değeri iletilir. İptal için bu değeri girmelisiniz.
custom_data Opsiyonel string Bu bölüme yazdığınız değer API cevabında size geri gönderilecektir.
trx_id Opsiyonel string Yapılan iade işlemini daha sonra sorgulamak için sadece bu işleme özel bir değer gönderebilirsiniz.
hash Zorunlu hash İşlemi yapan API kullanıcısının tespiti için bu parametrenin gönderilmesi zorunludur. Güvenlik için gönderilen tüm parametrelerin sha256 formatında hash'lenmesi gerekmektedir.

Hash (Güvenlik kodu) Üretilmesi

Hash bilgisi gönderilen bilgileri teyit amaçlı alınan şifrelenmiş bir değerdir. Gönderilen parametrelerin belli bir format üzerinde birleşmesi sonucu bu değer üretilir. Oluşturulan değer İmzaPos tarafında aynı işlemler yapıldığında üretilen değer ile aynı olmalıdır.
Bu değeri oluşturmak için izlenecek adımlar şu şekildedir:
1- Zorunlu tüm parametreler ve ek olarak opsiyonel eklenene parametrelerin gönderimi sağlanır
2- Parametreler isimlerine göre alfabetik olarak sıralanıp bir string değer olarak birleştirilir.
3- Her parametre arasına "ip" harfleri yazılır
4- Oluşturulan string değer sha256 hash formatına dönüştürülür.
5- İstek yapılan endpoint'in "hash" parametresinde bu değer gönderilir.