Stripe
Nasıl bağlanır
Stripe ödeme sistemini bağlamak için bir gizli API anahtarına ve bir webhook anahtarına ihtiyacınız olacak.
Geliştiriciler -> API anahtarı bölümüne gidip Gizli anahtarı kopyalayarak gizli API anahtarını kopyalayabilirsiniz.
Adım 1. Geliştiriciler -> API anahtarı bölümüne gidin:

Adım 2. Gizli anahtarı bulun ve kopyalayın:

Sonra, geri çağırmalar için URL’yi ayarlamanız gerekir. Bu, botun ödeme bildirimlerini alabilmesi için gereklidir.
Webhooks bölümüne gidin ve webhook’lar için adresi ekleyin.

Form açılır:

Adım 1. "+add destination" düğmesine tıklayın.
Adım 2. Olayları seçin:

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

Adım 4. İstek türüne göz atıp "Continue" düğmesine tıklayın:

Adım 5. Adı yazın ve endpoint URL’sini belirtin:

URL belirtin - https://chatter.salebot.pro/stripe_callback/result
Adım 6. İki endpoint oluşturulacaktır, eklemeden önce ayarları görüntüleyebilirsiniz:

Adım 7. Sonra "Add destinations" düğmesine tıklayın. Ardından webhook’lar kaydedilecektir.
Adım 8. "Done" düğmesine tıklayın.

Bunu kaydedip kurulu webhook’un bulunduğu sayfaya geçiyoruz:

Adım 9. Sonra, tüm olayları seçtiğiniz webhook’a tıklayın:

Adım 10. Signig anahtarını bulup kendimize kaydediyoruz (ileride Salebot’a bağlanmak için buna ihtiyacımız olacak):

Anahtarları aldıktan sonra Mavibot’a bağlanmaya geçiyoruz.
Mavibot’ta "Acquiring" bölümünü açın ve Stripe’ı seçin.

Bağlantı sayfasında, alınan anahtarları girmeniz gerekir:

"Save Settings" düğmesine tıklayın.
Tamam!
Böylece ödeme sisteminin bağlantısı tamamlanır!
İşlem durumu hakkında geri çağırma nasıl bağlanır
Ek bir geri çağırma almak için, mevcut olana ek olarak bir webhook bağlamamız gerekecek.
URL belirtin - https://chatter.salebot.pro/stripe_callback/<api_key>/charge_status
ve olayları seçin:
charge.failedcharge.pendingcharge.succeeded

Her webhook türü hakkında daha fazla bilgi:
charge.succeeded - işlemin başarıyla tamamlandığına dair bilgi içerir (başarılı ödeme hakkındaki geri çağrıya benzer)
charge.pending - "işlem sürüyor", tamamlanması 7 güne kadar sürebilir. Webhook şu şekilde görünecektir {ilk 10 karakter}{webhook türü} Örneğin: sk_test_45LDPJLKT95d_charge.pending
charge.failed - "işlem başarısız oldu." Webhook şu şekilde görünecektir {ilk 10 karakter}{webhook türü} Örneğin: sk_test_45LDPJLKT95d_charge.failed
Kaydettikten sonra alınan webhook’u Mavibot alanına ekliyoruz - Webhook key2:

stripe_invoice_id - Başarılı ödeme geri çağrısının ödemeden hemen sonra alınmadığı işlem kimliği.
Vergiler nasıl bağlanır
Ödemelerde vergileri kullanmak için önce bunları Stripe kişisel hesabınızda oluşturmanız gerekir. Bunun için arama çubuğuna tax rates yazın:

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

Sonra, uygulanacak vergi oranını belirtin:

Açılan menüde vergi türünü, uygulanacağı bölgeyi, vergi oranını ve bu verginin ödeme tutarına dahil edilip edilmeyeceğini gösteren seçeneği seçin: 'Inclusive' ya da tutarın üzerine ekleneceğini belirten 'exclusive':

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

Hatalardan kaçınmak için, bağlantıyı aldıktan sonra stripe_tax_id değişkenine boş bir dize ("") koyun, böylece vergiyi yalnızca gerektiğinde uygulayabilirsiniz.
Her şey doğru yapılmışsa, exclusive parametresiyle vergi oranı durumunda aşağıdakini görürsünüz

Ödeme bağlantısı nasıl alınır
Bir ödeme bağlantısı oluşturmak için, payment_sum değişkeni (örneğin, 150 veya 100.55 (nokta ile ayrılmış!)) ve ardından stripe_pay_url değişkeni görünecektir. Bu değişken bir bağlantı olarak gösterilebilir veya "Pay" metniyle bir düğmeye yerleştirilebilir.
Bağlantı şu şekilde görünür:
https://checkout.stripe.com/pay/cs_test_a17mskKFFRwEuo3WgBSAUjfk7xaZZIrct9B3Ds2AdODVq1I8aRiqYEBdrU#fidkdWxOYHwnPyd1blpxYHZxWjA0TGFsVzFPVmpmMzJAbVYzUkp1Y0lLYDVgfzR2Q0NxcWZBNUNnTnRSVVRJSGFobEB1UExSczRMMTc8PWRLMGBddl8xalxyPDRoUGhnZm9xXXZANDZyaF0wNTVBVExsPHZyfycpJ2N3amhWYHdzYHcnP3F3cGApJ2lkfGpwcVF8dWAnPyd2bGtiaWBabHFgaCcpJ2BrZGdpYFVpZGZgbWppYWB3dic%2FcXdwYHgl
Varsayılan olarak USD (dolar) ayarlanmıştır, başka bir para birimine ihtiyacınız varsa, currency değişkenini kontrol eden bir IF koşulu ile belirlenir.
Ayrıca, payment_sum değişkeninin değerini ayarlamadan önce, ödemeyi yapılandırmak için aşağıdaki isteğe bağlı değişkenleri ayarlayabilirsiniz.
currency
sipariş para birimidir. Kabul edilen değerler -https://stripe.com/docs/currencies
payment_description
sipariş açıklaması
stripe_tax_id
Bu, Stripe kişisel hesabında ayarlanan vergi oranı ID’sidir. Nasıl ayarlanacağı "Vergiler nasıl ayarlanır" bölümünde açıklanmıştır ссылка "Vergiler nasıl bağlanır"
stripe_invoice_enable
Bu parametre, faturaların (invoices, receipts) kaydedilmesi gerekip gerekmediğini belirtir. Herhangi bir değer girin — gerekli tüm belgeler daha sonra Stripe kişisel hesabınızda उपलब्ध olacaktır.
stripe_locale
ödeme bağlantısının dilini ayarlar: en, ru, de. Tüm mevcut diller burada: https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-locale Eğer stripe_local değer belirtilmediyse, varsayılan olarak müşterinin tarayıcı dili kullanılacaktır.
stripe_payment_method_type
ödeme yöntemidir, varsayılan ödeme kartla yapılır. Bunu Stripe için mevcut diğer ödeme yöntemleriyle değiştirebilirsiniz. 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 eklemektir. Mevcut yöntemler örneğin aşağıda listelenmiştir, stripe_additional_payment_method_type = "sepa_debit"
coupon_id
indirim kuponu ID’si
stripe_expired
ödeme bağlantısının geçerlilik süresidir. Saniye cinsinden belirtilir. Minimum süre 30 dakika, maksimum süre 24 saattir. Varsayılan 24 saattir
stripe_automatic_tax
ödeme sırasında otomatik vergi hesaplama ve tahsilatını etkinleştirir. Bunu etkinleştirmek için "1" gönderin. Bu ayar hakkında ayrıntılı bilgi Stripe belgelerinde bulunabilir. ссылка Stripe belgelerinde
Dikkat! Eğer her iki stripe_payment_method_type ve stripe_additional_payment_method_type değişkenide kullanıyorsanız, içlerindeki değerler MUTLAKA FARKLI olmalıdır!
değerler listesi stripe_payment_method_type ve stripe_additional_payment_method_type
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 hakkında ve hangi ülkelerde kullanılabildiği hakkında daha fazla bilgiye Stripe belgelerinden ulaşabilirsiniz: sitede görüntüle
Ödeme bağlantısı oluşturma örneği
1000 ruble tutarında bir ödeme bağlantısı oluşturalım (varsayılan olarak dolar)

Dikkat edin: - Önce isteğe bağlı parametreleri first_name, payment_description belirtirsiniz vb. - Ve en son değişkene değer atanır payment_sum
Değişkenler, tek bir blokta değil, zincirin daha önceki bir yerinde de ayarlanabilir; bu bir örnektir.
Daha sonra gerekli yerde değişkeni gösteriyoruz stripe_pay_url, içinde bağlantı bulunan blokta veya düğmede:
Örnek 1. Ödeme bağlantısını doğrudan mesajda gösteriyoruz:

Botta test etme:

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


Örnek 3. Bağlantıyı mesaja ek olarak ekliyoruz:

Botta test etme:

Botta ödeme bağlantısını yönlendirmek için üç seçenek de geçerlidir.
Düğmeye tıklayınca veya bağlantıya gidince, ödeyen kişi ödeme sayfasına yönlendirilir:

Örnekte, blok ayarlarında hesap makinesinde belirttiğimiz parametrelerin uygulandığı görülüyor: sipariş açıklaması, para birimi ve tutar.
Vergi oranı parametresini verirseniz (stripe_tax_id) blokta:

O zaman ödeme formunda vergi oranı da görüntülenecektir:

Kopyalamak için kod örneği
payment_description = 'Stripe’ta test ödemesi'
currency = 'RUB'
stripe_tax_id = 'vergi ID’nizi buraya kopyalayın'
payment_sum = 1000
tax ID nerede bulunur:

Tekrarlayan ödemeler nasıl ayarlanır
Tekrarlayan ödemeler (abonelikler) için değişkeni bildirmeden önce payment_sum değişkenini bildirin stripe_subscription ve ona abonelik adını atayın.
Aşağıdaki değişkenler de eklenebilir: interval – abonelik aralığının süresi; bu değişkene ‘day’ - günler için, ‘week’ - haftalar için, ‘month’ - aylar için, ‘year’ - yıllar için değerini iletmeniz gerekir. Değişken bildirilmezse, varsayılan olarak parametre olarak ‘month’.
Önemli! Bir abonelik döngüsünün süresi 1 yıldan fazla olamaz (‘year’ parametresi için), 12 aydan fazla olamaz (‘month’ parametresi için), 52 haftadan fazla olamaz (‘week’ parametresi için).

interval_count – belirtilen aralıkların sayısı; belirtilen tutar için abonelikte kaç gün, hafta veya ay olacağını belirler. Varsayılan olarak değeri bir olan parametre gönderilecektir (1);
stripe_payment_method_type - ödeme yöntemi; varsayılan olarak kartla ödeme (card) ayarlıdır. Stripe için mevcut diğer ödeme yöntemleriyle değiştirilebilir. Mevcut yöntemler aşağıda belirtilmiştir.
Örneğin, stripe_payment_method_type = 'customer_balance'
stripe_additional_payment_method_type - ek bir ödeme yöntemi ekle. Mevcut yöntemler aşağıda belirtilmiştir
Örneğin, stripe_additional_payment_method_type = 'sepa_debit'
Önemli! Her iki değişkeni kullanıyorsanız stripe_payment_method_type ve stripe_additional_payment_method_type, içlerindeki değerler MUTLAKA FARKLI olmalıdır!
değerler listesi stripe_payment_method_type ve stripe_additional_payment_method_type:
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 hangi ülkelerde kullanılabildiği hakkında daha fazla bilgi için Stripe belgelerine bakın: sitede görüntüle ссылка sitede görüntüle
Dikkat! Abonelik süresi 1 yılı aşamaz (‘year’ parametresi için), 12 aydan fazla olamaz (‘month’ parametresi için), 52 haftadan fazla olamaz (‘week’ parametresi için).
Bu örnekte, 'My_subscription' adlı bir abonelik oluşturulacak, 3 ay için 90 USD fiyatla ve ardından 1 ay sonra aynı tutarla tekrar ödeme yapılacaktır:

Kopyalamak için bir örnek:
stripe_subscription = 'My_subscription'
interval = 'month'
interval_count = 3
payment_sum = 90
Ödemeden sonra müşterinin stripe_subscription_id değişkenleri anlaşma değişkenlerinde olacaktır; bunlar abonelik iptalini yapılandırmak için gerekecektir ve stripe_customer_id, daha sonra abonelik durumunu kontrol etmek için kullanılabilir.
Bildirim (geri çağrı) yalnızca ilk tekrarlayan ödemede alınır!
Tekrar çağrılar için HİÇBİR geri çağrı OLMAZ. Kontrol, işlev ve stripe_customer_id üzerinden yapılır. farklı bağlantı

Normal ödeme ayarlarına geri dönme
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ının oluşturulmasını etkilemeyecektir.

Abonelik ayarlarını iptal etme
Hesap makinesinde bir aboneliği iptal etmek için stripe_remove_subscription(stripe_subscription_id) yöntemini kullanın; burada stripe_subscription_id ödeme sonrasında anlaşma bilgilerine kaydedilen tanımlayıcıdır.
Bu, ödenmiş aboneliğinizi mevcut ödenmiş dönemin sonuna kadar aktif tutmanızı sağlar, ancak daha fazla ücretlendirme yapılmaz ve abonelik sona erme tarihinde iptal edilir:

answer = stripe_remove_subscription('#{stripe_subscription_id}')
stripe_remove_subscription - Başarılı olursa, iptal edilen aboneliğin geçerli olduğu tarihle ilgili bilgi içeren bir yanıt alırsınız.
Bu örnekte, işlevin çalıştırılma sonucu answer değişkenine yerleştirilecek ve çalıştırma sonucunu kontrol etmek mümkün olacaktır.
Abonelik durumunu kontrol etme
stripe_check_subscription(subscription_id, customer_id), burada
stripe_subscription_id - abonelik ID’si stripe_customer_id - Stripe’taki müşteri ID’si (isteğe bağlı parametre)

Kupon nasıl oluşturulur ve indirim ID’si nasıl alınır
İndirim ID’sini almak için, kişisel hesabınızda “coupons” bölümünde bir kupon oluşturun. ссылка ”kuponlar” sonekiyle alacaksınız.

“New” düğmesine tıkladıktan sonra, aşağıdakileri belirtmeniz gereken bir sayfa açılır:
Name — indirim adı;
ID — otomatik olarak oluşturulan tanımlayıcı.
Type — indirim türü: yüzde veya sabit tutar
Duration — İndirimin süresi (tek seferlik veya tekrarlayan, örneğin abonelikler için) ve diğer parametreler.

İndirim kuponu “Product catalog” içindeki “Coupons” bölümünde görünecektir ve kupon menüsüne giderek indirim ID’sini görüntüleyebilirsiniz:

Kupon ID’sini kopyalamak için kupona tıklayın:

Siparişe indirim nasıl eklenir
Bir ödeme bağlantısı oluştururken (hem abonelikler hem de tek seferlik ödemeler için).
Bloğun hesap makinesinde, payment_sum değişkenini ayarlamadan önce, coupon_id değişkenini bildirmeden önce, Stripe kişisel hesabından alınan indirim ID’sini ona atayın.

Mevcut bir aboneliğe eklemek için stripe_add_subscription_discount işlevini kullanın.
bloğu tetikleme koşullarını ayarlayın ve hesap makinesinde belirtilen işlevi çağırın; ona stripe_subscription_id (abonelik id’si) ve coupon_id (indirim kuponu id’si) parametrelerini verin. İndirim sonraki abonelik ödemelerine uygulanacaktır.

Kopyalamak için kod örneği
stripe_subscription = 'Premium abonelik'
interval = 'month'
payment_description = 'Stripe’ta test ödemesi'
currency = 'USD'
coupon_id = 'Kuponunuzun ID’si'
stripe_add_subscription_discount(stripe_subscription_id, coupon_id)
stripe_tax_id = 'Vergi ID’si'
payment_sum = 90
Başarılı ekleme durumunda, işlev abonelik ID’sini, indirim türünü, tutarı veya yüzdesini ve ayrıca son kullanma tarihini belirten bir mesaj döndürür.

Abonelik oluşturma hakkında daha fazla bilgi için "Tekrarlayan ödemeler nasıl ayarlanır" bölümüne bakın ссылка "Tekrarlayan ödemeler nasıl ayarlanır"
Abonelik indirimi nasıl silinir/değiştirilir
Aboneliğe eklenmiş olan indirim silinebilir veya başka bir indirimle değiştirilebilir.
İndirimi sonlandırmak istiyorsanız, bloğun tetiklenmesi için bir koşul ayarlayın ve stripe_remove_subscription_discount işlevini hesap makinesinde çağırın, ona stripe_subscrition_id parametresini (abonelik id’si) verin.

İşlem başarıyla tamamlandığında, işlev abonelik ID’sini ve indirim iptal tarihini içeren bir mesaj döndürür.
İndirimi değiştirmek ve yeni bir indirim eklemek stripe_add_subscription_discount işlevi kullanılarak yapılır. Ona stripe_subscription_id ve coupon_id parametrelerini vermeyi unutmayın. Başarılı bir istek, aboneliğe bağlı kuponu güncelleyecek ve mevcut bilgilerle bir mesaj döndürecektir.
İndirim ID’sini nasıl alacağınızı "Kupon nasıl oluşturulur ve indirim ID’si nasıl alınır" bölümünde okuyabilirsiniz. ссылка "Kupon nasıl oluşturulur ve indirim ID’si nasıl alınır".
Sonuç Nasıl İşlenir
Başarılı bir ödemenin ardından, bot’a geri çağrılar gönderilir ve bunlar ödemenin başarılı olduğunu bildirir. Bu geri çağrıları sistemde kullanıcıdan gelen mesajlar olarak görürsünüz; böylece kullanıcı bunları gönderemez. Bunlar gizli anahtarın ilk 20 karakteri ve başarı son eki içerir, örneğin: sk_live_d35gky6d8ers_success

Bu geri çağrılar kullanıcıya GÖRÜNMEZ, yalnızca operatöre gösterilir.
Karşılaştırma türü "Tam Eşleşme" olmalıdır
Ayrıca, başarılı ödemeden sonra stripe_payment_completed değişkeni True olarak ayarlanır.
Örneğin, başarılı bir ödemeyi koşullu bir blokta işleyebilir ve ilgili mesajı kullanıcıya gösterebilirsiniz:

Ödeme tamamlandıktan sonra, stripe_callback_data değişkeni müşteriye eklenecek ve tamamlanan işleme ilişkin ödeme sisteminin yanıt verilerini içerecektir. Gerekli verileri sonuç sözlüğünden get yöntemini kullanarak çıkarabilirsiniz.
Tekrar ödeme yapmak için payment_sum’i, daha önce oluşturulan bağlantıyı sıfırlamanız ve ardından yeni bir bağlantı almak için payment_sum değişkenini yeniden atamanız gerekir. Önceki değeri belirtebilirsiniz.
Ödemeler nasıl test edilir
Entegrasyonu test etmek için test ortamındaki gizli anahtarı kullanabilirsiniz. Bunun için Stripe kişisel hesabında sağ menüdeki düğmeyi kullanarak test moduna geçin
Sonra, bu kılavuzun başında açıklanan yapılandırmayı yapın. Test gizli anahtarını girin ve webhook adresini test ortamına ekleyin.
Test kart numarası
4242 4242 4242 4242 gelecekte herhangi bir tarih CVC - herhangi üç sayı
Bir şey çalışmıyorsa, verileri resmi sitedeki verilerle karşılaştırın. ссылка resmi sitede.
Son güncelleme