Kod Örnekleri

Farklı programlama dillerinde OdemeNet API entegrasyon örnekleri

Kimlik Doğrulama Örnekleri

API Token Alma
API'ye erişim için JWT token alınması örneği. Token 1 saat geçerlidir.
C#
PHP
Python
Node.js
using System;
using System.Net.Http;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;

public class OdemeNetAuth
{
    private readonly HttpClient _httpClient;
    private const string BaseUrl = "https://api.odemenet.com";

    public OdemeNetAuth()
    {
        _httpClient = new HttpClient();
    }

    public async Task<string> GetTokenAsync(string apiKey, string apiSecret)
    {
        var loginData = new
        {
            apiKey = apiKey,
            apiSecret = apiSecret
        };

        var json = JsonSerializer.Serialize(loginData);
        var content = new StringContent(json, Encoding.UTF8, "application/json");

        var response = await _httpClient.PostAsync($"{BaseUrl}/api/auth/login", content);
        
        if (response.IsSuccessStatusCode)
        {
            var responseData = await response.Content.ReadAsStringAsync();
            var result = JsonSerializer.Deserialize<LoginResponse>(responseData);
            return result.Token;
        }
        
        throw new Exception($"Token alınamadı: {response.StatusCode}");
    }
}
<?php

class OdemeNetAuth
{
    private const BASE_URL = 'https://api.odemenet.com';
    
    public function getToken($apiKey, $apiSecret)
    {
        $data = [
            'apiKey' => $apiKey,
            'apiSecret' => $apiSecret
        ];
        
        $ch = curl_init(self::BASE_URL . '/api/auth/login');
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
        curl_setopt($ch, CURLOPT_HTTPHEADER, [
            'Content-Type: application/json'
        ]);
        
        $response = curl_exec($ch);
        $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
        curl_close($ch);
        
        if ($httpCode === 200) {
            $result = json_decode($response, true);
            return $result['token'];
        }
        
        throw new Exception("Token alınamadı: $httpCode");
    }
}
?>
import requests

class OdemeNetAuth:
    BASE_URL = "https://api.odemenet.com"
    
    def get_token(self, api_key, api_secret):
        """API token alır"""
        url = f"{self.BASE_URL}/api/auth/login"
        
        payload = {
            "apiKey": api_key,
            "apiSecret": api_secret
        }
        
        response = requests.post(url, json=payload)
        
        if response.status_code == 200:
            data = response.json()
            return data["token"]
        
        raise Exception(f"Token alınamadı: {response.status_code}")
const axios = require('axios');

class OdemeNetAuth {
    constructor() {
        this.baseUrl = 'https://api.odemenet.com';
    }

    async getToken(apiKey, apiSecret) {
        try {
            const response = await axios.post(
                `${this.baseUrl}/api/auth/login`,
                { apiKey, apiSecret }
            );

            if (response.data.success) {
                return response.data.token;
            }

            throw new Error('Token alınamadı');
        } catch (error) {
            throw new Error(`API Hatası: ${error.message}`);
        }
    }
}

Ödeme İşlemi Örnekleri

Not: Tüm ödeme isteklerinde Authorization header'ına Bearer token eklenmelidir.
3D Secure Ödeme
3D Secure doğrulama ile güvenli ödeme işlemi başlatma örneği.
C#
PHP
Python
public async Task<PaymentResult> Process3DSecurePayment(
    string token, decimal amount, string cardNumber)
{
    var paymentData = new
    {
        amount = amount,
        cardNumber = cardNumber,
        cardHolderName = "JOHN DOE",
        expireMonth = "12",
        expireYear = "2025",
        cvv = "123",
        orderId = "ORD-123456",
        installment = 1
    };

    var json = JsonSerializer.Serialize(paymentData);
    var content = new StringContent(json, Encoding.UTF8, "application/json");

    _httpClient.DefaultRequestHeaders.Authorization = 
        new AuthenticationHeaderValue("Bearer", token);

    var response = await _httpClient.PostAsync(
        $"{BaseUrl}/api/payment/3dsecure", content);
    
    var responseData = await response.Content.ReadAsStringAsync();
    return JsonSerializer.Deserialize<PaymentResult>(responseData);
}
<?php

function process3DSecurePayment($token, $amount, $cardNumber) {
    $data = [
        'amount' => $amount,
        'cardNumber' => $cardNumber,
        'cardHolderName' => 'JOHN DOE',
        'expireMonth' => '12',
        'expireYear' => '2025',
        'cvv' => '123',
        'orderId' => 'ORD-123456',
        'installment' => 1
    ];
    
    $ch = curl_init('https://api.odemenet.com/api/payment/3dsecure');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
        'Content-Type: application/json',
        'Authorization: Bearer ' . $token
    ]);
    
    $response = curl_exec($ch);
    curl_close($ch);
    
    return json_decode($response, true);
}
?>
def process_3d_secure_payment(token, amount, card_number):
    """3D Secure ödeme işlemi başlatır"""
    url = "https://api.odemenet.com/api/payment/3dsecure"
    
    payload = {
        "amount": amount,
        "cardNumber": card_number,
        "cardHolderName": "JOHN DOE",
        "expireMonth": "12",
        "expireYear": "2025",
        "cvv": "123",
        "orderId": "ORD-123456",
        "installment": 1
    }
    
    headers = {
        "Authorization": f"Bearer {token}",
        "Content-Type": "application/json"
    }
    
    response = requests.post(url, json=payload, headers=headers)
    return response.json()

Kart Yönetimi Örnekleri

Kayıtlı Kartları Listeleme
C#
Node.js
public async Task<List<SavedCard>> GetSavedCards(string token, string customerId)
{
    _httpClient.DefaultRequestHeaders.Authorization = 
        new AuthenticationHeaderValue("Bearer", token);

    var response = await _httpClient.GetAsync(
        $"{BaseUrl}/api/card/list/{customerId}");
    
    if (response.IsSuccessStatusCode)
    {
        var json = await response.Content.ReadAsStringAsync();
        return JsonSerializer.Deserialize<List<SavedCard>>(json);
    }
    
    return new List<SavedCard>();
}
async getSavedCards(token, customerId) {
    try {
        const response = await axios.get(
            `${this.baseUrl}/api/card/list/${customerId}`,
            {
                headers: {
                    'Authorization': `Bearer ${token}`
                }
            }
        );
        
        return response.data;
    } catch (error) {
        console.error('Kart listesi alınamadı:', error.message);
        return [];
    }
}

Sorgulama İşlemleri

İşlem Durumu Sorgulama
PHP
Python
<?php

function queryTransaction($token, $transactionId) {
    $ch = curl_init(
        'https://api.odemenet.com/api/transaction/' . $transactionId
    );
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
        'Authorization: Bearer ' . $token
    ]);
    
    $response = curl_exec($ch);
    curl_close($ch);
    
    return json_decode($response, true);
}

?>
def query_transaction(token, transaction_id):
    """İşlem durumunu sorgular"""
    url = f"https://api.odemenet.com/api/transaction/{transaction_id}"
    
    headers = {
        "Authorization": f"Bearer {token}"
    }
    
    response = requests.get(url, headers=headers)
    return response.json()