Merchant 3D Model Complete Payment API
Açıklama: 3D ödeme isteğinde "payment_completed_by" : "merchant" gönderilip kart doğrulaması yapıldıktan sonra ilgili tutarın karttan çekilmesi için completePayment API çağırılmalıdır. Kart doğrulandıktan sonra 15 dakika içerisinde completePayment API çağrılmaz ise otomatik olarak işlem başarısız olur.
Kart doğrulaması paySmart3D yönlendirmesinden MdStatus değeriyle kontrol edilir,
MdStatus = 1 ( Kart Doğrulandı )
MdStatus = 0 ( Kart Doğrulanmadı )
URL: /payment/complete
Test Sunucusu: https://test.vepara.com.tr/ccpayment/payment/complete
Canlı Sunucusu: https://app.vepara.com.tr/ccpayment/payment/complete
Method: POST
REQUEST BODY SCHEMA
json
{
"type": "object",
"properties": {
"merchant_key": {
"type": "string",
"description": "Vepara tarafından sağlanan üye işyerinin benzersiz anahtarıdır."
},
"invoice_id": {
"type": "string",
"description": "Ödeme yapılacak sepetin sipariş numarası, benzersiz göndermeye dikkat edin"
},
"order_id": {
"type": "string",
"description": "Ödeme yapıldıktan sonra gelen sipariş numarası"
},
"status": {
"type": "string",
"description": "Ödeme durumu"
},
"hash_key": {
"type": "string",
"description": "işlemin bankaya ulaşmadan, kullanıcının ödemeyle ilgili değişiklikler yapamamasını ve ödemenin güvenli olarak tamamlanmasını sağlamaktadır. Aşağıda verilen hash anahtarını yazmak için kullanılan algoritma için tıklayınız veya sağ taraftaki PHP sekmesinden örneğini inceleyiniz."
}
},
"required": ["merchant_key"],
"required": ["invoice_id"],
"required": ["order_id"],
"required": ["status"],
"required": ["hash_key"],
}
RESPONSE BODY
200 Başarılı Sonuç
json
{
"status_code": 100,
"status_description": "Payment Successfully Completed",
"data": {
"order_no": 166254527653758,
"order_id": 166254527653758,
"invoice_id": "9a197ed9-cfaf-4456-b0fc-da74a95f461c",
"status_code": 100,
"status_description": "Payment Successfully Completed",
"credit_card_no": "557023****7463",
"transaction_type": "Auth",
"payment_status": 1,
"payment_method": 1,
"error_code": 100,
"error": "Payment Successfully Completed",
"auth_code": 287679,
"status": "Completed",
"hash_key": "c98d63c4ba1952c9:19e8:94Z0B48k__V5pCWIXlov3xbDKmM8beaNE3Lk4v3Yu5A1wfdPulFnDsJgFKJX+2gOqA2AfjcRExhYIuWCF3A4LireIUkv26kozmIHc0gjbwIY="
}
}
400 Başarısız Sonuç
json
{
"status_code": 31,
"status_description": "Pending sale not found against order_id 166246147223278",
"data": {
"invoice_id": "f6a2a107-088f-4169-875f-8a6f30cf4ff2",
"order_id": 166246147223278
}
}
Hash-Key Oluşturma
Request Body Scheme
json
{
"type": "object",
"properties": {
"merchant_key" : {
"type": "string",
"description": "Vepara tarafından sağlanan üye işyerinin benzersiz anahtarıdır."
},
"invoice_id": {
"type": "string",
"description": "Ödeme yapılacak sepetin fatura numarası, benzersiz göndermeye dikkat edin"
},
"order_id": {
"type": "string",
"description": "Vepara tarafından ödeme sonrası sağlanan sipariş numarası"
},
"status": {
"type": "string",
"description": "status “complete” veya “cancel” olabilir."
},
"app_secret": {
"type": "string",
"description": "app_secret üye işyerine verilen benzersiz ve gizli bir anahtardır."
},
},
"required": ["merchant_key"],
"required": ["invoice_id"],
"required": ["order_id"],
"required": ["status"],
"required": ["app_secret"],
}
RESPONSE BODY
200 Başarılı Sonuç
json
{
"Hash Key": "fd11c23d8e654717:88c8:hgHyeat3CAXK+1k6MC09m9rlfQ31Z6Bnd1ElcGxVAq9oYAmCWfTl+73TnuQ0SBjleoOujI2NUv8SRb8jprForFMSUvpPPvn+dnPXMqNi2hA="
}
Hash Key Oluşturma Kod Örnekleri
PHP Örneği
php
function generateConfrimPaymentHashKey($merchant_key, $invoice_id,$order_id, $status, $app_secret)
{
$data = $merchant_key . '|' . $invoice_id . '|' . $order_id . '|' .$status;
$iv = substr(sha1(mt_rand()), 0, 16);
$password = sha1($app_secret);
$salt = substr(sha1(mt_rand()), 0, 4);
$saltWithPassword = hash('sha256', $password . $salt);
$encrypted = openssl_encrypt(
"$data", 'aes-256-cbc', "$saltWithPassword", null, $iv
);
$msg_encrypted_bundle = "$iv:$salt:$encrypted";
$msg_encrypted_bundle = str_replace('/', '__', $msg_encrypted_bundle);
return $msg_encrypted_bundle;
}
Ruby Örneği
ruby
require 'openssl'
require 'digest/sha1'
require 'digest/sha256'
def generate_confirm_payment_hash_key(merchant_key, invoice_id, order_id, status, app_secret_getter)
# appSecret'i güvenli bir şekilde al
app_secret = app_secret_getter.call
# Verileri birleştir
data = "#{merchant_key}|#{invoice_id}|#{order_id}|#{status}"
# Rastgele IV ve salt oluştur (daha güvenli rastgelelik için OpenSSL::Random kullan)
iv = OpenSSL::Random.random_bytes(16)
salt = OpenSSL::Random.random_bytes(4)
# appSecret'i salt ile hashle
salt_with_password = Digest::SHA256.hexdigest(app_secret + salt.unpack('H*').first)
# AES-256 CBC ile veriyi şifrele
cipher = OpenSSL::Cipher.new('aes-256-cbc')
cipher.encrypt
cipher.key = salt_with_password
cipher.iv = iv
encrypted_data = cipher.update(data) + cipher.final
# IV, salt ve şifrelenmiş veriyi birleştir
msg_encrypted_bundle = "#{iv.unpack('H*').first}:#{salt.unpack('H*').first}:#{encrypted_data.unpack('H*').first}"
# '/' karakterini daha güvenli bir ayraçla değiştir
msg_encrypted_bundle.gsub!('/', '__')
msg_encrypted_bundle
end
# Örnek kullanım (app_secret_getter güvenli bir şekilde anahtar alır diye varsayarak)
def get_app_secret
# appSecret'i güvenli bir şekilde alma mantığınızı buraya yazın (örneğin, ortam değişkenlerinden)
ENV['APP_SECRET']
end
merchant_key = 'your_merchant_key'
invoice_id = '12345'
order_id = 'ABC123'
status = 'success'
encrypted_hash = generate_confirm_payment_hash_key(merchant_key, invoice_id, order_id, status, method(:get_app_secret))
puts encrypted_hash
Python Örneği
python
import os
from hashlib import sha256
from Crypto.Cipher import AES
from Crypto.Random import get_random_bytes
from Crypto.Util.Padding import pad, unpad
def generateConfrimPaymentHashKey(merchant_key, invoice_id, order_id, status, app_secret_getter):
app_secret = app_secret_getter()
data = f"{merchant_key}|{invoice_id}|{order_id}|{status}"
iv = get_random_bytes(16)
salt = get_random_bytes(16)
salt_with_password = sha256(app_secret.encode() + salt).hexdigest()
cipher = AES.new(salt_with_password.encode(), AES.MODE_CBC, iv)
ciphertext = cipher.encrypt(pad(data.encode('utf-8'), AES.block_size))
encrypted_data = ciphertext.hex()
msg_encrypted_bundle = f"{iv.hex()},{salt.hex()},{encrypted_data}"
return msg_encrypted_bundle.replace('/', '__')
# Example usage (assuming app_secret_getter fetches the secret key securely)
def get_app_secret():
# Implement logic to fetch appSecret securely (e.g., from environment variables)
return os.environ.get('APP_SECRET')
merchant_key = 'your_merchant_key'
invoice_id = '12345'
order_id = 'ABC123'
status = 'success'
encrypted_hash = generateConfrimPaymentHashKey(merchant_key, invoice_id, order_id, status, get_app_secret)
print(encrypted_hash)
Nodejs Örneği
javascript
const crypto = require('crypto');
function generateConfrimPaymentHashKey(merchantKey, invoiceId, orderId, status, appSecret) {
const data = `${merchantKey}|${invoiceId}|${orderId}|${status}`;
const iv = crypto.randomBytes(16).toString('hex');
const salt = crypto.randomBytes(16).toString('hex');
const saltWithPassword = crypto.createHash('sha256').update(appSecret + salt).digest('hex');
const cipher = crypto.createCipheriv('aes-256-cbc', saltWithPassword, Buffer.from(iv, 'hex'));
cipher.setAutoPadding(true);
const encrypted = cipher.update(data, 'utf8', 'hex') + cipher.final('hex');
const msgEncryptedBundle = `${iv}:${salt}:${encrypted}`;
return msgEncryptedBundle.replace('/', '__');
}
const merchantKey = 'your_merchant_key';
const invoiceId = '12345';
const orderId = 'ABC123';
const status = 'complete';
const appSecret = 'your_app_secret';
const encryptedHash = generateConfrimPaymentHashKey(merchantKey, invoiceId, orderId, status, getAppSecret);
console.log(encryptedHash);
C# Örneği
c#
using System;
using System.Security.Cryptography;
using System.Text;
using System.Linq;
public class HashGenerator
{
public string GenerateHashKey(string merchant_key, string invoice_id, string order_id, string status, string app_secret)
{
string data = merchant_key + "|" + invoice_id + "|" + order_id + "|" + status;
Random mt_rand = new Random();
string iv = Sha1Hash(mt_rand.Next().ToString()).Substring(0, 16);
string password = Sha1Hash(app_secret);
string salt = Sha1Hash(mt_rand.Next().ToString()).Substring(0, 4);
string saltWithPassword = "";
using (SHA256 sha256Hash = SHA256.Create())
{
saltWithPassword = GetHash(sha256Hash, password + salt);
}
string encrypted = Encryptor(data, saltWithPassword.Substring(0, 32), iv);
string msg_encrypted_bundle = iv + ":" + salt + ":" + encrypted;
msg_encrypted_bundle = msg_encrypted_bundle.Replace("/", "__");
return msg_encrypted_bundle;
}
private string GetHash(HashAlgorithm hashAlgorithm, string input)
{
byte[] data = hashAlgorithm.ComputeHash(Encoding.UTF8.GetBytes(input));
var sBuilder = new StringBuilder();
for (int i = 0; i < data.Length; i++)
{
sBuilder.Append(data[i].ToString("x2"));
}
return sBuilder.ToString();
}
private string Sha1Hash(string password)
{
return string.Join("", SHA1CryptoServiceProvider.Create().ComputeHash(Encoding.UTF8.GetBytes(password)).Select(x => x.ToString("x2")));
}
private string Encryptor(string TextToEncrypt, string strKey, string strIV)
{
byte[] PlainTextBytes = System.Text.Encoding.UTF8.GetBytes(TextToEncrypt);
AesCryptoServiceProvider aesProvider = new AesCryptoServiceProvider();
aesProvider.BlockSize = 128;
aesProvider.KeySize = 256;
aesProvider.Key = System.Text.Encoding.UTF8.GetBytes(strKey);
aesProvider.IV = System.Text.Encoding.UTF8.GetBytes(strIV);
aesProvider.Padding = PaddingMode.PKCS7;
aesProvider.Mode = CipherMode.CBC;
ICryptoTransform cryptoTransform = aesProvider.CreateEncryptor(aesProvider.Key, aesProvider.IV);
byte[] EncryptedBytes = cryptoTransform.TransformFinalBlock(PlainTextBytes, 0, PlainTextBytes.Length);
return Convert.ToBase64String(EncryptedBytes);
}
public static void Main(string[] args)
{
HashGenerator hashGenerator = new HashGenerator(); // HashGenerator sınıfından bir nesne oluşturun
string hashKey = hashGenerator.GenerateHashKey("$2y$10$w/ODdbTmfubcbUCUq/ia3OoJFMUmkM1UVNBiIQIuLfUlPmaLUT1he", "Vepara-INVOICE-2", "VP12313356446464646", "Complete","217071ea9f3f2e9b695d8f0039024e64");
Console.WriteLine("Hash Key:"+ hashKey);
}
}
Kod Örnekleri
PHP Örneği
php
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://test.vepara.com.tr/ccpayment/payment/complete',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"merchant_key": "$2y$10$HmRgYosneqcwHj.UH7upGuyCZqpQ1ITgSMj9Vvxn.t6f.Vdf2SQFO",
"invoice_id": "Cs2Ghy621dsa42f1D2",
"order_id": 166254527653758,
"status": "complete",
"hash_key": "36a50210c8b2f19e:11629:eHBA0moN6bZAOSfVC6g9uapUAt1/zxnxko9x4uP73/TsqrQM+cCYSekMi/VnqMgjx3GpZLpBu5GW1BDIOyxigKz3oqBFQwItyA31S5bhHe5Q3rWLe9WBStaiDnFbWYfWbBL8p7BKlbKZKDCtDHQ41B+4PEIPhdpNCeihKmE2fto="
}',
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json',
'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiIxOSIsImp0aSI6ImJlNjNlZmJhZjJiNDc5NmRkMzI2ZjhhNTcxM2ZhNjVkYjcyMTU2Yzk3NmUxNzIxZTZmYTVjMmY5YWYyNzNhMmMxYTJkMDJiMTcwZGVmOWFlIiwiaWF0IjoxNjk0NTI3OTk2LjIyNTgsIm5iZiI6MTY5NDUyNzk5Ni4yMjU4LCJleHAiOjE2OTQ1MzUxOTYuMjE3NSwic3ViIjoiNiIsInNjb3BlcyI6W119.jj4eNr04wJBQyCugzlf04k_Bs-b0zcwpw0RYwAse_lEtpF6hXIMlsZVtyZOO4F68MhUTQszlMGKaBhosWnAnmefSK9dEbM4LqRdixS9qjKSYKnkJB840cgzv7QzM2ripJ8X-Qi_0YnfzpKphYylKWFDOX31CbXeT8GvHFIx4ZmqWREmADMEmVdklyvmCnGgDVzzyMg_suYTJ_IqqCmgf-hnkS7GDjlSqZc0o1YU7JjSOCx8V3szgKJg8Ey0S7SH2tJ1kBCihe_5lLlrOiMSrzSFHr55M0r1E5mund2RSJ4N0LE_nJjdiy-9wpZ9Bn2YTyZzrPHXsX-odc3gEW8ixSxEw_atX2I0041V9TtJnQeld3tyJofpI7xTCBto0Igj2afLm_JOc1_3kpuhLz0thvHGsf_knGzhljTtsk2JAnrdNpr9fqRkRLjvpfs8gjD1EvvwASmdMEK2yVecQmfFolca6eXBnMQTJMUn9cfi4ZBK5DnckSn5C-4-FDpHEWpH-twJbCmmR0Atnm-wYM557PQLETaLjB-Jauxm4XfHFoeMWTUbL3DbywysNVqI-8l3QQglIjSpAKRe2m74tlb-SF-06Yybm9Fx_a6vBzY5zdLeiJD4R9GMHw5vOVdKupSfSQ2sg1kvlzO0cV8W_AVUtxuBQNchbGfgrjzEeN5-wIZ4'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Ruby Örneği
ruby
require "uri"
require "json"
require "net/http"
url = URI("https://test.vepara.com.tr/ccpayment/payment/complete")
https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = "application/json"
request["Authorization"] = "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiIxOSIsImp0aSI6ImJlNjNlZmJhZjJiNDc5NmRkMzI2ZjhhNTcxM2ZhNjVkYjcyMTU2Yzk3NmUxNzIxZTZmYTVjMmY5YWYyNzNhMmMxYTJkMDJiMTcwZGVmOWFlIiwiaWF0IjoxNjk0NTI3OTk2LjIyNTgsIm5iZiI6MTY5NDUyNzk5Ni4yMjU4LCJleHAiOjE2OTQ1MzUxOTYuMjE3NSwic3ViIjoiNiIsInNjb3BlcyI6W119.jj4eNr04wJBQyCugzlf04k_Bs-b0zcwpw0RYwAse_lEtpF6hXIMlsZVtyZOO4F68MhUTQszlMGKaBhosWnAnmefSK9dEbM4LqRdixS9qjKSYKnkJB840cgzv7QzM2ripJ8X-Qi_0YnfzpKphYylKWFDOX31CbXeT8GvHFIx4ZmqWREmADMEmVdklyvmCnGgDVzzyMg_suYTJ_IqqCmgf-hnkS7GDjlSqZc0o1YU7JjSOCx8V3szgKJg8Ey0S7SH2tJ1kBCihe_5lLlrOiMSrzSFHr55M0r1E5mund2RSJ4N0LE_nJjdiy-9wpZ9Bn2YTyZzrPHXsX-odc3gEW8ixSxEw_atX2I0041V9TtJnQeld3tyJofpI7xTCBto0Igj2afLm_JOc1_3kpuhLz0thvHGsf_knGzhljTtsk2JAnrdNpr9fqRkRLjvpfs8gjD1EvvwASmdMEK2yVecQmfFolca6eXBnMQTJMUn9cfi4ZBK5DnckSn5C-4-FDpHEWpH-twJbCmmR0Atnm-wYM557PQLETaLjB-Jauxm4XfHFoeMWTUbL3DbywysNVqI-8l3QQglIjSpAKRe2m74tlb-SF-06Yybm9Fx_a6vBzY5zdLeiJD4R9GMHw5vOVdKupSfSQ2sg1kvlzO0cV8W_AVUtxuBQNchbGfgrjzEeN5-wIZ4"
request.body = JSON.dump({
"merchant_key": "$2y$10$HmRgYosneqcwHj.UH7upGuyCZqpQ1ITgSMj9Vvxn.t6f.Vdf2SQFO",
"invoice_id": "Cs2Ghy621dsa42f1D2",
"order_id": 166254527653758,
"status": "complete",
"hash_key": "36a50210c8b2f19e:11629:eHBA0moN6bZAOSfVC6g9uapUAt1/zxnxko9x4uP73/TsqrQM+cCYSekMi/VnqMgjx3GpZLpBu5GW1BDIOyxigKz3oqBFQwItyA31S5bhHe5Q3rWLe9WBStaiDnFbWYfWbBL8p7BKlbKZKDCtDHQ41B+4PEIPhdpNCeihKmE2fto="
})
response = https.request(request)
puts response.read_body
Python Örneği
python
import requests
import json
url = "https://test.vepara.com.tr/ccpayment/payment/complete"
payload = json.dumps({
"merchant_key": "$2y$10$HmRgYosneqcwHj.UH7upGuyCZqpQ1ITgSMj9Vvxn.t6f.Vdf2SQFO",
"invoice_id": "Cs2Ghy621dsa42f1D2",
"order_id": 166254527653758,
"status": "complete",
"hash_key": "36a50210c8b2f19e:11629:eHBA0moN6bZAOSfVC6g9uapUAt1/zxnxko9x4uP73/TsqrQM+cCYSekMi/VnqMgjx3GpZLpBu5GW1BDIOyxigKz3oqBFQwItyA31S5bhHe5Q3rWLe9WBStaiDnFbWYfWbBL8p7BKlbKZKDCtDHQ41B+4PEIPhdpNCeihKmE2fto="
})
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiIxOSIsImp0aSI6ImJlNjNlZmJhZjJiNDc5NmRkMzI2ZjhhNTcxM2ZhNjVkYjcyMTU2Yzk3NmUxNzIxZTZmYTVjMmY5YWYyNzNhMmMxYTJkMDJiMTcwZGVmOWFlIiwiaWF0IjoxNjk0NTI3OTk2LjIyNTgsIm5iZiI6MTY5NDUyNzk5Ni4yMjU4LCJleHAiOjE2OTQ1MzUxOTYuMjE3NSwic3ViIjoiNiIsInNjb3BlcyI6W119.jj4eNr04wJBQyCugzlf04k_Bs-b0zcwpw0RYwAse_lEtpF6hXIMlsZVtyZOO4F68MhUTQszlMGKaBhosWnAnmefSK9dEbM4LqRdixS9qjKSYKnkJB840cgzv7QzM2ripJ8X-Qi_0YnfzpKphYylKWFDOX31CbXeT8GvHFIx4ZmqWREmADMEmVdklyvmCnGgDVzzyMg_suYTJ_IqqCmgf-hnkS7GDjlSqZc0o1YU7JjSOCx8V3szgKJg8Ey0S7SH2tJ1kBCihe_5lLlrOiMSrzSFHr55M0r1E5mund2RSJ4N0LE_nJjdiy-9wpZ9Bn2YTyZzrPHXsX-odc3gEW8ixSxEw_atX2I0041V9TtJnQeld3tyJofpI7xTCBto0Igj2afLm_JOc1_3kpuhLz0thvHGsf_knGzhljTtsk2JAnrdNpr9fqRkRLjvpfs8gjD1EvvwASmdMEK2yVecQmfFolca6eXBnMQTJMUn9cfi4ZBK5DnckSn5C-4-FDpHEWpH-twJbCmmR0Atnm-wYM557PQLETaLjB-Jauxm4XfHFoeMWTUbL3DbywysNVqI-8l3QQglIjSpAKRe2m74tlb-SF-06Yybm9Fx_a6vBzY5zdLeiJD4R9GMHw5vOVdKupSfSQ2sg1kvlzO0cV8W_AVUtxuBQNchbGfgrjzEeN5-wIZ4'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
Nodejs Örneği
javascript
const axios = require('axios');
let data = JSON.stringify({
"merchant_key": "$2y$10$HmRgYosneqcwHj.UH7upGuyCZqpQ1ITgSMj9Vvxn.t6f.Vdf2SQFO",
"invoice_id": "Cs2Ghy621dsa42f1D2",
"order_id": 166254527653758,
"status": "complete",
"hash_key": "36a50210c8b2f19e:11629:eHBA0moN6bZAOSfVC6g9uapUAt1/zxnxko9x4uP73/TsqrQM+cCYSekMi/VnqMgjx3GpZLpBu5GW1BDIOyxigKz3oqBFQwItyA31S5bhHe5Q3rWLe9WBStaiDnFbWYfWbBL8p7BKlbKZKDCtDHQ41B+4PEIPhdpNCeihKmE2fto="
});
let config = {
method: 'post',
maxBodyLength: Infinity,
url: 'https://test.vepara.com.tr/ccpayment/payment/complete',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiIxOSIsImp0aSI6ImJlNjNlZmJhZjJiNDc5NmRkMzI2ZjhhNTcxM2ZhNjVkYjcyMTU2Yzk3NmUxNzIxZTZmYTVjMmY5YWYyNzNhMmMxYTJkMDJiMTcwZGVmOWFlIiwiaWF0IjoxNjk0NTI3OTk2LjIyNTgsIm5iZiI6MTY5NDUyNzk5Ni4yMjU4LCJleHAiOjE2OTQ1MzUxOTYuMjE3NSwic3ViIjoiNiIsInNjb3BlcyI6W119.jj4eNr04wJBQyCugzlf04k_Bs-b0zcwpw0RYwAse_lEtpF6hXIMlsZVtyZOO4F68MhUTQszlMGKaBhosWnAnmefSK9dEbM4LqRdixS9qjKSYKnkJB840cgzv7QzM2ripJ8X-Qi_0YnfzpKphYylKWFDOX31CbXeT8GvHFIx4ZmqWREmADMEmVdklyvmCnGgDVzzyMg_suYTJ_IqqCmgf-hnkS7GDjlSqZc0o1YU7JjSOCx8V3szgKJg8Ey0S7SH2tJ1kBCihe_5lLlrOiMSrzSFHr55M0r1E5mund2RSJ4N0LE_nJjdiy-9wpZ9Bn2YTyZzrPHXsX-odc3gEW8ixSxEw_atX2I0041V9TtJnQeld3tyJofpI7xTCBto0Igj2afLm_JOc1_3kpuhLz0thvHGsf_knGzhljTtsk2JAnrdNpr9fqRkRLjvpfs8gjD1EvvwASmdMEK2yVecQmfFolca6eXBnMQTJMUn9cfi4ZBK5DnckSn5C-4-FDpHEWpH-twJbCmmR0Atnm-wYM557PQLETaLjB-Jauxm4XfHFoeMWTUbL3DbywysNVqI-8l3QQglIjSpAKRe2m74tlb-SF-06Yybm9Fx_a6vBzY5zdLeiJD4R9GMHw5vOVdKupSfSQ2sg1kvlzO0cV8W_AVUtxuBQNchbGfgrjzEeN5-wIZ4'
},
data : data
};
axios.request(config)
.then((response) => {
console.log(JSON.stringify(response.data));
})
.catch((error) => {
console.log(error);
});
C# Örneği
c#
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://test.vepara.com.tr/ccpayment/payment/complete");
request.Headers.Add("Authorization", "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiIxOSIsImp0aSI6ImJlNjNlZmJhZjJiNDc5NmRkMzI2ZjhhNTcxM2ZhNjVkYjcyMTU2Yzk3NmUxNzIxZTZmYTVjMmY5YWYyNzNhMmMxYTJkMDJiMTcwZGVmOWFlIiwiaWF0IjoxNjk0NTI3OTk2LjIyNTgsIm5iZiI6MTY5NDUyNzk5Ni4yMjU4LCJleHAiOjE2OTQ1MzUxOTYuMjE3NSwic3ViIjoiNiIsInNjb3BlcyI6W119.jj4eNr04wJBQyCugzlf04k_Bs-b0zcwpw0RYwAse_lEtpF6hXIMlsZVtyZOO4F68MhUTQszlMGKaBhosWnAnmefSK9dEbM4LqRdixS9qjKSYKnkJB840cgzv7QzM2ripJ8X-Qi_0YnfzpKphYylKWFDOX31CbXeT8GvHFIx4ZmqWREmADMEmVdklyvmCnGgDVzzyMg_suYTJ_IqqCmgf-hnkS7GDjlSqZc0o1YU7JjSOCx8V3szgKJg8Ey0S7SH2tJ1kBCihe_5lLlrOiMSrzSFHr55M0r1E5mund2RSJ4N0LE_nJjdiy-9wpZ9Bn2YTyZzrPHXsX-odc3gEW8ixSxEw_atX2I0041V9TtJnQeld3tyJofpI7xTCBto0Igj2afLm_JOc1_3kpuhLz0thvHGsf_knGzhljTtsk2JAnrdNpr9fqRkRLjvpfs8gjD1EvvwASmdMEK2yVecQmfFolca6eXBnMQTJMUn9cfi4ZBK5DnckSn5C-4-FDpHEWpH-twJbCmmR0Atnm-wYM557PQLETaLjB-Jauxm4XfHFoeMWTUbL3DbywysNVqI-8l3QQglIjSpAKRe2m74tlb-SF-06Yybm9Fx_a6vBzY5zdLeiJD4R9GMHw5vOVdKupSfSQ2sg1kvlzO0cV8W_AVUtxuBQNchbGfgrjzEeN5-wIZ4");
var content = new StringContent("{\r\n \"merchant_key\": \"$2y$10$HmRgYosneqcwHj.UH7upGuyCZqpQ1ITgSMj9Vvxn.t6f.Vdf2SQFO\",\r\n \"invoice_id\": \"Cs2Ghy621dsa42f1D2\",\r\n \"order_id\": 166254527653758,\r\n \"status\": \"complete\",\r\n \"hash_key\": \"36a50210c8b2f19e:11629:eHBA0moN6bZAOSfVC6g9uapUAt1/zxnxko9x4uP73/TsqrQM+cCYSekMi/VnqMgjx3GpZLpBu5GW1BDIOyxigKz3oqBFQwItyA31S5bhHe5Q3rWLe9WBStaiDnFbWYfWbBL8p7BKlbKZKDCtDHQ41B+4PEIPhdpNCeihKmE2fto=\"\r\n}", null, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());