İ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.) |