Prodamus Nasıl Eklenir
Prodamus'u eklemek için ödeme formu URL'sine ve gizli anahtara ihtiyacınız var.
Ödeme formu URL'si kayıttan sonra verilir, örneği: demo.payform.ru.
Gizli anahtar kişisel hesaptan alınabilir, aynı yerde bildirimlerin (notification) gönderileceği URL'yi de belirtmeniz gerekir.

Bunun nasıl yapılacağına dair tam kılavuz
Bildirimler için adres:
https://chatter.mavibot.ai/prodamus\_callback/result
Bu adresin ayarlarda iki yerde belirtilmesi gerekir.
Ayarların ana sayfasında ödeme formunun çalışma modu seçilebilir: ödemesiz demo mod veya ödeme kabul modu.

Bildirimler için adresin ödeme sistemi ayarlarında iki yerde belirtilmesi gerekir: "Formu Ayarla" sekmesinde — tek seferlik (olağan) ödemeler için ve "Abonelikler" sekmesinde — abonelik ödemeleri için.

Bildirimler için adres:
https://chatter.mavibot.ai/prodamus\_callback/result
Abonelik ödemeleriyle çalışmayı ayarlamak için "Abonelikler" sekmesine gidin ve bildirimler için adresi belirtin:
https://chatter.mavibot.ai/prodamus\_callback/result

Dikkat! URL adresini girdikten sonra mutlaka "Kaydet" butonuna basın.
Prodamus'u eklemek için "Edinme" bölümüne gitmek gerekir.

Ardından yukarıda belirtilen verileri forma girmek yeterlidir:

Önemli! Ödeme formu URL'sini belirtirken https:// eklemeyin.
Böylece ekleme tamamlandı. Şimdi bu işlevselliğin nasıl kullanılacağına bakalım.
Ödeme Bağlantısı Nasıl Oluşturulur
"Öde" Fonksiyonlu Buton
Ödeme bağlantısı, "Öde" fonksiyonlu butonda oluşturulabilir.
Böyle bir butonun nasıl oluşturulacağı bu makalede anlatılmıştır.
Şimdi bu butonun tüm olası parametrelerine bakalım.
Prodamus İçin "Öde" Butonunun Zorunlu Parametreleri
Ödeme bağlantısı oluşturmak için buton ayarlarında zorunlu parametrelerin belirtilmesi gerekir:
"Tutar", "Ürün Adı" ve ayrıca "Ödenmiş İçerik" parametresi — eğer kendi online kasanız yoksa ve Prodamus'tan fiş almak istiyorsanız.
Sipariş sayfasına gidildiğinde ürün ve fiyatı hakkındaki bilgiler önceden gösterilir ve müşteri sadece kendi iletişim bilgilerini girer.
Buton ayarlarında kullanıcının E-postası ve/veya telefonu belirtilmişse, sipariş sayfasında ödeyenin iletişim bilgileri ile ürün ve fiyatı hakkındaki bilgiler gösterilir.

"Metin" alanı – bu metin, ödeme bağlantılı butonda mesajda gösterilir.
"Fonksiyon" alanı – ödeme bağlantısı veren bir buton oluşturmak için "Öde" fonksiyonu seçilir.
"Ödeme Sistemi" alanı – projeye bağlı ödeme sistemleri listede gösterilir.
Projeye hiçbir ödeme sistemi bağlı değilse, bu buton türü kullanılamaz.
"Ürün Adı" alanı (zorunlu) – ürünün net adını belirtmek gerekir. Örneğin: "Telefon" değil, "Xiaomi akıllı telefonu, model …".
Uyarı: ürün adında çift tırnak işareti kullanılamaz; bunları kaldırın veya tek tırnakla değiştirin.
"Tutar" alanı (zorunlu) – ürünün fiyatını belirtiriz.
"Ek Bilgi" menüsü – bu butona tıklandığında bağlantı oluşturmak için ek alanlar açar:
- Sipariş açıklaması
- Ruble cinsinden indirim
- Alıcının E-posta değişkeni
- Alıcının telefon numarası değişkeni
- Bağlantının geçerlilik süresi
- Abonelik için ürün ID'si (otomatik ödeme için)
- Ödenmiş içerik
"Tıklama Bildirimi" onay kutusu – ödeme bağlantısına gidişi izlemek için işaretlenebilir. Bu durumda butona tıklandığında Salesbot'taki müşteri diyaloğuna, bağlantıya gidildiğine dair bir mesaj gelir.

Bu mesaja göre botun sonraki çalışma mantığı ayarlanabilir.
Birçok ödeme sistemi, 54-FZ gereksinimlerine uygun olarak gerekli olan bulut tabanlı online kasaları destekler.
Seçilen ödeme sisteminin sitesinde fiş düzenlemenin özelliklerini okuyun, vergi dairesiyle zor durumda kalmamak için.
İşte, "Öde" butonundaki bağlantıya tıklandığında açılan ödeme sayfası şöyle görünür:

Ödeme Bağlantısı Oluşturmak İçin Ek Ayarlar

"Sipariş Açıklaması" alanı – bu alana girilen bilgiler ödeme sayfasında Ek Veriler alanında gösterilir.
"İndirim" alanı – burada ruble veya ruble ve kuruş cinsinden indirim miktarı belirtilebilir. Kuruş cinsinden belirtmek için ayırıcı olarak nokta kullanın: 50.99
Ödeme sayfasında Ödenecek Tutar alanında indirim dikkate alınarak gösterilir ve ana ürün fiyatının üzeri çizilir.
"Alıcının E-posta Değişkeni" alanı (isteğe bağlı, eğer telefon numarası verilmişse) – burada kullanıcının (müşterinin) E-postası belirtilir. E-postanın kaydedildiği değişken de kullanılabilir, örneğin: #{email}
"Alıcının Telefon Numarası Değişkeni" alanı (isteğe bağlı, eğer E-posta verilmişse) – burada alıcının telefon numarasının belirtildiği değişken kullanılabilir, format: 79000000000, örneğin: #{phone}
Mutlaka E-posta ve/veya telefon olmalıdır.
"Bağlantının Geçerlilik Süresi" alanı – tarih gg.aa.yyyy ss:dd formatında belirtilebilir (örneğin, 25.01.2021 11:00) veya bağlantının bitiş süresi bir değişken aracılığıyla ayarlanabilir. Örneğin: #{link_expired}
"Abonelik İçin Ürün ID'si" alanı – otomatik ödeme yapmak için ürün ID değerini verin. Abonelik oluşturmak için abonelik ürünü oluşturmak gerekir.
Tam kılavuz: Prodamus abonelikleri oluşturma ve ayarlama
Abonelik için ürün ID'si verilmişse, ödeme tutarı dikkate alınmaz. Ürün hakkındaki bilgiler Prodamus kabinindeki ürün kartından alınır.
Ödemede belirtilen telefon numarası, aboneliği yönetmek için gerekli olacaktır.
Abonelik için ürün ID'si verilmişse, başarılı ödeme durumunda callback'te bu ürünün ID'si verilir.
"Ödenmiş İçerik" alanı (koşullu zorunlu) – bu veriler, eğer kendi online kasanız yoksa, Prodamus aracılığıyla ödemeyi fişleştirmek için gereklidir. Bu alana satın alma açıklaması, fiyatı ve içeriğe bağlantı belirtilir.
Örneğin: 'Örgü Örme' Kursu, fiyatı 3000 ruble, kurs sayfasına bağlantı: https://nbu.su/krasota/master-po-pleteniyu-kos/?yclid=13602995275739430911
"Öde" Fonksiyonlu Buton
Eğer bağlantının geçerlilik süresini belirtirseniz, aşağıdaki durum meydana gelir:
Kullanıcı ödeme bağlantısını geçerlilik süresi içinde (yani bağlantının süresi henüz dolmamışken) talep ederse ve diyalogdaysa, ödeme yapmak mümkün olmaz ve kendisine aşağıdaki mesaj gösterilir:

Bağlantının geçerlilik süresi geçerli tarihten sonra olmalıdır, aksi takdirde müşteri bu bağlantıyla ödeme yapamaz.
2. Kullanıcı bağlantıyı talep ettiğinde, eğer şu anda aktif değilse
Bu durumda buton sadece görünmez. Müşterinin değişkenlerinde "error_payment_button" değişkeni oluşur, değeri şu şekilde olur:
&#xNAN;"Hata: Bağlantının geçerlilik süresi geçerli tarihten sonra olmalıdır".
Kullanıcının ödemeyi doğru yapabilmesi için, böyle bir durumun ek olarak işlenmesi önerilir.
Şu şartlı bloğu oluşturun:
Eğer aşağıdaki mesaj gelirse:
error_payment_button == "Hata: Bağlantının geçerlilik süresi geçerli tarihten sonra olmalıdır"
O zaman aşağıdaki metni gösterin:
&#xNAN;"Üzgünüz, zamanında ödeme yapamadınız, ödeme bağlantısı geçersiz oldu".


"Öde" Fonksiyonlu Buton Kullanıldığında Otomatik Oluşturulan Müşteri Değişkenleri
Kullanıcı "Öde" butonlu bloğu aldığı anda, müşteri için otomatik olarak değişkenler oluşturulur:
Hizmet müşteri değişkeni __payments – bu değişken tutarı ve oluşturulan bağlantının kimliğini saklar ve ödeme sisteminden gelen hook'u tanımlamak için gereklidir.
Hizmet müşteri değişkeni
__paymentssilinemez veya değiştirilemez!
error_payment_button müşteri değişkeni buton oluşturulurken hata oluşursa otomatik olarak oluşturulur.
Bu değişkene hata metni veya ödeme sisteminden gelen hata yanıtı yazılır.
Değişkenlerin değerleri bir sonraki bloğa geçildiğinde güncel olur.
Sonuç Nasıl İşlenir
Başarılı Ödeme
Başarılı ödeme yapıldıktan sonra bot'a OTOMATİK OLARAK CALLBACK gelir, bu, ödeme sisteminin gizli anahtarının ilk 10 karakterinden, _success kelimesinden ve ödeme tutarından oluşur.
Şemada kullanmak için onu kopyalamak yeterlidir.
Örneğin: ovg58keefc_success 44, burada:
-
ovg58keefc– ödeme sisteminin gizli anahtarının ilk 10 karakteri -
_success– talebin işlenme sonucu (başarılı ödeme) -
44– ödeme tutarı
Kullanıcı, ödeme sisteminden gelen callback'leri (mesajları) GÖRMEZ. Bunlar sadece "Müşteriler" sekmesinde gösterilir ve operatöre görünür.
Kullanım örneği:
1. Adım. "Ödeme butonlu" bloğa "Öde" fonksiyonlu butonlar ekleriz.
2. Adım. Bu bloktan "Başarılı Ödeme" bloğuna giden Bağlantı Koşulu alanında callback'i belirtiriz.
Aynı şekilde, eğer "Başlangıç Koşulu" bloğunun koşuluna başarılı ödeme callback'i belirtilirse, çalışma analog olarak gerçekleşir.
Önemli: "Tam Eşleşme" veya "Anahtar Kelimelerin Varlığına Göre" seçeneğini seçin.
❗️Ödemeyi tam koşula göre belirtilen oklarda kontrol etmeye karar verirseniz, şemanızın mantığını dikkatlice düşünün. Eğer müşteri callback ile koşula göre geçen bloğu atlarsa, bloğa geçiş olmaz. Bu tür bir kontrol yöntemini sadece müşterinin hunideki yerini değiştirmediği durumlarda kullanmak daha iyidir.
Müşterinin bloklar arasında hareket ettiği şemalarda, callback'i "Başlangıç Koşulu" bloğunda belirtme seçeneğini kullanmak daha verimlidir.

Otomatik Aboneliği Olan Ürünler İçin Başarılı Ödeme
Başarılı ödeme yapıldıktan sonra bot'a OTOMATİK OLARAK CALLBACK gelir, bu, ödeme sisteminin gizli anahtarının ilk 10 karakterinden, _success kelimesinden ve abonelik ürününün ID'sinden oluşur.
Örneğin: 214009eefc_success 618117, burada:
-
009eefc– ödeme sisteminin gizli anahtarının ilk 10 karakteri -
_success– talebin işlenme sonucu (başarılı ödeme) -
618117– abonelik ürününün ID'si

Başarısız Ödeme
Ödemeyi gerçekleştirmede hata olması durumunda bot'a OTOMATİK OLARAK CALLBACK gelir, bu, ödeme sisteminin gizli anahtarının ilk 10 karakterinden, _fail kelimesinden ve ödeme tutarından oluşur.
Örneğin: ovg58keefc_fail 44, burada:
-
ovg58keefc– ödeme sisteminin gizli anahtarının ilk 10 karakteri -
_fail– talebin işlenme sonucu (ödeme gerçekleştirilemedi veya hata oluştu) -
44– ödeme tutarı
Bu, ödeme sistemine bağlıdır. Tüm ödeme sistemleri ödeme hatası hakkında callback göndermez.
Eğer buton ayarlarında belirtilen tutar, müşterinin ödediği tutardan farklılık gösteriyorsa, bot'a OTOMATİK OLARAK CALLBACK gelir. Bu, ödeme sisteminin gizli anahtarının ilk 10 karakterinden, _different_amounts kelimesinden ve ödemenin benzersiz ID'sinden oluşur.
Мысалы: ovg58keefc_different_amounts 123456, мұндағы:
-
ovg58keefc– төлем жүйесінің құпия кілтінің алғашқы 10 символы -
_different_amounts– сұраныстың өңделу нәтижесі (төлем сомасы сілтемедегі сомадан өзгеше) -
123456– төлемнің бірегей ID-сі
Калькулятордағы get_prodamus_payment_url функциясы
Төлемге сілтеме жасау үшін Калькулятор блокындағы get_prodamus_payment_url функциясын пайдалануға болады.
Калькулятор өрісінде айнымалыға осы функцияның мәнін тағайындаймыз: get_prodamus_payment_url.
Айнымалының атын өзіңіз таңдайсыз. Скриншоттарда айнымалылардың атын беру мысалдары көрсетілген.
Осы айнымалыға төлемге арналған сілтеме жазылады. Айнымалыны хабарламада сілтеме ретінде көрсетуге немесе «Төлеу» мәтіні бар батырмаға орналастыруға болады.
Төлемге сілтеме мысалы: https://payform.kz/7p3JR8/
Калькулятор
Мысал 1:

Параметрлердің сипаттамасы
your_variable =`` get_prodamus_payment_url(amount, product_name, expired, customer_phone, customer_email, discount, description, extra_params, products_for_receipt)
Функция параметрлері:
| Параметр | Параметр мәні |
|---|---|
amount |
Төлем сомасы – бүтін сан немесе нүктемен бөлінген сан ретінде берілуі мүмкін. Мысалы: 25 немесе 52.5. (міндетті параметр) |
product_name |
Тауар атауы (міндетті параметр) |
expired |
Төлем сілтемесінің жарамдылық уақыты – Нақты уақытты көрсету де мүмкін: Стандартты айнымалыларды да қолдануға болады, мысалы, сілтеменің жарамдылығын 30 минутқа орнату:
Егер бұл параметрді өткізіп жібергіңіз келсе, орнына бір тырнақша, қос тырнақша немесе |
customer_phone |
Сатып алушының телефон нөмірі – міндетті емес, егер customer_email параметрі берілсе.Осы параметрді өткізіп жібергіңіз келсе, орнына бір тырнақша немесе қос тырнақша беруге болады. |
customer_email |
Сатып алушының Email мекенжайы – міндетті емес, егер customer_phone параметрі берілсе.Осы параметрді өткізіп жібергіңіз келсе, орнына бір тырнақша немесе қос тырнақша беруге болады. |
discount |
Жеңілдік мөлшері – параметрді бүтін сан немесе нүктесі бар сан ретінде беруге болады: 25 немесе 63.5.Бұл параметрді өткізіп жібергіңіз келсе, орнына бір тырнақша немесе қос тырнақша беруге болады. |
description |
Тауар сипаттамасы (егер көрсетілмесе, автоматты түрде 'Оплата счета order_id' толтырылады).Осы параметрді өткізіп жібергіңіз келсе, орнына бір тырнақша немесе қос тырнақша беруге болады. |
extra_params |
Қосымша параметрлер, осы функцияда жоқ параметрлер. Мысалы:
Бұл параметрді өткізіп жібергіңіз келсе, орнына бір тырнақша/қос тырнақша немесе |
products_for_receipt |
50-тен 4000 символға дейінгі жол форматында Бұл параметр міндетті, егер сізде өзіңіздің онлайн кассаңыз болмаса, Prodamus арқылы төлемді фискализациялау үшін қажет. |
Мысал
extra_params = {"payments_limit": "3"}
products_for_receipt = "Курс ‘Лещ аулау’, бағасы 4999 теңге, курс бетіне сілтеме: <https://www.lovilescha.ru/courses/poimai\_kilogram/" ;
link_prodamus_url = get_prodamus_payment_url( 4999, 'Курс ‘Лещ аулау’', '27.03.2023 17:00', '79167777771', '[email protected]', 20, 'Нарықтағы ең үздік курс', extra_params, products_for_receipt
Бұл мысалда:
-
extra_params– қосымша параметрлер (мысалы, төлем шегі). -
products_for_receipt– чекте көрсетілетін тауар туралы ақпарат. -
get_prodamus_payment_urlфункциясы арқылы төлемге сілтеме жасалады.
Егер блокта бірнеше сілтеме алу функциялары болса және қате жіберілсе, қате мәні
error_payment_funcайнымалысына жазылады.Қате соңғы функция бойынша Калькуляторда жазылады.
payment_sum айнымалысы және қосымша параметрлер арқылы сілтемені жасау
Назар аударыңыз:
payment_sumайнымалысына мән соңғы айнымалыдан беріледі, яғни міндетті емес айнымалылардан кейін:payment_description,product_nameжәне т.б.
Төлемге сілтеме жасау үшін Калькулятор өрісінде payment_sum айнымалысының мәнін орнату жеткілікті.
Осыдан кейін автоматты түрде prodamus_pay_url айнымалысы пайда болады.
Төлемге сілтеме мысалы: https://payform.ru/7p3JR8/
Осы айнымалыны хабарламада сілтеме ретінде көрсетуге немесе «Төлеу» мәтіні бар батырмаға орналастыруға болады.
payment_sum айнымалысын жарияламас бұрын мына міндетті емес айнымалыларды көрсетуге болады:
| Параметры функции | Описание параметра |
|---|---|
| product_name | Тауардың атауы (егер көрсетілмесе, автоматты түрде "Шотты төлеу order_id' толтырылады) – төмендегі скриншотта қай жерде көрсетілетіні көрсетілген. |
| payment_description |
Тауар сипаттамасы (егер көрсетілмесе, автоматты түрде 'Оплата счета order_id' толтырылады) – төмендегі скриншотта қай жерде көрсетілетіні көрсетілген. |
| discount_value |
Жеңілдік мөлшері (мысалы, discount_value = 25 немесе discount_value = 50.25) |
| customer_phone | Сатып алушының телефон нөмірі – міндетті емес, егер басқа параметр берілсе. |
| customer_email | Сатып алушының Email мекенжайы |
| link_expired | Төлем сілтемесінің жарамдылық уақыты – |
| link_expired | Сонымен қатар, нақты уақытты көрсетуге болады, формат: |
| currency |
Төлем валютасы, әдепкі бойынша
Бұл параметр кіші әріптермен берілуі керек. |
| payment_title | Төлем тақырыбы (127 символға дейін). Егер көрсетілмесе, автоматты түрде келесі мәтінмен толтырылады: |
| payment_description | Төлемнің қысқаша сипаттамасы (127 символға дейін) |
| locale | Төлем бетінің тілі – |
| products_for_receipt |
50-тен 4000 символға дейінгі жол форматында Бұл міндетті параметр, егер сізде өзіңіздің онлайн кассаңыз болмаса, Prodamus арқылы төлемді фискализациялау үшін қажет. |
| payment_sum | (міндетті) төлем сомасы |
discount_value,customer_phone,customer_emailvelink_expireddeğişkenleri abonelikler için de geçerlidir.

Uygulama örneği.
İlk blokta ödeme tutarını belirliyoruz:

Bir sonraki adımda gerekli yerde prodamus_pay_url bağlantısını gösteriyoruz:

prodamus_available_payment_methods değişkeni payment_sum bildirilmeden önce tanımlanır.
Olası değerler:
| AC | RF'de çıkarılan kart ile ödeme |
| ACkz | Kazakistan kartı ile ödeme |
| ACf | BDT ülkelerinin kartları ile ödeme, RF hariç |
| ACEURNMBX | Tüm ülkelerin EUR kartı ile ödeme, Rusya ve Beyaz Rusya hariç |
| SBP | Hızlı ödeme, kart bilgilerini girmeden. Rusya kartları için |
| QW | Qiwi wallet |
| PC | Yoomoney |
| GP | Ödeme terminali |
| sbol | Sberbank Online |
| invoice | Fatura ile ödeme |
| installment | Prodamus ile taksitli ödeme |
| installment_5_21 | Prodamus ile 3 ay taksitli ödeme |
| installment_6_28 | Prodamus ile 6 ay taksitli ödeme |
| installment_10_28 | Prodamus ile 10 ay taksitli ödeme |
| installment_12_28 | Prodamus ile 12 ay taksitli ödeme |
| installment_0_0_3 | Tinkoff ile 3 ay taksitli ödeme |
| installment_0_0_4 | Tinkoff ile 4 ay taksitli ödeme |
| installment_0_0_6 | Tinkoff ile 6 ay taksitli ödeme |
| installment_0_0_10 | Tinkoff ile 10 ay taksitli ödeme |
| installment_0_0_12 | Tinkoff ile 12 ay taksitli ödeme |
| installment_0_0_24 | Tinkoff ile 24 ay taksitli ödeme |
| installment_0_0_36 | Tinkoff ile 36 ay taksitli ödeme |
| credit | Tinkoff ile kredi |
| vsegdada_installment_0_0_4 | “VsegdaDa” ile 4 ay taksitli ödeme (available_payment_methods ile çalışmaz) |
| vsegdada_installment_0_0_6 | “VsegdaDa” ile 6 ay taksitli ödeme |
| vsegdada_installment_0_0_10 | “VsegdaDa” ile 10 ay taksitli ödeme |
| vsegdada_installment_0_0_12 | “VsegdaDa” ile 12 ay taksitli ödeme |
| vsegdada_installment_0_0_24 | “VsegdaDa” ile 24 ay taksitli ödeme |
| vsegdada_installment_0_0_36 | “VsegdaDa” ile 36 ay taksitli ödeme |
| sbrf_installment_0_0_6 | Sberbank ile 6 ay taksitli ödeme |
| sbrf_installment_0_0_10 | Sberbank ile 10 ay taksitli ödeme |
| sbrf_installment_0_0_12 | Sberbank ile 12 ay taksitli ödeme |
| sbrf_installment_0_0_24 | Sberbank ile 24 ay taksitli ödeme |
| sbrf_installment_0_0_36 | Sberbank ile 36 ay taksitli ödeme |
| otp_installment_0_0_6 | “OTP Bank” ile 6 ay taksitli ödeme |
| otp_installment_0_0_10 | “OTP Bank” ile 10 ay taksitli ödeme |
| otp_installment_0_0_12 | “OTP Bank” ile 12 ay taksitli ödeme |
| otp_installment_0_0_24 | “OTP Bank” ile 24 ay taksitli ödeme |
| otp_installment_0_0_36 | “OTP Bank” ile 36 ay taksitli ödeme |
| mts_installment_0_0_6 | “MTS Bank” ile 6 ay taksitli ödeme |
| mts_installment_0_0_10 | “MTS Bank” ile 10 ay taksitli ödeme |
| mts_installment_0_0_12 | “MTS Bank” ile 12 ay taksitli ödeme |
| mts_installment_0_0_24 | “MTS Bank” ile 24 ay taksitli ödeme |
| mts_installment_0_0_36 | “MTS Bank” ile 36 ay taksitli ödeme |
| monetaworld | Dünya bankalarının kartları, Rusya hariç |
| sbrf_bnpl | Sber ile taksitli ödeme |
Birden fazla değerin dikey çizgi ile ayrılarak verilmesine izin verilir.
Örneğin:
prodamus_available_payment_methods = "AC|PC|QW"
prodamus_currency – bu, tutarı belirli bir para biriminde göstermeye olanak tanıyan ek bir parametredir.
Olası para birimleri:
-
kzt– tenge için -
eur– euro için -
usd– dolar için
Böylece, bağlantıda belirtilen tutar seçilen para biriminde olacaktır.
payment_callback geri çağrısı alındığında currency ve currency_sum parametrelerine dikkat etmek gerekir; bunlar para birimini ve tutarı gösterir.
Belirtilmezse, ödeme yöntemleri olmayan sayfaya yönlendirilir.
Ödeme yöntemleri destek yoluyla eklenebilir. Eklenen yöntemler sayfa ayarlarından veya ödeme bağlantısı oluşturarak test edilebilir.


Sonucu nasıl işlemeli
Başarılı ödeme
Önemli: Başarılı veya başarısız ödemeden sonra bot'a geri çağrılar (callback) gelir; bunların yardımıyla ödemenin başarılı olup olmadığını belirleyebilirsiniz.
Geri çağrılar sistemde kullanıcıdan gelen mesajlar gibi görünür, ancak kullanıcı bunları gönderemez. Gizli anahtar ve durumun birleşimi şeklindedirler. Örneğin:
453e8fba8b7cef9ce58dc6e18e25b39ad5a05748175a3f205f2b084acbfc3b66_success
veya
453e8fba8b7cef9ce58dc6e18e25b39ad5a05748175a3f205f2b084acbfc3b66_fail
Başarılı ödemeden sonra prodamus_payment_completed değişkeni otomatik olarak True değerini alır.
Not: Geri çağrılar biraz gecikmeli gelir, bu nedenle kullanıcıya bağlantıyı gönderdikten sonra şu mesajı göndermek doğru olur:
“Ödeme yaptıktan sonra ödemenin başarıyla tamamlanmasını bekleyin.”
Geri çağrı yapısı
Ödeme butonu aracılığıyla veya Hesap Makinesi'ndeki fonksiyon aracılığıyla oluşturulan bağlantılar için ödemeden sonra bot'a otomatik olarak bir geri çağrı gelir. İçeriği:
<gizli_anahtar>_success <ödeme_tutarı>
Örneğin:
ovg58keefc_success
-
ovg58keefc– ödeme sisteminin tam gizli anahtarı -
_success– talebin işlenme sonucu (başarılı ödeme)
Pratik kullanım
Başarılı ödeme, koşullu blok aracılığıyla işlenip kullanıcıya uygun mesaj gösterilebilir.

Karşılaştırma türü "Full match" / "Tam eşleşme" olmalıdır
Yeniden ödeme yapmak için mutlaka payment_sum değişkenini sıfırlayıp daha önce oluşturulan bağlantıyı silmek gerekir. Ancak ondan sonra payment_sum değişkenine yeni bir değer atayıp güncellenmiş bağlantıyı alabilirsiniz.
Aboneliği devre dışı bırakma/etkinleştirme
Ayrıca, Prodamus sisteminde aboneliğin etkinleştirildiği veya durdurulduğu hakkında bildirimler vardır:

“Abonelik kullanıcı tarafından devre dışı bırakıldı” – abonelik manuel olarak durdurulursa (örneğin, abonelikten çıkma durumunda).
Bu bildirim, mevcut ödenen dönem bitmeden gelebilir. Eylem size bağlıdır: yok saymak, izlemek veya kullanıcıyı geri kazanmaya çalışmak.
“Abonelik kullanıcı tarafından yeniden etkinleştirildi” – abonelik geri yüklendi.
Bu bildirim, mevcut ödenen dönem bitmeden kullanıcı aboneliği geri yüklerse gelebilir. Eylem size bağlıdır: yok saymak veya izleme listesinden çıkarmak.
“Aboneliği devre dışı bırakma” – birkaç başarısız ödemeden sonra abonelik durdurulduğunda.
Geri çağrıdan değerleri kaydetme
Başarılı ödeme bildirimi geldikten sonra payment_callback değişkenine Prodamus'tan tüm ödeme verilerini içeren geri çağrı yazılır. Bu verileri kaydedip ihtiyacınıza göre kullanabilirsiniz.
Geri çağrı örneği:
{
"date": "2021-03-30T11:44:43+03:00",
"order_id": "757679",
"order_num": "",
"domain": "demo.payform.ru",
"sum": "14.50",
"customer_phone": "+77777777777",
"customer_extra": "Товар",
"payment_type": "Пластиковая карта Visa, MasterCard, МИР",
"commission": "3.5",
"commission_sum": "0.51",
"attempt": "1",
"discount_value": "10.5",
"products[0][name]": "Доступ к обучающим материалам",
"products[0][price]": "14.50",
"products[0][quantity]": "1",
"products[0][sum]": "14.50",
"payment_status": "success",
"payment_status_description": "Успешная оплата",
"payment_init": "manual"
}
Bağlantıyı oluştururken product_name ve payment_description değişkenlerini belirtebilirsiniz. O zaman geri çağrı geldiğinde bunları şu şekilde alabilirsiniz:
product = get(payment_callback,'products[0][name]')
description = get(payment_callback,'customer_extra')

Dikkat: payment_sum değişkenine son değer atanır; bu değer isteğe bağlı değişkenlerden sonra yer alır: payment_description, product_name.
Tutarı şu şekilde alabilirsiniz:
summa = get(payment_callback, 'sum')
Mevcut geri çağrılar
Ana başarılı ödeme geri çağrılarının yanı sıra, sohbette kullanıcının görmediği mesajlar şu şekilde olur:
geri çağrılar
- Abone aboneliği devre dışı bıraktı (daha fazla bilgi burada)
- Abone aboneliği yeniden etkinleştirdi (daha fazla bilgi burada)
- Abonelik sonlandırıldı
- Başarısız ödeme - açıklamalı not (yukarıdaki ekran görüntüsünde)
- Yaklaşan tahsilat bildirimi - yaklaşan tahsilatın tarihi ve saati
- Durumlu taksit başvurusu
Müşteriyle diyalogdaki geri çağrı örnekleri
- Abone aboneliği devre dışı bıraktı
- Abone aboneliği yeniden etkinleştirdi
- Abonelik sonlandırıldı
- Başarısız ödeme - Yetersiz bakiye.
- Başarısız ödeme - Kartın süresi doldu.
- Başarısız ödeme - Kart limiti aşıldı.
- Başarısız ödeme - Kart kayboldu
- Başarısız ödeme - Sistem hatası
- Başarısız ödeme - İşlem reddedildi. Kartı veren bankaya başvurun.
- Başarısız ödeme - İşlemin ihraççı banka tarafından reddedilmesi.
- Başarısız ödeme - İşlemin banka tarafından reddedilmesi.
- Yaklaşan tahsilat bildirimi - gg.aa.yyyy ss:dd
- Taksit başvurusu onaylandı
- Taksit başvurusu iptal edildi
- Taksit başvurusu reddedildi
İsteğinize göre, kullanıcıya herhangi bir mesajın gönderilmesini ayarlayabilirsiniz. Örneğin, otomatik ödeme başarısız olduğunda mesaj göndermek.
Başarısız ödemeye belirli bir nedenle ilgili mesaja yanıt blokları şu şekilde ayarlanabilir:

Tüm başarısız ödemeler için, nedeni ne olursa olsun, mesaj göndermek için aşağıdaki gibi yapılandırabilirsiniz:

Tüm callback'lerde, eğer metinde «Ödeme Başarısız» ifadesi varsa, kullanıcıya sizin belirlediğiniz metinle mesaj gönderilir.
Abonelik Ödemesi Nasıl Yapılır
Abonelik Nasıl Oluşturulur
Abonelik oluşturmak için öncelikle abonelik ürünü oluşturmak gerekir.
Tam kılavuz: Abonelik Nasıl Oluşturulur ve Yapılandırılır
Ardından abonelik ürününün ID'sini kopyalayın. Örneğin, aşağıda nereden alınacağı gösterilmiştir:
Abonelik ödeme bağlantısını oluşturmak için prodamus_subscription değişkenine abonelik ürününün ID'sini atamanız gerekir. Bundan sonra otomatik olarak prodamus_pay_url değişkeni oluşur.
prodamus_pay_url değişkenini ekrana bağlantı olarak çıkarabilir veya «Öde» metni olan bir düğmeye yerleştirebilirsiniz. Bağlantı örneği: https://payform.kz/7p3JR8/
Sonucun işlenmesi tek seferlik ödemede olduğu gibi gerçekleşir (yukarıda okuduğunuz gibi).
Başarılı abonelikten sonra kullanıcıya ödeme sırasında girilen customer_phone değişkeni eklenir. Telefon numarası aboneliği yönetmek için gereklidir.
Eğer customer_email verilmemişse, aboneliği yönetmek için customer_phone zorunludur.
get_prodamus_subscription_url Fonksiyonu ile Abonelik Bağlantısı Nasıl Oluşturulur
Ürüne abonelik ödeme bağlantısı oluşturmanın başka bir yöntemini inceleyelim.
- Prodamus hesabından abonelik ürünü oluşturulur.
Tam kılavuzu şu bağlantıdan inceleyebilirsiniz:
Abonelik Nasıl Oluşturulur ve Yapılandırılır - Ardından abonelik ürününün ID'sini kopyalayın. Örneğin, aşağıda nereden alınacağı gösterilmiştir:
Abonelik ürünü için ödeme bağlantısı almak üzere Hesap Makinesi'nde şu fonksiyonu belirtin:
get_prodamus_subscription_url(subscription_id, product_name, expired, customer_phone, customer_email, discount, description, extra_params, products_for_receipt)
Hesap Makinesi
Örnek 1: Abonelik ürünü için ödeme bağlantısı

Parametre Açıklaması
link = get_prodamus_subscription_url(subscription_id, product_name, expired, customer_phone, customer_email, discount, description, extra_params, products_for_receipt)
Fonksiyonun parametreleri:
| Parametre | Parametre Değeri |
|---|---|
subscription_id |
Abonelik ürününün ID'si – Prodamus hesabından kopyalanabilir (zorunlu parametre). |
product_name |
Ürün adı (zorunlu parametre). |
expired |
Ödeme bağlantısının geçerlilik süresi – gg.aa.yyyy formatında (örneğin, 25.01.2021). Ayrıca «Hesap Makinesi» alanında da belirtilebilir:
Standart değişkenler de kullanılabilir, örneğin bağlantının geçerlilik süresini 30 dakika olarak ayarlamak:
Bu parametreyi atlamak isterseniz, yerine tek veya çift tırnak ya da |
customer_phone |
Ödeme yapanın telefon numarası – zorunlu değil, eğer Bu parametreyi atlamak isterseniz, yerine tek veya çift tırnak verin. |
customer_email |
Ödeme yapanın e-posta adresi – zorunlu değil, eğer Bu parametreyi atlamak isterseniz, yerine tek veya çift tırnak verin. |
discount |
İndirim miktarı – parametre tam sayı veya ondalık sayı olarak verilebilir: 25 veya 63.5. Bu parametreyi atlamak isterseniz, yerine tek veya çift tırnak verin. |
description |
Ürün açıklaması – belirtilmezse, varsayılan olarak Bu parametreyi atlamak isterseniz, yerine tek veya çift tırnak verin. |
extra_params |
Ek parametreler, bu fonksiyonda olmayan parametreler. Örnek:
Bu parametreyi atlamak isterseniz, yerine tek/çift tırnak veya |
products_for_receipt |
50–4000 karakterden oluşan dize, formatı: Örnek: Bu parametre zorunludur, eğer kendi online kasanız yoksa, ödemeleri Prodamus aracılığıyla fişleştirmek için gereklidir. |
Kopyalamak İçin Kod Örneği
extra_params = {"payments_limit": "3"}
products_for_receipt = "Kurs 'Sazan Avı Kursu', aylık abonelik fiyatı 2000 tenge, kurs sayfasına bağlantı: https://www.lovilescha.ru/courses/poimai\_kilogram/"
link_prodamus_sub = get_prodamus_subscription_url(618988, 'Kurs 'Sazan Avı Kursu'', '27.03.2023 17:02', '79167777771', '[email protected]', 20, 'Piyasadaki en iyi kurs', extra_params, products_for_receipt)
Blokta birden fazla fonksiyon aracılığıyla bağlantı alınırken hata oluşursa, hata değeri
error_payment_funcdeğişkenine yazılır.Hata son fonksiyona göre Hesap Makinesi'nde yazılır.
Abonelik Durumu Nasıl Yönetilir
Bu yöntem yalnızca gerçek abonelikler içindir, demo modunda kart bağlantısı yoktur.
Aboneliği yönetmek için mutlaka customer_phone veya customer_email parametrelerinden birinin verilmesi gerekir.
Kullanıcıyı abonelikten çıkarmak için blok oluşturmak ve aşağıdaki fonksiyonu çağırmak gerekir:
delete_subscription_prodamus
Parametre örneği:
{
"customer_phone": "#{customer_phone}",
"id_subscription":"#{prodamus_subscription}",
"url":"https://demo.payform.ru/",
"secret_key":"453e8fba8b7cef9ce58dc6e18e25b39ad5a05748175a3f205f2b084acbfc3b66",
"switcher":"0",
"profile_id":"12345"
}
-
url– ödeme formunun URL'si, yapılandırıcıdaki ayarlardan alınır -
secret_key– ayarlardan alınan gizli anahtar -
id_subscription– abonelik ürününün ID'si -
customer_phone– abonelik sahibinin telefonu -
switcher– aboneliği yönetme:0– aboneliği durdur,1– aboneliği yeniden etkinleştir -
profile_id– Prodamus sistemindeki profil ID'si
Not:
Eğer profil ID'si gelirse, profile_id değişkenine kaydedilir.
profile_id fonksiyona customer_phone veya customer_email yerine verilip aboneliği durdurmak mümkündür.
Örnek: abonelik bloklarını yapılandırma

Fonksiyonun status döndürdüğünü unutmayın, bunu kaydedip kendi isteğinize göre işleyebilirsiniz. Aboneliği başarıyla durdurma veya yeniden etkinleştirme sırasında status = ok olur.
Aboneliği Yönetme Fonksiyonu
prodamus_subscription_switch_status(subscription_id, switcher, customer_phone, customer_email, profile_id) Parametreleri:
subscription_id – abonelik ürününün ID'si
switcher – aboneliği yönetme: 0 – aboneliği durdur, 1 – aboneliği yeniden etkinleştir
customer_phone – abonelik sahibinin telefonu; zorunlu değil, eğer customer_email belirtilmişse
customer_email – abonelik sahibinin e-posta adresi; zorunlu değil, eğer customer_phone belirtilmişse
profile_id – Prodamus sistemindeki profil ID'si

Örnek 1: customer_phone parametresi verilmiş, customer_email atlanmış:
stat = prodamus_subscription_switch_status('618117', '0', '75431312321')
Örnek 2: customer_email parametresi verilmiş, customer_phone atlanmış:
stat = prodamus_subscription_switch_status('618117', '0', '', '[email protected]')
Fonksiyon tüm işlem başarıyla tamamlanırsa
okdöndürür veya hata durumunda hatanın açıklamasını döndürür.
Abonelikte İndirimleri Yönetme
Bu fonksiyon abonelikteki sonraki ödemeler için indirim miktarını ayarlar. İndirim sınırlı veya sınırsız sayıda ödeme için verilebilir.
prodamus_subscription_discount(subscription_id, discount, customer_phone, num, profile_id)
Parametreleri:
-
subscription_id– aboneliğin ID'si -
discount– noktadan sonra iki basamaklı hassasiyetle ondalık sayı; değeri sıfırdan büyük ve aboneliğin taban fiyatını aşmamalıdır -
customer_phone– müşterinin telefon numarası, format:+79999999999(zorunlu değil, eğercustomer_emaildeğişkeni varsa; ilk ödemeden sonra oluşur) -
num– indirimin uygulanacağı ödeme sayısı (zorunlu değil; belirtilmezse, indirim tüm ödemelere uygulanır) -
profile_id– Prodamus sistemindeki profil ID'si
İstek başarıyla yürütülürse, fonksiyon 'ok' döndürür; hata oluşursa, fonksiyon hata açıklamasını döndürür.
İndirim miktarı ve aralığı yalnızca fonksiyon yeni değerlerle tekrar çağrıldığında yeniden yazılır!
Örnekler:
1. Sonraki tüm otomatik ödemelere 1₺ indirim vermek (telefon numarası belirtilmez, çünkü otomatik olarak customer_phone değişkeninden alınır; indirim tutarı varsayılan olarak aboneliğin tüm süresi boyunca uygulanır):
r = prodamus_subscription_discount('624034', '1')
2. Sonraki 3 ödemeye 2₺ indirim verme örneği (telefon numarası boş tırnakla verilmiş, çünkü otomatik olarak customer_phone değişkeninden alınır):
r = prodamus_subscription_discount('624034', '2', '', '3')
3. İndirimi ondalık kesirle belirtme örneği (ayırıcı – nokta, değerler tırnak işareti olmadan belirtilir), telefon numarası değişken aracılığıyla verilebilir.

r = prodamus_subscription_discount(#{prodamus_subscription}, 10.25, #{customer_phone}, 3)
Жазылым бойынша келесі төлемнің датасын қалай орнату керек
Бұл әдіс арқылы жазылым бойынша келесі төлемнің датасын жылжытуға болады. Датаны тек қазіргі орнатылған келесі төлем датасынан «болашаққа» жылжытуға болады, осылайша клубтағы қатысу мерзімін ұлғайтуға болады.
Мысалы, бұл жазылушыларға бонус ретінде қолданылуы мүмкін.
Ол үшін келесі функцияны пайдалану қажет:
prodamus_subscription_payment_date(subscription_id, date, customer_phone, profile_id)
Параметрлері:
-
subscription_id– жазылымның идентификаторы -
date– дд.мм.гггг чч:мм немесе дд.мм.гггг форматында дата; егер тек дд.мм.гггг берілсе, уақыт 00:00 болады -
customer_phone– міндетті емес; егер көрсетілмесе,customer_phoneайнымалысынан алынады; егер табылмаса, функция жұмыс істемейді -
profile_id– Продамус жүйесіндегі профильдің ID-сі
Prodamus-қа параметрлерді қалай жіберуге болады
Керекті параметрлерді (мысалы, жазылымның басталу күні, бөліп төлеуді өшіру және т.б.) Prodamus жүйесіне жіберу үшін айнымалының атауына prodamus_ префиксін қосыңыз.
Содан кейін төлем сілтемесін жасаған кезде, осы айнымалыдағы параметрлер автоматты түрде төлем жүйесіне жіберіледі.
Төлемді қалай тестілеуге болады
Тек төлемді тестілейміз!
Интеграцияны және төлем воронкаларын баптау кезінде сіздің шотыңыздан ақша алынбауы үшін тесттік карталарды пайдалануға болады.
Алдымен төлем бетіңізді ДЕМО режиміне ауыстырыңыз ⤵
«Сақтау» батырмасын басуды ұмытпаңыз.

Тесттік төлем жасау үшін тесттік шоттарды пайдалануға болады.
Сбербанктің тесттік карталары:
МИР
Карта нөмірі: 2202 2050 0001 2424
Жарамдылық мерзімі: 05/35
Артқы жағындағы тексеру коды (CVV): 669
MasterCard
Карта нөмірі: 5469 9801 0004 8525
Жарамдылық мерзімі: 05/26
Артқы жағындағы тексеру коды (CVV): 041
3‑D Secure тексеру коды: 111111
Visa
Карта нөмірі: 4006 8009 0096 2514
Жарамдылық мерзімі: 05/26
Артқы жағындағы тексеру коды (CVV): 941
3‑D Secure тексеру коды: 111111
❗️Тесттік шоттар арқылы төлем жасағанда, барлық бапталған воронкалар мен интеграциялар қалыпты төлемдегі сияқты жұмыс істейді❗️
Форма тексерілген
Нақты төлемдерді қабылдау үшін форма жұмыс режиміне ауысуы қажет. Яғни, демо режимінің ауыстырғышын ашық қызыл күйге келтіру керек.