Cara menyambung pembekal pembayaran
Telegram mempunyai sistem pembayaran terbina dalam. Untuk menerima pembayaran dalam Telegram, anda perlu:
- Sambungkan pembekal pembayaran ke bot anda melalui BotFather.
- Buka tetapan bot anda dalam BotFather dan pilih Payments.


Ikut arahan untuk menyambung salah satu pembekal pembayaran yang tersedia, kemudian salin token pembekal yang dihasilkan.



Cara menghantar invois
Untuk menghantar invois dalam Telegram, gunakan fungsi berikut:
tg_send_invoice(
provider_token,
platform_id,
title,
description,
currency,
prices,
photo_url,
payload,
protect_content,
disable_notification,
need_name,
need_phone_number,
need_email,
reply_to_message_id,
reply_markup,
message_thread_id,
provider_data
)
| Parameter | Penerangan |
|---|---|
| provider_token | Wajib. Token pembekal yang diterima daripada BotFather selepas menyambung pembekal pembayaran anda. |
| platform_id | Wajib. Pengecam penerima (ID pengguna, kumpulan, atau saluran). |
| title | Wajib. Tajuk produk (1–32 aksara). |
| description | Wajib. Penerangan produk (1–255 aksara). |
| currency | Wajib. Mata wang pembayaran (contoh: EUR, USD, UAH). Lihat senarai mata wang yang disokong: https://core.telegram.org/bots/payments#supported-currencies |
| prices | Tatasusunan yang menerangkan item invois. Setiap item mengandungi tajuk dan jumlah. Jumlah boleh menjadi integer atau nombor perpuluhan. Contoh: [["Product", 2000], ["VAT", 20.75], ["Packaging", 100]]
|
| photo_url | URL gambar produk. |
| payload | Muatan tersuai yang dikembalikan dalam panggilan balik pembayaran. Lalai: tg_payment. |
| protect_content |
1 — lindungi kandungan daripada penyalinan dan tangkapan skrin.0 — tiada perlindungan. |
| disable_notification |
1 — hantar secara senyap.0 — hantar dengan pemberitahuan. |
| need_name |
1 — minta nama penuh pelanggan.0 — jangan minta. |
| need_phone_number |
1 — minta nombor telefon pelanggan.0 — jangan minta. |
| need_email |
1 — minta alamat e-mel pelanggan.0 — jangan minta. |
| reply_to_message_id | ID mesej untuk dibalas. Gunakan '' untuk menghantar invois sebagai mesej berasingan. |
| reply_markup | Konfigurasi papan kekunci. Butang pertama mesti mempunyai jenis pay. |
| message_thread_id | ID topik untuk kumpulan super yang didayakan forum. |
| provider_data | Objek JSON dengan data pembayaran khusus pembekal. Rujuk dokumentasi pembekal pembayaran anda untuk medan yang diperlukan. |
Penting
Parameter mesti dihantar dalam susunan tepat seperti yang ditunjukkan di atas.
Jika anda perlu melangkau parameter pilihan, biarkan kosong atau hantar nilai lalai yang diterangkan dalam dokumentasi.
Contoh

Jika mana-mana parameter berikut diaktifkan:
need_nameneed_phone_numberneed_email
Telegram akan meminta pelanggan untuk maklumat yang diminta sebelum pembayaran.
Selepas pembayaran berjaya, maklumat yang dikumpul secara automatik disimpan ke pembolehubah pelanggan yang sepadan.
Contoh:

Panggilan balik pembayaran
Selepas pembayaran berjaya, Telegram menghantar panggilan balik berikut kepada bot:
tg_payment 1372995196 120.75 USD 2ff747b9-000f-5000-b000-16d7e3517aa9
Di mana:
-
tg_payment— nilai muatan yang ditentukan semasa membuat invois. -
1372995196— ID sembang tempat invois asalnya dihantar. -
120.75— jumlah pembayaran. -
USD— mata wang pembayaran. -
2ff747b9-000f-5000-b000-16d7e3517aa9— ID pembayaran yang dikembalikan oleh pembekal pembayaran.

Jika maklumat pelanggan diminta, pembolehubah pelanggan berikut juga akan diisi secara automatik:
tg_payment_nametg_payment_phonetg_payment_email

Panggilan balik pembayaran dihantar ke sembang peribadi pengguna dengan bot.
Pengguna mesti sudah memulakan perbualan dengan bot sebelum membuat pembayaran. Jika tidak, Telegram tidak dapat menghantar mesej panggilan balik.
Selepas menerima webhook pembayaran, MaviBot secara automatik mengesahkan pembayaran menggunakan kaedah
answerPreCheckoutQuery.
Menyemat mesej invois
Selepas menyambung pembekal pembayaran, anda boleh menyemat mesej invois.
Gunakan fungsi:
tg_pin_chat_message(platform_id, message_id, disable_notification)
| Parameter | Penerangan |
|---|---|
| platform_id | ID sembang Telegram. |
| message_id | ID mesej untuk disemat. |
| disable_notification | Mengawal sama ada Telegram menghantar pemberitahuan tentang mesej yang disemat.1 — tiada pemberitahuan.0 — hantar pemberitahuan.Pemberitahuan sentiasa dilumpuhkan dalam sembang peribadi dan saluran. |
Contoh
Langkah 1
prices = [["Course", 100], ["VAT", 20.75]]
result = tg_send_invoice(
'381764678:TEST:129736',
platform_id,
'Course',
'Creating courses is easy',
'USD',
prices,
'https://salebot.pro/promo.png',
'course_pay',
'0',
'0',
'1',
'1',
'1',
'',
'{"inline_keyboard":[[{"text":"Pay","pay":"True"}]]}'
)
Langkah 2
Ekstrak message_id daripada respons:
res = get(result, 'result')
m_id = get(res, 'message_id')

Kemudian semat mesej:
tg_pin_chat_message(#{platform_id}, #{m_id}, 1)
Contoh: parameter minimum yang diperlukan
prices = [["Super course", 100]]
result = tg_send_invoice(
'381764678:TEST:129736',
platform_id,
'Course',
'Creating courses is super easy',
'USD',
prices
)

Contoh: invois dengan papan kekunci sebaris
prices = [["Course", 100], ["VAT", 20.75]]
tg_send_invoice(
'381764678:TEST:129736',
platform_id,
'Course',
'Creating courses is easy',
'USD',
prices,
'https://mavibot.ai/promo.png',
'course_pay',
'0',
'0',
'1',
'1',
'1',
'',
'{"inline_keyboard":[[{"text":"Pay","pay":"True"}],[{"text":"Another button","callback_data":"Another button"}]]}'
)
