# Braintree Modülü

https://docs.wisecp.com/tr/braintree-modulu

Braintree ile kart ödemelerini alın ve sonraki yenilemeler için kart saklama veya abonelik sunun.

## Ekrana Erişim

**Ayarlar → Finansal → Ödeme Ağ Geçitleri** yolunu izleyin, **Tüm Modüller** sekmesini açın ve **Braintree** kartına tıklayın: `{admin}/modules/payment?module=Braintree`

Ağ geçidini müşterinin gördüğü yöntem listesine eklemeyi [Ödeme Modülleri](https://docs.wisecp.com/tr/odeme-modulleri) makalesinde bulursunuz.

## Ekranda Neler Var

Tek bir ayar formu: Braintree anahtar çifti, isteğe bağlı bir satıcı hesabı, iki işaret kutusu ve her modülde bulunan ortak ağ geçidi ayarları.

Müşteri Braintree'nin kendi kart paneliyle ödeme sayfasında karşılaşır, siteden ayrılmaz. Kart numarası doğrudan Braintree'ye gider, sistem yalnız bir belirteç saklar.

Modül kart saklar, yenilemede saklı kartı çeker, abonelik açar ve fatura ekranından ödemeyi iade eder. Kendi formunuza yazılan kart numarasını kabul etmez, taksit sunmaz.

## Ön Koşullar

- Genel ve özel anahtarını aldığınız bir Braintree hesabı. Test anahtarları ile canlı anahtarlar iki ayrı panelden gelen iki ayrı çifttir.
- Tahsilat yaptığınız para biriminin bir Braintree satıcı hesabında açık olması.
- Saklı kart ve otomatik yenileme ödemeleri için **Başlangıç Ayarları** içindeki **Kart Saklama Modülü** alanında bu modülün seçili olması.
- Abonelik için Braintree tarafında her ödeme aralığına bir plan ve webhook. Webhook oluşturmak Braintree'de **Manage Webhooks** yetkisi ister.

## Alanlar

- **Public Key**: Anahtar çiftinin genel yarısı. Zorunlu.
- **Private Key**: Aynı çiftin gizli yarısı. Her çekim, iade ve abonelik çağrısı bunu kullanır; gelen bildirimleri de bu anahtar doğrular. Zorunlu.
- **Merchant Account ID**: İsteğe bağlı. Braintree her para birimini kendi satıcı hesabı üzerinden sonuçlandırır. Varsayılan hesap tahsilat para biriminizle uyuşmuyorsa bu alanı doldurun.
- **Recurring Billing**: Ödeme panelinde otomatik yenileme seçeneği sunar. Varsayılan olarak kapalı. Braintree tarafında plan ve bildirim adresi ister; İşlemler bölümüne bakın.
- **Sandbox Mode**: Her çağrıyı Braintree test ortamına gönderir. Varsayılan olarak açık; canlı anahtarları girdiğinizde işareti kaldırın.

Durum, komisyon, para birimi, tutar ve ülke sınırları için [Ödeme Modülleri](https://docs.wisecp.com/tr/odeme-modulleri) makalesine bakın. **Abonelik Ücretinin Güncellenmesi** yenileme tutarı değişince Braintree tutarını günceller; varsayılan kapalıdır. **Callback URL**, **Success URL** ve **Failed URL** değiştirilemez; kopyalama simgelerini kullanın.

## İşlemler

### Anahtarları Braintree'den alma

1. Braintree paneline giriş yapın. Test ortamı ile canlı ortam ayrı adreslerdir; anahtarını istediğiniz ortama girin.
2. Sağ üstteki dişli ikonuna tıklayın, **API** bölümünü açın ve **API Keys** başlığını bulun.
3. **Private Key** sütunundaki **View** bağlantısını açıp aynı satırın iki anahtarını kopyalayın. Anahtar yoksa **Generate New API Key** seçin.
4. Bir adım daha yalnız varsayılan hesap para biriminizi karşılamıyorsa gerekir. Dişli ikonunu yeniden açın, **Business** bölümüne gidin ve **Merchant Accounts** altındaki kimliği kopyalayın.

### Kimlik bilgilerini girme

1. Modül kartını açın ve **Durum** kutusunu işaretleyin. Bunu yapmadan diğer alanlar kilitli kalır ve hiçbir değer kaydedilmez.
2. **Public Key** ve **Private Key** alanlarını doldurun, **Sandbox Mode** işaretini girdiğiniz çifte göre ayarlayın.
3. **Değişiklikleri Kaydet** butonuna tıklayın. Bu yöntemi seçen müşteriler artık Braintree kart panelini görür.
4. Sandbox kimlikleri ve Braintree test kartıyla bir test faturası ödeyin. Sağlayıcı işlem kaydını ve faturanın **Ödendi** durumunu kontrol edin.

### Müşterinin kartını saklamasına izin verme

1. **Ayarlar → Finansal → Ödeme Ağ Geçitleri** ekranına dönün ve **Başlangıç Ayarları** sekmesini açın.
2. **Kart Saklama Modülü** alanından **Braintree** seçin ve **Değişiklikleri Kaydet** butonuna tıklayın.
3. Müşteriler artık hesaplarından kart ekleyebilir, ödeme sırasında saklı kartı seçebilir ve otomatik ödemeyi açabilir.

### Abonelik sunma

1. Braintree'de **Subscriptions → Plans → Create A Plan** (veya **New Plan**) yolunu açın. Para birimini ve aylık aralığı belirleyip **Create** butonuna tıklayın. Her aralık için tekrarlayın. Günlük/haftalık döngü yoktur; tutar abonelikte belirlenir.
2. Dişli ikonundan **API → Webhooks → Create New Webhook** yolunu açın. **Callback URL** yapıştırın; `subscription_charged_successfully`, `subscription_went_active`, `subscription_went_past_due`, `subscription_canceled` ve `subscription_expired` seçin. **Create Webhook** butonuna tıklayın.
3. Modül kartına dönün, **Recurring Billing** kutusunu işaretleyin ve **Değişiklikleri Kaydet** butonuna tıklayın.
4. Ödeme paneli artık planlarınızla eşleşen döngüdeki kalemler için otomatik yenileme sunar. Eşleşen planı olmayan kalem hiç sunulmaz.

### Müşterinin izlediği yol

Kart saklama, otomatik ödeme ve abonelik seçenekleri kendi hesabı adına ödeme yapan hesap sahibine sunulur. Paylaşımlı ödeme bağlantılarında görünmez.

1. Müşteri bu yöntemi sepette, bir faturada ya da bakiye yüklerken seçer.
2. Kart paneli aynı sayfada açılır. Müşteri kart girer ya da daha önce sakladığı kartı seçer. İki kutu kartı saklamayı ve gelecek faturaları o kartla ödemeyi önerir.
3. Abonelik açıksa müşteri hangi yenilenen kalemlerin tek bir sözleşmeye gireceğini de seçer. Farklı döngüdeki kalemler aynı sözleşmeye giremez.
4. Braintree kartı çeker. Ödeme faturayı kapatır ve hizmet etkinleşir.

### Ödemeyi iade etme

1. Ödenmiş faturayı açın: `{admin}/invoices/detail?id={fatura}`
2. **Özet → Durumu Değiştir** bölümünde **İade Edildi** ve **Ödeme altyapısı ile iade** seçin. **Durumu Güncelle** butonuna tıklayın.
3. Braintree çekimi geri verir. Henüz sonuçlanmamış bir çekim ise iptal edilir; müşteri için sonuç aynıdır.

## Dikkat Edilecekler

> **İade tek faturayı değil çekimin tamamını geri verir**
> 
> Modül Braintree'ye tutar göndermez, bu yüzden işlemin tamamı geri döner. Müşteri tek seferde birkaç faturayı ödediyse, birinin iadesi hepsinin parasını geri verir. Böyle bir ödemeyi Braintree panelinden iade edin. Sonra faturayı **Gider olarak ekle** seçeneğiyle **İade Edildi** yapın.

> **Plan yoksa abonelik de yok**
> 
> Yenileme seçeneği yalnız aynı para biriminde eşleşen planı olan döngüde görünür. Okunabilir plan yoksa panelde abonelik bölümü yer almaz. Ödemenin kendisi yine çalışır. Kartı silmek Braintree tarafındaki kaydı da kaldırır ve o karta bağlı otomatik ödeme durur.

> **Sandbox Mode işaretli gelir**
> 
> Yeni bir modül kartı test ortamını gösterir. İşaret kaldırılmadan girilen canlı anahtarlar yanlış ortama gider ve her çekim başarısız olur. Her ortamın kendi paneli, planları ve bildirim adresi vardır. Test ortamında kurduğunuz hiçbir şey canlıya geçmez.

## Gerekli Yetkiler

**Ödeme Modülü Ayarları** (`MODULES_PAYMENT_SETTINGS`) yetkisi gerekir. Fatura iadesi ayrıca `INVOICES_OPERATION` ister.

## İlgili Makaleler

- [Ödeme Modülleri](https://docs.wisecp.com/tr/odeme-modulleri)
- [Fatura Detayı Genel Görünüm](https://docs.wisecp.com/tr/fatura-detayina-genel-bakis)
- [Abonelikler](https://docs.wisecp.com/tr/abonelikler)
- [Modül Yönetimi](https://docs.wisecp.com/tr/modul-yonetimi)
