İptal
İptal işlemi için aşağıdaki parametrelerin gönderilmesi gerekmektedir.
NOT: İptal işlemi ancak gün sonu kapatılmadan önce gerçekleştirilebilir.
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 |
UserIP | string | Müşteri IP adresi | 127.0.0.1 |
Oid | string | Sipariş Numarası | SP0123456789101112131415 |
ExtInfo | string | İstek sonucunda geri gönderilecek bilgi alanı | Opsiyonel |
ExpMonth | string | Z | Kart Son Kullanım Tarihi – AY |
İptal İşlem ÖrnekRequest Yapısı
REQUEST:
Kopyalandı!
POST = https://vpostest.trpos.com/Payment/CancelRequest
{
"publicKey": "39308144DD24F47DD3C7ECFB8E54CC41BE4CF43BD1E8167D35398D769A3277B8",
"apiKey": "3F76D2BA-074F-4A83-989F-7AF1FBFC93E1",
"rnd": "24072024182023",
"hash": "{Sha512 Hash İçeriği}",
"txnNo": "8C4D1235-0725-4466-A543-6F4",
"userIP": "127.0.0.1",
"oid": "SP0123456789101112131415",
"extInfo": "Test Bilgisi"
}
RESPONSE:
Kopyalandı!
{
"txnNo": "8C4D1235-0725-4466-A543-6F4",
"cancelTxnNo": "7B3D1235-0725-5566-A543-8F4",
"oid": "SP0123456789101112131415",
"resultCode": "0000",
"resultDetail": "",
"extInfo": "Test Bilgisi",
"hash": "{Sha512 Hash İçeriği}"
}
Response Verileri:
Alan Adı | Tipi | Açıklama |
---|---|---|
TxnNo | string | İptal edilen işlem için daha önce TRPOS tarafından oluşturulan işlem numarası |
CancelTxnNo | string | İptal edilen işlem için TRPOS tarafından oluşturulan iptal işlem numarası |
Oid | string | Sipariş Numarası |
ResultCode | string | İptal İşleminin Sonucu |
ResultDetail | string | İptal İşlemi Sonucuna Ait Açıklama |
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 |
İptal İşlemi Örnek .NET Sayfası:
Kopyalandı!
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
using System.Security.Cryptography;
using System.Text;
İptal İşlemi Örnek JSON Yapısı:
REQUEST:
RESPONSE:
Response Verileri:
Alan Adı Tipi Açıklama
TxnNo string İptal edilen işlem için daha önce TRPOS tarafından oluşturulan işlem numarası
CancelTxnNo string İptal edilen işlem için TRPOS tarafından oluşturulan iptal işlem numarası
Oid string Sipariş Numarası
ResultCode string İptal İşleminin Sonucu
ResultDetail string İptal İşlemi Sonucuna Ait Açıklama
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
İptal İşlemi Örnek .NET Sayfası:
namespace WebApplication1.Controllers
{
public class CancelController : Controller
{
public class CancelRequestModel
{
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? UserIP { get; set; }
public string? Oid { get; set; }
public string? ExtInfo { get; set; }
}
public class CancelResponseModel
{
public string? TxnNo { get; set; }
public string? CancelTxnNo { get; set; }
public string? Oid { get; set; }
public string? ResultCode { get; set; }
public string? ResultDetail { 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 = "";
// 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);
HMACSHA512 hmac = new HMACSHA512(Encoding.UTF8.GetBytes(secretKey));
byte[] b = hmac.ComputeHash(Encoding.UTF8.GetBytes(birlestir));
string hash = Convert.ToBase64String(b);
CancelRequestModel requestModel = new CancelRequestModel();
requestModel.PublicKey = publicKey;
requestModel.ApiKey = apiKey;
requestModel.Rnd = rnd;
requestModel.Hash = hash;
requestModel.TxnNo = txnNo;
requestModel.UserIP = userIP;
requestModel.Oid = oid;
requestModel.ExtInfo = extInfo;
// TRPOS işlem iptal POST URL
string cancelURL = "https://vpostest.trpos.com/Payment/CancelRequest";
using (HttpClient client = new())
{
HttpResponseMessage response = await
client.PostAsJsonAsync(cancelURL, requestModel);
if (response.IsSuccessStatusCode)
{
var cancelResponse =
JsonConvert.DeserializeObject(await
response.Content.ReadAsStringAsync()); // Cancel Requestten alınan JSON cevap
if (cancelResponse != null)
{
cancelResponse.Hash)
if (cancelResponse.ResultCode == "0000" && hash ==
{
// İptal işlemi başarılı
Console.WriteLine("İptal işlemi başarıyla tamamlandı.");
Console.WriteLine("TxnNo: " + cancelResponse.TxnNo);
Console.WriteLine("CancelTxnNo : " + cancelResponse.CancelTxnNo);
Console.WriteLine("Oid: " + cancelResponse.Oid);
Console.WriteLine("ExtInfo: " + cancelResponse.ExtInfo);
Console.WriteLine("Hash: " + cancelResponse.Hash);
}
else
{
}
}
else
{
// İptal işlemi hatalı
Console.WriteLine("Hata Kodu: " + cancelResponse.ResultCode);
Console.WriteLine("Hata Mesajı: " + cancelResponse.ResultDetail);
}
}
else
{
Console.WriteLine("Hata: Cevap alınamadı.");
Console.WriteLine("Hata: " + response.StatusCode);
}
}
return View();
}
}
}
İptal İş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. |
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.) |