Ödeme sorgulamak için kullanılan servistir. Bu serviste istek yapabilmesi için token bilgisinin Header'da gönderilmesi gerekmektedir. Bu linkten Üye İşyeri Doğrulama token bilgilerine ulaşabilirsiniz
Parametre ismi | Tip | Uzunluk | Zorunluluk | Örnek Değer | Açıklama |
---|---|---|---|---|---|
memberId | long | 16 | Evet | 1 | Her zaman 1 |
merchantId | long | 16 | Evet | 2 | Sizin için oluşturulan Üye işyeri ID'si |
rnd | string | 64 | Evet | abcd | Hash hesaplamasında kullanılan random numaradır. |
hash | string | 2048 | Evet | abcdefgh | İşlemin güvenliği için oluşturulan hash bilgisidir. |
orderNo | string | 64 | Evet | 123456 | İşlem sipariş numarası |
totalAmount | string | 16 | Evet | 9950 | İşlem tutarı 9950 99 TL 50 kuruş demektir, virgül veya noktalama içermez küsürat için 2 hanedir. 1 TL için 100 gönderilmelidir. |
customerId | string | 100 | Hayır | test@test.com | Üye işyeri tarafında kayıtlı olan kullanıcının tekil bilgisidir. İster bir id ister bir email olabilir |
txnType | String | 20 | Hayır | Auth | Provizyon isteğinde göndermiş olduğunuz işlem tipini giriniz. Gönderilebilecek parametreler aşağıdadır: Auth --> Satış, PreAuth --> Ön Provizyon, PostAuth --> Provizyon kapama, Inquiry --> Ödeme sorgulama, QrAuth --> QR kod ile ödeme, PointAuth --> Puanlı Ödeme |
Parametre ismi | Tip | Uzunluk | Açıklama |
---|---|---|---|
orderId | string | 64 | Sipariş ID bilgisi |
cardNo | string | 16 | Kart numarası |
amount | decimal | 16 | İşlem tutar bilgisi |
rnd | string | 16 | İşlem rnd bilgisi |
hostReferenceNumber | string | 16 | İşlem referans numarası bilgisi |
installmentCount | string | 16 | İşlem taksit bilgisi |
totalAmount | string | 16 | İşlem toplam tutar bilgisi |
responseHash | string | 16 | Cevap hash bilgisi |
vposId | string | 16 | İşlem sanal pos ID bilgisi |
vposName | string | 64 | İşlem sanal pos banka bilgisi |
authCode | string | 16 | Otorizasyon kodu |
tranDate | date | 16 | İşlem tarihi bilgisi |
txnType | String | 20 | İşlem Tipi. Gönderilebilecek parametreler aşağıdadır: Auth --> Satış, PreAuth --> Ön Provizyon, PostAuth --> Provizyon kapama, Void --> İptal, Refund --> İade, Inquiry --> Ödeme sorgulama, QrAuth --> QR kod ile ödeme, PointAuth --> Puanlı Ödeme |
txnStatus | string | 16 | İşlem durumu. 'Y' --> 'Başarılı', 'E' --> 'Başarısız', 'P' --> 'Beklemede', 'V' --> 'İptal Edildi', 'R' --> 'İade Edildi', 'A' --> 'Satışa Çevrildi', 'K' --> 'Kısmi İade Edildi' |
currencyCode | string | 3 | İşlem para birimi |
responseCode | string | 16 | İşlem cevap kodu |
responseMessage | string | 64 | İşlem cevap mesajı |
extraData | string | 64 | İşlem detay verisi |
transId | string | 16 | İşlem ID kodu |
customerId | string | 64 | İşleme ait müşteri ID'si |
merchantId | string | 64 | İşleme ait üye işyeri ID'si |
description | string | 2000 | İşleme açıklaması |
maturityPeriod | string | 4 | Vade Dönemi |
paymentFrequency | string | 4 | Vade Ödeme Sıklığı |
cardHolderName | string | 100 | Kart Sahibi Adı Soyadı |
HTTP Method: POST
Content-Type: application/json
TEST URL: https://ppgpayment-test.birlesikodeme.com:20000/api/ppg/Payment/PaymentInquiry
PROD URL: https://{baseUrl}/api/ppg/Payment/PaymentInquiry
*Prod için baseUrl adresi, size entegrasyon mailinde "paymentBaseUrl" alanında iletilecektir.
{
"memberId": 0,
"merchantId": 0,
"customerId": "string",
"hash": "string",
"txnType": "string",
"rnd": "string",
"orderNo": "string",
"totalAmount": "string"
}
{
"orderId": "string",
"cardNumber": "string",
"amount": "string",
"rnd": "string",
"hostReferenceNumber": "string",
"installmentCount": "string",
"totalAmount": "string",
"responseHash": "string",
"vposId": "string",
"vposName": "string",
"authCode": "string",
"tranDate": "string",
"txnType": "string",
"txnStatus": "string",
"currencyCode": "string",
"responseCode": "string",
"responseMessage": "string",
"extraData": "string",
"transId": 0,
"customerId": "string",
"merchantId": 0
}
public static string CreateHash(VposRequest request)
{
var hashPassword =""; // Bu bilgi size özel olup kayıtlı kullanıcınıza mail olarak gönderilmiştir.
var hashString = $"{hashPassword}{request.Rnd}{request.OrderNo}{request.TotalAmount}";
System.Security.Cryptography.SHA512 s512 = System.Security.Cryptography.SHA512.Create();
System.Text.UnicodeEncoding ByteConverter = new System.Text.UnicodeEncoding();
byte[] bytes = s512.ComputeHash(ByteConverter.GetBytes(hashString));
var hash = System.BitConverter.ToString(bytes).Replace("-","");
return hash;
}
var crypto = require('crypto');
var param = "{hashPassword}+{request.Rnd}+{request.OrderNo}+{request.TotalAmount}";
var hash = crypto.createHash('sha512');
data = hash.update(param, 'utf-16le');
hash = data.digest('hex');
console.log("hash : " + hash);
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public static String getSecureData(String dataToHash ){
String generatedHash = null;
try {
MessageDigest md = MessageDigest.getInstance("SHA-512");
byte[] bytes = md.digest(dataToHash.getBytes(StandardCharsets.UTF_16LE));
StringBuilder sb = new StringBuilder();
for(int i=0; i< bytes.length ;i++){
sb.append(Integer.toString((bytes & 0xff) + 0x100,16).substring(1));
}
generatedHash = sb.toString().toUpperCase();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return generatedHash
}
$hash = $hashkey.$rnd.$OrderNo.$totalAmount;
$hash = mb_convert_encoding($hash, "UTF-16LE");
$hashString = hash("sha512", $hash);