Files
Pay2Gateway/API_DOCS.md

94 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 📡 Pay2Gateway API v1 Kullanım Rehberi
Pay2Gateway API, firmaların (merchants) kendi sistemlerini bizim ödeme geçidimize entegre etmelerini sağlar. Tüm istekler JSON formatında yapılmalı ve geçerli bir API anahtarı içermelidir.
## 🔑 Kimlik Doğrulama (Authentication)
Tüm API isteklerinde `x-api-key` header'ı zorunludur. API anahtarınızı Merchant Panel -> Ayarlar kısmından alabilirsiniz.
**Örnek Header:**
```http
x-api-key: gwa_live_xxxxxxxxxxxx
Content-Type: application/json
```
---
## 🛒 1. Ödeme Oturumu Oluşturma (Checkout Session)
Bir müşteri ödeme yapmak istediğinde, sunucunuzdan bu endpoint'e istek atarak bir ödeme oturumu oluşturun.
- **Endpoint:** `POST /api/v1/checkout`
- **Açıklama:** Yeni bir işlem başlatır ve müşteriyi yönlendirebileceğiniz bir URL döndürür.
### İstek Gövdesi (Request Body)
| Parametre | Tip | Zorunlu mu? | Açıklama |
| :--- | :--- | :--- | :--- |
| `amount` | Float | Evet | Tahsil edilecek tutar. |
| `currency` | String | Hayır | Para birimi (Varsayılan: `TRY`). |
| `order_id` | String | Evet | Kendi sisteminizdeki sipariş numarası. |
| `customer_name` | String | Hayır | Müşterinin adı. |
| `customer_phone` | String | Hayır | Müşterinin telefon numarası. |
| `callback_url` | String | Hayır | Ödeme sonrası sunucunuza bildirim atılacak URL. |
| `success_url` | String | Hayır | Başarılı ödeme sonrası kullanıcının döneceği URL. |
| `cancel_url` | String | Hayır | İptal edilen ödeme sonrası kullanıcının döneceği URL. |
**Örnek İstek:**
```json
{
"amount": 1250.50,
"currency": "TRY",
"order_id": "SİPARİŞ_102",
"customer_name": "Ahmet Yılmaz",
"callback_url": "https://siteniz.com/api/webhooks/pay2gateway",
"success_url": "https://siteniz.com/payment/success",
"cancel_url": "https://siteniz.com/payment/cancel"
}
```
### Yanıt (Response)
Başarılı bir istek sonucunda `checkout_url` döndürülür. Müşterinizi bu adrese yönlendirmeniz yeterlidir.
```json
{
"success": true,
"data": {
"id": "uuid-islem-id",
"checkout_url": "https://pay2gateway.com/checkout?session_id=uuid-islem-id",
"status": "pending",
"wallets": {
"EVM": "0x...",
"SOLANA": "...",
"TRON": "...",
"BITCOIN": "..."
}
}
}
```
---
## 🔔 2. Webhook Bildirimleri
Ödeme tamamlandığında veya blockchain üzerinde onaylandığında, `callback_url` adresine bir `POST` isteği gönderilir.
**Webhook Gövdesi:**
```json
{
"status": "success",
"amount": 1250.50,
"currency": "TRY",
"ref_id": "SİPARİŞ_102",
"tx_hash": "0xabc123...",
"network": "POLYGON",
"token": "USDT"
}
```
---
## 🛡️ Güvenlik Notları
- **API Key:** API anahtarınızı asla frontend kodlarınızda (JavaScript/React) paylaşmayın. Sadece sunucu tarafında kullanın.
- **İşlem Doğrulama:** Webhook geldiğinde tutarı ve sipariş ID'sini kendi veritabanınızla karşılaştırın.
- **Test Modu:** Test yapmak için admin panelinden `MOCK_PAYMENTS` ayarını aktif edebilirsiniz.
---
**Pay2Gateway Support** - Teknik destek için `support@ayris.dev` üzerinden bize ulaşabilirsiniz.