Başarılı bir işlemin iptal veya iadesini yapmak 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 | |
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 | |
userCode | String | 40 | Evet | test | Kullanıcı kodu. Test olarak girilebilir. | |
txnType | String | 20 | Evet | Auth | İşlem Tipi. Gönderilebilecek parametreler aşağıdadır: Void --> İptal, Refund --> İade | |
okUrl | String | 2048 | Hayır | https:/.... | İşlem başarılı olduğunda üye işyerine dönülecek url bilgisi. | |
failUrl | String | 2048 | Hayır | https:/.... | İşlem başarısız olduğunda üye işyerine dönülecek url bilgisi. | |
orderId | String | 36 | Evet | order1:/... | Üye işyeri tarafından üretilen işleme özgü bir numaradır. | |
totalAmount | String | 19 | 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. | |
rnd | String | 40 | 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. | |
description | String | 100 | Hayır | - | İşlem açıklama bilgisi. | |
requestIp | String | 15 | Hayır | 198.00.00.00 | İşlem istek IP bilgisi | |
extraData | String | 500 | Hayır | - | Ek veri | |
orderProductList | List | Hayır(*) | (*)Pazaryeri modeli için bu alanın doldurulması zorunludur. | |||
merchantId | long | 64 | Evet | 0001 | Satıcı ID bilgisi. | |
productId | String | 64 | Evet | 000032 | Tekil (unique) ürün ID bilgisi. İstek mesajında sepette bulunan her ürün için ayrı ayrı gönderilmesi gerekmektedir. | |
amount | String | 64 | Evet | 9950 | Sipariş 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. | |
productName | String | 64 | Evet | Bilgisayar | Sepetteki ürün ismi | |
commissionRate | String | 64 | Evet | 1050 | Alt üye işyerine ödenecek tutar. 1050, 10 TL 50 kuruş demektir, virgül veya noktalama içermez küsürat için 2 hanedir. 1 TL için 100 gönderilmelidir. |
Parametre ismi | Tip | Uzunluk | Açıklama |
---|---|---|---|
url | string | 2048 | url |
responseCode | string | 4 | Cevap kodu. 00 --> Başarılı , Diğerleri başarısız |
responseMessage | string | 2048 | Cevap açıklaması |
orderId | string | 16 | Sipariş ID değeri |
txnType | string | 16 | İşlem Tipi. 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 statüsü |
vposId | string | 16 | Banka Sanal POS ID bilgisi |
vposName | string | 64 | Banka Sanal POS adı |
HTTP Method: POST
Content-Type: application/json
URL: https://ppgpayment-test.birlesikodeme.com:20000/api/ppg/Payment/Payment
*Test ortam için bu adresi kullanabilirsiniz. Prod ortam için size URL bilgisi entegrasyon sürecinde iletilecektir.
{
"memberId": 0,
"merchantId": 0,
"customerId": "string",
"userCode": "string",
"txnType": "string",
"okUrl": "string",
"failUrl": "string",
"orderId": "string",
"totalAmount": "string",
"rnd": "string",
"hash": "string",
"description": "string",
"requestIp": "string",
"extraData": "string",
"orderProductList": [
{
"merchantId": 0,
"productId": "string",
"amount": "string",
"productName": "string",
"commissionRate": "string"
}
]
}
{
"url": "string",
"responseCode": "string",
"responseMessage": "string",
"orderId": "string",
"txnType": "string",
"txnStatus": "string",
"vposId": 0,
"vposName": "string"
}
String CustomerId="123456789"; //müşteri tarafından gönderilecek bilgi
String UserCode="test@test.com"; //API kullanıcısı mail adresi
String HashPassword="7FAD0B3E8E8691C36B26D5BC9D6227A5";
String TxnType="Auth";
String InstallmentCount="0";
String Currency="949";
String OkUrl="http://localhost:61111/ppg/PaycoreResult.aspx";
String FailUrl="http://localhost:61111/ppg/PaycoreResult.aspx";
String OrderId="";
String TotalAmount="125";
String Rnd = DateTime.Now.Ticks.ToString();
String hashString = HashPassword + UserCode +Rnd+ TxnType+ TotalAmount +
CustomerId + OrderId + OkUrl + FailUrl ;
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));
String Hash = System.BitConverter.ToString(bytes).Replace("-", "");
public static string CreateHash(VposRequest request)
{
var hashString = $"{hashPassword}{request.UserCode}{request.Rnd}{request.TxnType}{request.TotalAmount}{request.CustomerId}{request.OrderId}{request.OkUrl}{request.FailUrl}";
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;
}
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[i] & 0xff) + 0x100,
16).substring(1));
}
generatedHash = sb.toString().toUpperCase();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return generatedHash;
}
$hash = $hashkey . $userCode . $rnd . $txnType . $totalAmount . $customerId . $order_id . $okUrl . $failUrl;
$hash= mb_convert_encoding($hash, "UTF-16LE");
$hashString = hash("sha512", $hash);