İade

İade işlemi için aşağıdaki parametrelerin gönderilmesi gerekmektedir.
NOT: İade işlemi ancak gün sonu kapatıldıktan sonra gerçekleştirilebilir.

Request Parametreleri:

Alan Adı Tipi Açıklama Örnek Değer
PublicKey string TRPOS tarafından size verilen PublicKey Test verilerinde mevcuttur.
ApiKey string TRPOS tarafından size verilen ApiKey Test verilerinde mevcuttur.
Rnd string Her işlemde değişen değer 24072024182023
Hash string Doğrulama için gerekli HASH değeri Sha512 ile oluşturulmalıdır.
TxnNo string TRPOS Tarafından Oluşturulan İşlem Numarası İptal edilecek işlemin TxnNo değeri
Oid string Sipariş Numarası SP0123456789101112131415
Amount double İade İşlem Tutarı 100.56
UserIP string Müşteri IP adresi 127.0.0.1
ExtInfo string İstek sonucunda geri gönderilecek bilgi alanı Opsiyonel

İade İşlemi Örnek JSON Yapısı:

REQUEST:

Kopyalandı!

              POST = https://vpostest.trpos.com/Payment/RefundRequest
              {
              "publicKey": "39308144DD24F47DD3C7ECFB8E54CC41BE4CF43BD1E8167D35398D769A3277B8",
              "apiKey": "3F76D2BA-074F-4A83-989F-7AF1FBFC93E1",
              "rnd": "24072024182023",
              "hash": "{Sha512 Hash İçeriği}",
              "txnNo": "8C4D1235-0725-4466-A543-6F4",
              "oid": "SP0123456789101112131415",
              "amount": 100.56,
              "userIP": "127.0.0.1",
              "extInfo": "Test Bilgisi"
              }
            

RESPONSE:

Kopyalandı!

                {
                  "txnNo": "8C4D1235-0725-4466-A543-6F4",
                  "refundTxnNo": "7B3D1235-0725-5566-A543-8F4",
                  "oid": "SP0123456789101112131415",
                  "resultCode": "0000",
                  "resultDetail": "",
                  "amount": 100.56,
                  "extInfo": "Test Bilgisi",
                  "hash": "{Sha512 Hash İçeriği}"
                  }
                  
                
              

Response Verileri:

Alan Adı Tipi Açıklama
TxnNo string İade edilen işlem için daha önce TRPOS tarafından oluşturulan işlem numarası
RefundTxnNo string İade edilen işlem için TRPOS tarafından oluşturulan iade işlem numarası
Oid string Sipariş Numarası
ResultCode string İade İşleminin Sonucu
ResultDetail string İade İşlemi Sonucuna Ait Açıklama
Amount double ade İşlem Tutarı
Currency string İade İşlem Para Birimi
CurrencyAmount string İşlem Tutarı döviz karşılığı (Eğer işlem farklı bir para birimi ile yapıldı ise)
ExtInfo string İstek sonucunda geri gönderilecek bilgi alanı
Hash string İşlem doğruluğunun kontrol edilebilmesi için TRPOS tarafından gönderilen Hash değeri

İade İşlemi Örnek .NET Sayfası:

Kopyalandı!

                    using Microsoft.AspNetCore.Mvc;
                    using Newtonsoft.Json;
                    using System.Security.Cryptography;
                    using System.Text;
                    namespace WebApplication1.Controllers
                    {
                    public class RefundController : Controller
                    {
                    public class RefundRequestModel
                    {
                    public string? PublicKey { get; set; }
                    public string? ApiKey { get; set; }
                    public string? Rnd { get; set; }
                    public string? Hash { get; set; }
                    public string? TxnNo { get; set; }
                    public string? Oid { get; set; }
                    public double? Amount { get; set; }
                    public string? UserIP { get; set; }
                    public string? ExtInfo { get; set; }
                    }
                    public class RefundResponseModel
                    {
                    public string? TxnNo { get; set; }
                    public string? RefundTxnNo { get; set; }
                    RESPONSE:
                    Response Verileri:
                    Alan Adı Tipi Açıklama
                    TxnNo string İade edilen işlem için daha önce TRPOS tarafından oluşturulan işlem numarası
                    RefundTxnNo string İade edilen işlem için TRPOS tarafından oluşturulan iade işlem numarası
                    Oid string Sipariş Numarası
                    ResultCode string İade İşleminin Sonucu
                    ResultDetail string İade İşlemi Sonucuna Ait Açıklama
                    Amount double İade İşlem Tutarı
                    Currency string İade İşlem Para Birimi
                    ExtInfo string İstek sonucunda geri gönderilecek bilgi alanı
                    Hash string İşlem doğruluğunun kontrol edilebilmesi için TRPOS tarafından gönderilen Hash değeri
                    İade İşlemi Örnek .NET Sayfası:
                    public string? Oid { get; set; }
                    public string? ResultCode { get; set; }
                    public string? ResultDetail { get; set; }
                    public double? Amount { get; set; }
                    public string? ExtInfo { get; set; }
                    public string? Hash { get; set; }
                    }
                    public async Task Index()
                    {
                    // TRPOS Tarafından verilen API bilgileri
                    string publicKey =
                    "39308144DD24F47DD3C7ECFB8E54CC41BE4CF43BD1E8167D35398D769A3277B8";
                    string apiKey = "3F76D2BA-074F-4A83-989F-7AF1FBFC93E1";
                    string secretKey =
                    "D7452D50390715218654C1D6CBF0E740B030618E098D9D04ED3176E0360C655F";
                    //Her işlemde benzersiz gönderilmesi gereken rnd değeri
                    string rnd = DateTime.Now.Ticks.ToString();
                    // TRPOS tarafından verilen işlem numarası
                    string txnNo = "";
                    // Sizin tarafınızdan oluşturulan sipariş numarası
                    string oid = "";
                    // Parçalı iade yapılacaksa siparişin toplam tutarından küçük bir fiyat
                    gönderilmelidir.
                    // Eğer 0 gönderilirse veya hiç gönderilmez ise (null) tüm işlem tutarı iade
                    edilecektir.
                    double amount = 100.56;
                    // Müşteriye ait IP numarası
                    string userIP = "127.0.0.1";
                    // Response da geri dönecek ekstra data bilgileri.
                    string extInfo = "";
                    // HASH oluşturma fonksiyonu
                    string birlestir = string.Concat(apiKey, publicKey, rnd, oid, txnNo,
                    amount.ToString());
                    HMACSHA512 hmac = new HMACSHA512(Encoding.UTF8.GetBytes(secretKey));
                    byte[] b = hmac.ComputeHash(Encoding.UTF8.GetBytes(birlestir));
                    string hash = Convert.ToBase64String(b);
                    RefundRequestModel requestModel = new RefundRequestModel();
                    requestModel.PublicKey = publicKey;
                    requestModel.ApiKey = apiKey;
                    requestModel.Rnd = rnd;
                    requestModel.Hash = hash;
                    requestModel.TxnNo = txnNo;
                    requestModel.Oid = oid;
                    requestModel.Amount = amount;
                    requestModel.UserIP = userIP;
                    requestModel.ExtInfo = extInfo;
                    // TRPOS işlem iade POST URL
                    string refundURL = "https://vpostest.trpos.com/Payment/RefundRequest";
                    using (HttpClient client = new())
                    {
                    HttpResponseMessage response = await
                    client.PostAsJsonAsync(refundURL, requestModel);
                    İade İşlemi ResultCode Listesi ve Açıklamaları
                    ResultCode ResultDetails
                    0000 İşlem başarılı
                    0001 PublicKey gönderimi zorunludur.
                    0002 ApiKey gönderimi zorunludur.
                    0003 Rnd gönderimi zorunludur.
                    0015 Oid gönderimi zorunludur.
                    0016 Amount gönderimi zorunludur.
                    0022 UserIP gönderimi zorunludur.
                    0027 Site bilgileri alınamadı.
                    if (response.IsSuccessStatusCode)
                    {
                    var refundResponse =
                    JsonConvert.DeserializeObject(await
                    response.Content.ReadAsStringAsync()); // Refund Requestten alınan JSON cevap
                    if (refundResponse != null)
                    {
                    if (refundResponse.ResultCode == "0000" && hash ==
                    refundResponse.Hash)
                    {
                    // İptal işlemi başarılı
                    Console.WriteLine("İptal işlemi başarıyla tamamlandı.");
                    Console.WriteLine("TxnNo: " + refundResponse.TxnNo);
                    Console.WriteLine("RefundTxnNo: " + refundResponse.RefundTxnNo);
                    Console.WriteLine("Oid: " + refundResponse.Oid);
                    Console.WriteLine("Amount: " + refundResponse.Amount.ToString());
                    Console.WriteLine("ExtInfo: " + refundResponse.ExtInfo);
                    Console.WriteLine("Hash: " + refundResponse.Hash);
                    }
                    else
                    {
                    // İptal işlemi hatalı
                    Console.WriteLine("Hata Kodu: " + refundResponse.ResultCode);
                    Console.WriteLine("Hata Mesajı: " + refundResponse.ResultDetail);
                    }
                    }
                    else
                    {
                    Console.WriteLine("Hata: Cevap alınamadı.");
                    }
                    }
                    else
                    {
                    Console.WriteLine("Hata: " + response.StatusCode);
                    }
                    }
                    return View();
                    }
                    }
                    }
                  

İade İşlemi ResultCode Listesi ve Açıklamaları

ResultCode ResultDetails
0000 İşlem başarılı
0001 PublicKey gönderimi zorunludur.
0002 ApiKey gönderimi zorunludur.
0003 Rnd gönderimi zorunludur.
0015 Oid gönderimi zorunludur.
0016 Amount gönderimi zorunludur.
0022 UserIP gönderimi zorunludur.
0027 Site bilgileri alınamadı.
0028 Site bilgileri getirilemedi.
0029 Hash değerleri eşleşmiyor.
0032 TxnNo gönderimi zorunludur.
9999 Dinamik hata. (Sistem tarafından gönderilir.)