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 __payments silinemez 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

Төлем сілтемесінің жарамдылық уақытыдд.мм.гггг форматында (мысалы, 25.01.2021).
Сонымен қатар, Калькулятор өрісінде былай көрсетуге болады:
expired = current_date + 2 (сілтеме 2 күн бойы 00:00-ге дейін жарамды болады).

Нақты уақытты көрсету де мүмкін: дд.мм.гггг чч:мм (мысалы, 25.01.2021 12:23).

Стандартты айнымалыларды да қолдануға болады, мысалы, сілтеменің жарамдылығын 30 минутқа орнату:

time = current_time + 30
expired = "#{current_date} #{time}"

Егер бұл параметрді өткізіп жібергіңіз келсе, орнына бір тырнақша, қос тырнақша немесе None мәнін беруге болады.

customer_phone Сатып алушының телефон нөмірі – міндетті емес, егер customer_email параметрі берілсе.
Осы параметрді өткізіп жібергіңіз келсе, орнына бір тырнақша немесе қос тырнақша беруге болады.
customer_email Сатып алушының Email мекенжайы – міндетті емес, егер customer_phone параметрі берілсе.
Осы параметрді өткізіп жібергіңіз келсе, орнына бір тырнақша немесе қос тырнақша беруге болады.
discount Жеңілдік мөлшері – параметрді бүтін сан немесе нүктесі бар сан ретінде беруге болады: 25 немесе 63.5.
Бұл параметрді өткізіп жібергіңіз келсе, орнына бір тырнақша немесе қос тырнақша беруге болады.
description Тауар сипаттамасы (егер көрсетілмесе, автоматты түрде 'Оплата счета order_id' толтырылады).
Осы параметрді өткізіп жібергіңіз келсе, орнына бір тырнақша немесе қос тырнақша беруге болады.
extra_params

Қосымша параметрлер, осы функцияда жоқ параметрлер.
Қолжетімді қосымша параметрлерді төлем жүйесінің API-мен жұмыс істеу құжаттамасынан қарауға болады: Prodamus REST API

Мысалы:

extra_params = {"payments_limit": "3", "payment_method": "vsegdada_installment_0_0_6"}

Бұл параметрді өткізіп жібергіңіз келсе, орнына бір тырнақша/қос тырнақша немесе None мәнін беруге болады.

products_for_receipt

50-тен 4000 символға дейінгі жол форматында "тапсырыс сипаттамасы - баға - сатып алынатын ресурсқа сілтеме".
Мысалы:
“Курс ‘Лещ аулау’, бағасы 4999 рубль, курс бетіне сілтеме: https://www.lovilescha.ru/courses/poimai_kilogram/"

Бұл параметр міндетті, егер сізде өзіңіздің онлайн кассаңыз болмаса, 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

Төлем сілтемесінің жарамдылық уақытыдд.мм.гггг форматында (мысалы, 25.01.2021).
Сонымен қатар, Калькулятор өрісінде былай көрсетуге болады:
link_expired = current_date + 2 (сілтеме 2 күн бойы 00:00-ге дейін жарамды болады).

link_expired

Сонымен қатар, нақты уақытты көрсетуге болады, формат: дд.мм.гггг чч:мм (мысалы, 25.01.2021 12:23).
Стандартты айнымалыларды да пайдалануға болады, мысалы, сілтеменің жарамдылық уақытын 30 минутқа орнату:
time = current_time + 30 link_expired = "#{current_date} #{time}"

currency

Төлем валютасы, әдепкі бойынша "rub".
Толық аргументтер тізімі:

  • rub
  • usd
  • eur
  • kzt

Бұл параметр кіші әріптермен берілуі керек.

payment_title

Төлем тақырыбы (127 символға дейін). Егер көрсетілмесе, автоматты түрде келесі мәтінмен толтырылады:
Шотты төлеу payment_id” (payment_id – MaviBot-тағы тапсырыс идентификаторы).

payment_description Төлемнің қысқаша сипаттамасы (127 символға дейін)
locale

Төлем бетінің тіліen-US, fr-XC және т.б. форматта көрсетіледі. Әдепкі мән – ru-RU.
Толық тізімді мына сілтемеден қарауға болады

products_for_receipt

50-тен 4000 символға дейінгі жол форматында "тапсырыс сипаттамасы - баға - сатып алынатын ресурсқа сілтеме".
Мысалы:
“Курс ‘Лещ аулау’, бағасы 4999 теңге, курс бетіне сілтеме: https://www.lovilescha.ru/courses/poimai_kilogram/"

Бұл міндетті параметр, егер сізде өзіңіздің онлайн кассаңыз болмаса, Prodamus арқылы төлемді фискализациялау үшін қажет.

payment_sum (міндетті) төлем сомасы

discount_value, customer_phone, customer_email ve link_expired değ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 Ürünü Oluşturma

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.

  1. 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
  2. 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ü Oluşturma

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:

expired = current_date + 2  # bağlantı 2 gün geçerli olur, saat 00:00'a kadar

expired parametresi belirli bir saatle de belirtilebilir, format: gg.aa.yyyy ss:dd (örneğin, 25.01.2021 12:23).

Standart değişkenler de kullanılabilir, örneğin bağlantının geçerlilik süresini 30 dakika olarak ayarlamak:

time = current_time + 30
expired = "#{current_date} #{time}"

Bu parametreyi atlamak isterseniz, yerine tek veya çift tırnak ya da None değeri verebilirsiniz.

customer_phone

Ödeme yapanın telefon numarası – zorunlu değil, eğer customer_email parametresi verilmişse.

Bu parametreyi atlamak isterseniz, yerine tek veya çift tırnak verin.

customer_email

Ödeme yapanın e-posta adresi – zorunlu değil, eğer customer_phone parametresi verilmişse.

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 'Оплата счета order_id' doldurulur.

Bu parametreyi atlamak isterseniz, yerine tek veya çift tırnak verin.

extra_params

Ek parametreler, bu fonksiyonda olmayan parametreler.
Olası ek parametreler ödeme sisteminin API belgelerinden incelenebilir:
Prodamus REST API Kılavuzu

Örnek:

extra_params = {"payments_limit": "3"}

Bu parametreyi atlamak isterseniz, yerine tek/çift tırnak veya None değeri verebilirsiniz.

products_for_receipt

50–4000 karakterden oluşan dize, formatı: "sipariş açıklaması - fiyat - satın alınan kaynağa bağlantı"

Örnek:
«Sazan Avı Kursu» kursu, fiyatı 4999 tenge, kurs sayfasına bağlantı: https://www.lovilescha.ru/courses/poimai_kilogram/.

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_func değ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 ok dö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ğer customer_email değ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

❗️Тесттік шоттар арқылы төлем жасағанда, барлық бапталған воронкалар мен интеграциялар қалыпты төлемдегі сияқты жұмыс істейді❗️

Форма тексерілген

Нақты төлемдерді қабылдау үшін форма жұмыс режиміне ауысуы қажет. Яғни, демо режимінің ауыстырғышын ашық қызыл күйге келтіру керек.