• Sanal Pos

Genel Açıklama

Buraya Tami Sanal Pos Hakkında Genel Açıklama Eklenecektir.

Hash Hesaplama

Hash hesaplanırken merchantNumber + terminalNumber + secretKey bilgileri metin ifadesi olarak uç uca eklenir. Birleştirilmiş bu ifade daha sonrasında SHA-256 methodu ile şifrelenir ve daha sonrasında şifrelenen veri base64 metin ifadesine dönüştürülür.

Test bilgileri yukarıdaki ortam bilgileri kısmında paylaşılmıştır.

Hash hesabı yapılan veri;

İstekler gönderilirken header bilgisine PG-Auth-Token değeri aşağıdaki formatta eklenmiş olması gerekmektedir.

PG-Auth-Token : "merchantNumber:terminalNumber:hash"

“Hash hesaplamasında kullanılacak generator aşağıda verilmiştir.”:

public class SHA256Example {\n public static String sha256(Long merchantNumber, Long terminalNumber, String secretKey) {\n String text = merchantNumber.toString() + terminalNumber.toString() + secretKey;\n try {\n MessageDigest digest = MessageDigest.getInstance(\"SHA-256\");\n byte[] hash = digest.digest(text.getBytes(StandardCharsets.UTF_8));\n String sha256Hex = DatatypeConverter.printBase64Binary(hash);\n return sha256Hex;\n } catch (NoSuchAlgorithmException e) {\n e.printStackTrace();\n return null;\n }\n }\n

TAMİ Test Portalı Bilgileri

Tami test portalına https://pagoportal-t.garantibbva.com.tr adresinden erişebilirsiniz.Bu adresten üye olarak başvuru yapabilir ve portal ekranlarını görüntüleyebilirsiniz.

Üretim ortamı bilgileriniz için eticaret destek birimine başvuruda bulunabilirsiniz.

Test Ortamı API Kullanıcısı Bilgileri

Alan Veri
Merchant ID 770000678
Terminal ID 840000678
Secret Key a3e9a5ab-f3e1-43d1-9a12-f702ada09411

Önemli Bilgilendirme: Secret Key bilgisi her terminal için farklılık göstermektedir.

Sorgulama İşlemi

Tami üzerinden gerçekleşen işlemlerin son durumunu öğrenmek için kullanılacak servistir. İşlemin sipariş numarası ve işlem detay görüntüleme true gönderilerek sorgulanır. İşlemin son durumu ve bu siparişle ilgili yapılan tüm işlemlere ait bilgileri gösteren servistir.

Sorgulama İşlemi API Bilgileri

Test Ortamı Bağlantısı:\nhttps://pagoapi-t.garantibbva.com.tr/payment/query?orderId={orderId}&isTransactionDetail=true\n\nÜretim Ortamı Bağlantısı:\nhttps://pagoapi.garantibbva.com.tr/payment/query?orderId={orderId}&isTransactionDetail=true

İstek Parametreleri ve Açıklamaları

Alan Format Uzunluk (O)psiyonel / (Z)orunlu Açıklama
Params/orderId String (2-36) M iptal edilmek istenen satış işlemine ait sipariş numarası bilgisidir.
Params/isTransactionDetail String   O Eğer true gönderilirse order'ın başından geçen tüm işlemler paylaşılacaktır. Eğer false ya da boş gönderilirse order'ın sadece son statusu order tablosundan verilecektir.

İşlem HTTPGET isteği ile yapılmalıdır. İstek yapıldıktan sonraki akış aşağıda belirtilmiştir.

API İstek Cevabı Örneği

{\n \"success\": true,\n \"systemTime\": \"2023-09-15T14:48:45.755\",\n \"correlationId\": \"correlation3962\",\n \"amount\": 50,\n \"orderDate\": \"2023-08-17T16:47:54.012\",\n \"currency\": \"TRY\",\n \"installmentCount\": 7,\n \"orderStatus\": \"AUTH\",\n \"card\": {\n \"binNumber\": \"41556501\",\n \"cardBrand\": \"DİĞER BANKA\",\n \"cardOrganization\": \"VISA\",\n \"cardType\": \"CREDIT\"\n },\n \"transactions\": [\n {\n \"amount\": 50,\n \"transactionType\": \"AUTH\",\n \"fraudStatus\": false,\n \"transactionStatus\": \"SUCCESS\",\n \"transactionDate\": \"2023-08-17T16:47:54.833\"\n }\n ]\n}

İstek Cevabı Parametreleri ve Açıklamaları

Parametre Adı Format Açıklama
success String Query işlem sonucudur. true olması durumunda işleme ait diğer bilgiler de dönecektir.
errorCode String success=false olması durumunda alınan hatanın kodudur.
errorMessage String success=false olması durumunda alınan hatanın açıklamasıdır.
systemTime dateTime Query işlem zamanıdır
correlationId String Query işleminin correlation idsidir
amount Number İşlemin işlem yapılabilir tutar bilgisidir. Örneğin 100 tllik bir işlem 20 tllik bir iade transactionı geçirdiyse tutar 80 tl görünecektir.
orderDate dateTime İşlemin oluşturulma tarihidir.
currency String İşlemin döviz kodudur
installmentCount Number İşlemin taksit sayısıdır
orderStatus String İşlemin son statüsüdür
card Object İşlem yapan karta ait bilgiler içermektedir.
card/binNumber String İşlem yapılan kartın ilk 8 hanesi
card/cardBrand String Kart ödül grubu bilgisidir. BONUS, WORLD, AXESS vb.
card/cardOrganization String Kart organizasyon bilgisidir. AMEX, TROY, MASTERCARD, VISA vb.
card/cardType String Kart tipidir. CREDIT, DEBIT 
transactions List isTransactionDetail='true' gönderilirse ilgili orderın başından geçen tüm transaction verisi dönülecektir.
transactions/amount Number ilgili kaydın tutarı
transactions/transactionType String ilgili kaydın işlem türü
transactions/transactionStatus String ilgili kaydın başarı durumu
transactions/transactionDate dateTime ilgili kaydın tarihi
transactions/reason String İşlem iade/iptal edilirken bir reason alanı gönderilirse sorgulamada da bu alan dönülecektir.

Kod Örnekleri

Aşağıda, çeşitli yazılım dilleri kullanılarak yazılmış özel kod örneklerinin linkleri verilmiştir. Tercih ettiğiniz programlama diline ait link üzerinden, önceden belirlenmiş değerlerle yazılmış olan kodları detaylı bir şekilde inceleyebilirsiniz.

Bu örnekler, ilgili işlem tipini içeren kodları içermektedir ve farklı dillerde yazıldığı için çeşitli yaklaşımları ve pratikleri de gözlemleyebilirsiniz. Bu sayede tercih ettiğiniz programlama diline dair daha iyi anlaşılır ve özgün örneklerle çalışma imkanı bulabilirsiniz.

C# Kod Örnekleri için tıklayınız.

VB.Net Kod Örnekleri için tıklayınız.

Java Kod Örnekleri için tıklayınız.

PHP Kod Örnekleri için tıklayınız.

Unutmayın ki bu örnekler ön tanımlı değerlerle yazılmıştır ve gerçek projelerde kullanımı için gerekli uyarlama ve güvenlik önlemleri almanız gerekebilir.

Test Kartları

Test kartları listesine bu sayfadan ulaşabilirsiniz.

Tüm soru ve destek taleplerinde yanındayız.

Soru Sor Soru Sor