Nasıl bağlanılır
Stripe ödeme sistemini bağlamak için gizli bir API anahtarı ve bir webhook anahtarına ihtiyacınız olacak.
Gizli API anahtarı, Developers → API keys bölümüne gidip Secret key'i kopyalayarak alınabilir.
Adım 1. Developers → API keys bölümüne gidin:

Adım 2. Secret key'i bulun ve kopyalayın:

Ardından, bir geri arama URL'si ayarlamanız gerekir. Bu, botun ödeme bildirimlerini almasını sağlar.
Webhooks bölümüne gidin ve webhook URL'sini ekleyin.

Bir form görünecektir.

Adım 3. "+add destination" düğmesine tıklayın.
Adım 4. Olayları seçin.

Adım 3. "Webhook endpoint" türünü seçin.

Adım 4. İstek türünü inceleyin ve "Continue" düğmesine tıklayın.

Adım 5. Bir ad girin ve endpoint URL'sini belirtin.

URL'yi şu şekilde ayarlayın: https://chatter.mavibot.ai/stripe_callback/result
Adım 6. İki endpoint oluşturulacak — eklemeden önce ayarları inceleyebilirsiniz.

Adım 7. "Add destinations" düğmesine tıklayın. Webhook'lar kaydedilecektir.
Adım 8. "Done" düğmesine tıklayın.

Kaydedin ve webhook'un yapılandırıldığı sayfaya yönlendirileceksiniz.

Adım 9. Tüm olayları seçtiğiniz webhook'a tıklayın.

Adım 10. İmzalama anahtarını (Signing key) bulun ve kaydedin (daha sonra MaviBot'a bağlanmak için ihtiyacınız olacak).

Anahtarlarınızı aldıktan sonra Mavibot'ta bağlantı kurmaya devam edin.
Mavibot'ta "Acquiring" bölümünü açın ve Stripe'ı seçin.

Bağlantı sayfasında, elde ettiğiniz anahtarları girin.

"Save settings" düğmesine tıklayın.
Tamamlandı! Stripe'ı bağladınız.
İşlem durumu geri araması nasıl bağlanır
Ek bir geri arama almak için, mevcut webhook'un yanına ikinci bir webhook eklemeniz gerekir.
URL'yi şu şekilde ayarlayın: https://chatter.mavibot.ai/stripe_callback/<api_key>/charge_status
ve aşağıdaki olayları seçin:
charge.failedcharge.pendingcharge.succeeded

Her webhook türü hakkında daha fazla ayrıntı:
charge.succeeded— başarıyla tamamlanmış bir işlem hakkında bilgi içerir (başarılı ödeme geri aramasına benzer)charge.pending— "işlem devam ediyor", tamamlanması 7 güne kadar sürebilir. Webhook şu formatta olacaktır: {ilk 10 karakter}{webhook türü} Örneğin: sk_test_45LDPJLKT95d_charge.pendingcharge.failed— "işlem başarısız oldu". Webhook şu formatta olacaktır: {ilk 10 karakter}{webhook türü} Örneğin: sk_test_45LDPJLKT95d_charge.failed
Kaydettikten sonra elde edilen webhook anahtarını Mavibot alanına — Webhook key2 ekleyin.

stripe_invoice_id — ödemeden hemen sonra başarılı ödeme geri araması alınmayan işlem tanımlayıcısı.
Vergiler nasıl ayarlanır
Ödemelerde vergileri kullanmak için önce Stripe kontrol panelinizde bunları oluşturmanız gerekir. Bunu yapmak için arama çubuğuna "tax rates" yazın:

Ve "+ Add tax rates" düğmesine tıklayın.

Ardından geçerli vergi oranını girin.

Açılan menüde vergi türünü, uygulandığı bölgeyi, yüzde oranını ve verginin ödeme tutarına dahil mi (Inclusive) yoksa üstüne mi ekleneceğini (Exclusive) seçin.

Vergi oranını oluşturduktan sonra, ödeme tutarını bildirmeden önce ID'sini stripe_tax_id değişkenine kopyalayın.

Hataları önlemek için, bağlantıyı aldıktan sonra stripe_tax_id değişkenini boş bir dizeye ("") ayarlamanız önerilir — bu şekilde vergiyi yalnızca gerektiğinde uygulayabilirsiniz.
Doğru yapılırsa, exclusive parametresine sahip bir vergi oranı durumunda aşağıdakileri göreceksiniz:

Ödeme bağlantısı nasıl alınır
Bir ödeme bağlantısı oluşturmak için payment_sum değişkeninin değerini ayarlayın (örneğin 150 veya 100.55 — nokta kullanın, virgül değil!). Bundan sonra stripe_pay_url değişkeni görünecektir. Bu değişkeni bir bağlantı olarak görüntüleyebilir veya "Öde" metniyle bir düğmeye yerleştirebilirsiniz.
Bağlantı şöyle görünür:
https://checkout.stripe.com/pay/cs_test_a17mskKFFRwEuo3WgBSAUjfk7xaZZIrct9B3Ds2AdODVq1I8aRiqYEBdrU#fidkdWxOYHwnPyd1blpxYHZxWjA0TGFsVzFPVmpmMzJAbVYzUkp1Y0lLYDVgfzR2Q0NxcWZBNUNnTnRSVVRJSGFobEB1UExSczRMMTc8PWRLMGBddl8xalxyPDRoUGhnZm9xXXZANDZyaF0wNTVBVExsPHZyfycpJ2N3amhWYHdzYHcnP3F3cGApJ2lkfGpwcVF8dWAnPyd2bGtiaWBabHFgaCcpJ2BrZGdpYFVpZGZgbWppYWB3dic%2FcXdwYHgl
Varsayılan olarak para birimi USD'dir. Farklı bir para birimi kullanmak için currency değişkeninin değerini ayarlayın.
Ödemeyi yapılandırmak için payment_sum değerini ayarlamadan önce aşağıdaki isteğe bağlı değişkenleri de ayarlayabilirsiniz.
| Fonksiyon parametreleri | Parametre açıklaması |
|---|---|
| currency | sipariş para birimi. İzin verilen değerler burada —https://stripe.com/docs/currencies |
| payment_description | ödeme açıklaması |
| stripe_tax_id | Stripe kontrol panelinizde yapılandırılan vergi oranı tanımlayıcısı. Kurulum talimatları "Vergiler nasıl ayarlanır" bölümünde verilmiştir. |
| stripe_invoice_enable | faturaları (makbuzları) kaydetmeyi etkinleştirme bayrağı. Bunu etkinleştirmek için herhangi bir değer ayarlayın — ilgili tüm belgeler Stripe kontrol panelinizde mevcut olacaktır. |
| stripe_locale |
ödeme sayfasının dilini ayarlayın: en, de, vb. Tüm mevcut seçenekler: https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-locale stripe_locale ayarlanmazsa, müşterinin tarayıcı dili kullanılacaktır. |
| stripe_payment_method_type | ödeme yöntemi; varsayılan olarak kart ödemesidir. Stripe'da bulunan diğer ödeme yöntemleriyle değiştirilebilir. Mevcut yöntemler aşağıda listelenmiştir. Örneğin, stripe_payment_method_type = "customer_balance"
|
| stripe_additional_payment_method_type | ek bir ödeme yöntemi ekleyin. Mevcut yöntemler aşağıda listelenmiştir. Örneğin, stripe_additional_payment_method_type = "sepa_debit"
|
| coupon_id | indirim kuponu tanımlayıcısı |
| stripe_expired | ödeme bağlantısının son kullanma süresi. Saniye cinsinden belirtilir. Minimum 30 dakika, maksimum 24 saattir. Varsayılan 24 saattir. |
| stripe_automatic_tax | otomatik vergi hesaplamasını ve tahsilatını etkinleştirin. Etkinleştirmek için "1" iletin. Daha fazla ayrıntı için Stripe makalelerine bakın. |
Önemli! Hem stripe_payment_method_type hem de stripe_additional_payment_method_type değişkenlerini kullanıyorsanız, içlerindeki değerler farklı olmalıdır!
stripe_payment_method_type ve stripe_additional_payment_method_type için değer listesi
card
acss_debit
affirm
afterpay_clearpay
alipay
au_becs_debit
bacs_debit
bancontact
blik
boleto
cashapp
customer_balance
eps
fpx
giropay
grabpay
ideal
klarna
konbini
link
oxxo
p24
paynow
paypal
pix
promptpay
sepa_debit
sofort
us_bank_account
wechat_pay zip
Ödeme bağlantısı oluşturma örneği
1000 AED için bir ödeme bağlantısı oluşturalım (varsayılan para birimi USD'dir).

Not:
— Önce first_name, payment_description vb. gibi isteğe bağlı parametreleri belirtin.
— Ardından, en son payment_sum değişkenine değer atayın.
Değişkenler aynı blokta olmak zorunda değil, zincirde daha önce de ayarlanabilir — bu sadece bir örnektir.
Ardından, bağlantıyı içeren stripe_pay_url değişkenini istenen noktada görüntüleyin — bir mesaj bloğunda veya bir düğmede:
Örnek 1. Ödeme bağlantısını doğrudan bir mesajda görüntüleyin:


Örnek 2. Ödeme bağlantısını bir düğmeye ekleyin.

Düğmeye tıklandığında veya bağlantı takip edildiğinde, ödeyen kişi ödeme sayfasına yönlendirilecektir.

Örnek, blok ayarlarındaki hesaplayıcıda belirttiğimiz parametrelerin uygulandığını göstermektedir: sipariş açıklaması, para birimi ve tutar.
Blokta vergi oranı parametresini (stripe_tax_id) iletirseniz.

Vergi oranı da ödeme formunda görüntülenecektir.

Kopyalamak için kod örneği
payment_description = "test payment"
currency = 'AED'
stripe_tax_id = 'enter_your_stripe_id_tax'
payment_sum = 1000
Vergi kimliği nerede bulunur.

Yinelenen ödemeler nasıl ayarlanır
Yinelenen ödemeler (abonelikler) için, payment_sum değişkeninden önce stripe_subscription değişkenini bildirin ve abonelik adını atayın.
Ayrıca aşağıdaki değişkenleri de ekleyebilirsiniz: interval — abonelik aralığı süresi. Günler için 'day', haftalar için 'week', aylar için 'month' veya yıllar için 'year' iletin. Değişken ayarlanmazsa, varsayılan olarak 'month' kullanılacaktır.
Önemli!
Bir abonelik döngüsünün süresi 1 yılı ('year' parametresi için), 12 ayı ('month' parametresi için) veya 52 haftayı ('week' parametresi için) aşamaz.

interval_count — belirtilen aralıkların sayısı: belirtilen tutar için aboneliğe kaç gün, hafta veya ay dahil edildiği. Varsayılan 1'dir.
stripe_payment_method_type — ödeme yöntemi; varsayılan olarak kart ödemesidir. Stripe'da bulunan diğer ödeme yöntemleriyle değiştirilebilir. Mevcut yöntemler aşağıda listelenmiştir.
Örneğin, stripe_payment_method_type = 'customer_balance'
stripe_additional_payment_method_type — ek bir ödeme yöntemi ekler. Kullanılabilir yöntemler aşağıda listelenmiştir.
Örneğin, stripe_additional_payment_method_type = 'sepa_debit'
Önemli! Hem stripe_payment_method_type hem de stripe_additional_payment_method_type değişkenlerini kullanıyorsanız, içlerindeki değerler FARKLI OLMALIDIR!
stripe_payment_method_type ve stripe_additional_payment_method_type için değer listesi:
card
acss_debit
affirm
afterpay_clearpay
alipay
au_becs_debit
bacs_debit
bancontact
blik
boleto
cashapp
customer_balance
eps
fpx
giropay
grabpay
ideal
klarna
konbini
link
oxxo
p24
paynow
paypal
pix
promptpay
sepa_debit
sofort
us_bank_account
wechat_pay zip
Her yöntem ve kullanılabildikleri ülkeler hakkında daha fazla ayrıntı için Stripe belgelerine bakın.
Önemli!
Bir abonelik döngüsünün süresi 1 yılı ('year' parametresi için), 12 ayı ('month' parametresi için) veya 52 haftayı ('week' parametresi için) aşamaz.
Bu örnekte, 'My_subscription' adında, aylık 1000 AED fiyatında bir abonelik oluşturulacak ve 1 ay sonra aynı tutarda yinelenen bir ödeme tahsil edilecektir.

Örneği kopyalayın:
stripe_subscription = 'My_subscription' interval = 'month' payment_sum = 90
Abonelik ödemesini iki, üç veya dört ayda bir tahsil etmek için interval_count parametresini iletin:
stripe_subscription = 'My_subscription'
interval = 'month'
interval_count = 3
payment_sum = 90
Abonelik ödeme aralığını aylıktan haftalığa değiştirmek için interval parametresinde week kelimesini iletin:
stripe_subscription = 'My_subscription'
interval = 'week'
interval_count = 3
payment_sum = 90
Ödemeden sonra, müşterinin işlem değişkenleri, abonelik iptalini yapılandırmak için gereken stripe_subscription_id'yi ve daha sonra abonelik durumunu kontrol etmek için kullanılabilecek stripe_customer_id'yi içerecektir.
Bildirim (callback) yalnızca ilk yinelenen ödeme için gönderilir!
Sonraki ödemeler için callback OLMAYACAKTIR. Takip, fonksiyon ve stripe_customer_id ile yapılır.

Normal ödemelere dönme ayarları
Normal ödemelere dönmek için abonelik değişkenine boş bir dize atayın: stripe_subscription = ''. Bu durumda, interval ve interval_count değişkenleri bağlantı oluşturmayı etkilemeyecektir.

Aboneliği iptal etme ayarları
Hesap makinesinde bir aboneliği iptal etmek için stripe_remove_subscription(stripe_subscription_id) yöntemini kullanın; burada stripe_subscription_id, ödemeden sonra işlem değişkenlerinde kaydedilen tanımlayıcıdır.
Bu, ücretli aboneliğin mevcut fatura döneminin sonuna kadar aktif kalmasını sağlar, ancak daha fazla ücretlendirme olmaz ve süre sona erdiğinde abonelik iptal edilir.

answer = stripe_remove_subscription('#{stripe_subscription_id}')
stripe_remove_subscription — başarılı olursa, iptal edilen aboneliğin ne kadar süre daha aktif kalacağına dair bilgi içeren bir yanıt döndürür.
Bu örnekte, fonksiyonun sonucu answer değişkeninde saklanacak ve sonucu doğrulamanıza olanak tanır.
Abonelik durumunu kontrol etme
stripe_check_subscription(subscription_id, customer_id), burada
stripe_subscription_id — abonelik tanımlayıcısı stripe_customer_id — Stripe'daki müşteri tanımlayıcısı (isteğe bağlı parametre)


Kupon oluşturma ve indirim kimliği alma
Bir indirim tanımlayıcısı almak için, kontrol panelinizdeki "Kuponlar" bölümünde bir kupon oluşturun. ”kuponlar”.

"Yeni" düğmesine tıklamak, aşağıdakileri belirtmeniz gereken bir sayfa açacaktır:
- Ad — indirim adı;
- Kimlik — otomatik olarak oluşturulan tanımlayıcı;
- Tür — indirim türü: yüzde veya sabit tutar;
- Süre — indirim süresi (bir kerelik veya sürekli, örn. abonelikler için) ve diğer parametreler.

İndirim kuponu, "Ürün kataloğu" altındaki "Kuponlar" bölümünde görünecek ve kupon menüsünü açarak indirim kimliğini görüntüleyebilirsiniz.

Kupon kimliğini kopyalamak için kupona tıklayın.

Bir siparişe indirim uygulama
- Ödeme bağlantısı oluştururken (hem abonelikler hem de tek seferlik ödemeler için çalışır).
Blok hesap makinesinde, payment_sum değişkenini bildirmeden önce, coupon_id değişkenini ayarlayın ve Stripe kontrol panelinizden indirim tanımlayıcısını iletin.

- stripe_add_subscription_discount fonksiyonunu kullanarak mevcut bir aboneliğe.
Blok için tetikleyici koşulları ayarlayın ve hesap makinesinde belirtilen fonksiyonu çağırın, stripe_subscription_id (abonelik kimliği) ve coupon_id (kupon indirim kimliği) parametrelerini iletin. İndirim, sonraki abonelik ödemelerine uygulanacaktır.

Kopyalamak için kod örneği
stripe_subscription = 'test subscription'
interval = 'month'
payment_description = 'test payment'
currency = 'AED'
coupon_id = 'BD8VIwi8' stripe_add_subscription_discount(stripe_subscription_id, coupon_id)
stripe_tax_id = 'Qfkiwiki29jcs'
payment_sum = 90
İndirim başarıyla uygulanırsa, fonksiyon abonelik kimliği, indirim türü, tutar veya yüzde ve son kullanma tarihi ile birlikte bir mesaj döndürecektir.

Bir abonelik için indirimi kaldırma veya değiştirme
Bir aboneliğe eklenen bir indirim kaldırılabilir veya başka bir indirimle değiştirilebilir.
Bir indirimi durdurmak için, blok için tetikleyici koşulları ayarlayın ve hesap makinesinde stripe_remove_subscription_discount fonksiyonunu çağırın, stripe_subscription_id (abonelik kimliği) parametresini iletin.

İşlem başarılı olursa, fonksiyon abonelik kimliğini ve indirim iptal tarihini içeren bir mesaj döndürecektir.
Bir indirimi değiştirmek, yeni bir tane eklemek gibi, stripe_add_subscription_discount fonksiyonu kullanılarak yapılır. stripe_subscription_id ve coupon_id parametrelerini ilettiğinizden emin olun. Başarılı bir istek, aboneliğe eklenen kuponu güncelleyecek ve güncellenmiş ayrıntılarla birlikte bir mesaj döndürecektir.
Sonuç nasıl işlenir
Başarılı bir ödemeden sonra bot, başarılı bir işlemi belirten geri aramalar alacaktır. Sistemde bu geri aramalar, kullanıcıdan gelen mesajlar olarak görünür. Kullanıcıların bunları manuel olarak göndermesini önlemek için, gizli anahtarın ilk 20 karakterinden ve ardından _success'ten oluşurlar, örneğin: sk_live_d35gky6d8ers_success

Bu geri aramalar kullanıcı tarafından GÖRÜLMEZ — yalnızca operatör tarafından görülebilir.
Karşılaştırma türü "Tam eşleşme" olarak ayarlanmalıdır.
Başarılı bir ödemeden sonra, stripe_payment_completed değişkeni de True olarak ayarlanır.
Örneğin, koşullu bir blok kullanarak başarılı bir ödemeyi işleyebilir ve kullanıcıya uygun mesajı görüntüleyebilirsiniz.

Ödeme tamamlandıktan sonra, müşterinin verilerine, tamamlanan işlem için ödeme sistemi yanıtını içeren stripe_callback_data değişkeni eklenecektir. Gerekli veriler, get yöntemi kullanılarak elde edilen sözlükten çıkarılabilir.
Tekrarlanan bir ödemeyi işlemek için, önce payment_sum'u ve daha önce oluşturulan bağlantıyı sıfırlamalı ve ancak daha sonra yeni bir bağlantı almak için payment_sum değişkenini yeniden atamalısınız. Önceki değeri kullanabilirsiniz.
Ödemeler nasıl test edilir
Entegrasyonu test etmek için test ortamından gizli anahtarı kullanabilirsiniz. Bunu yapmak için, sağdaki menüyü kullanarak Stripe kontrol panelinde test ortamına geçin.

Ardından bu kılavuzun başında açıklanan kurulum adımlarını izleyin. Test gizli anahtarını girin ve test ortamında webhook URL'sini ekleyin.
Test için bir test ödeme kartı numarası kullanın (ülkeniz için kart numarasını resmi Stripe web sitesinde bulabilirsiniz).