Cara menyambung sistem pembayaran

Sistem pembayaran dibina ke dalam Telegram. Untuk menerima pembayaran dalam messenger, anda perlu:

  • Sambungkan sistem pembayaran ke bot anda menggunakan BotFather.
  • Pergi ke tetapan bot yang dikehendaki dan pilih "Pembayaran" dari menu.

Ikut arahan untuk menyambung sistem pembayaran yang tersedia dan salin token yang disediakan.

Cara menghantar invois kepada pelanggan

Untuk menghantar invois dalam Telegram, gunakan kaedah dan nyatakan parameter yang diperlukan.

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 fungsi Penerangan parameter
**!** provider_token (parameter wajib) token yang diperoleh daripada BotFather selepas menyambung sistem pembayaran
**!** platform_id (parameter wajib) ID penerima - pengguna, kumpulan, atau pengecam saluran
**!** title (parameter wajib) tajuk produk, 1–32 aksara
**!** description (parameter wajib) penerangan produk, 1–255 aksara
**!** currency (parameter wajib) mata wang pembayaran (**EUR**, USD, UAH, dll.; untuk butiran lanjut https://core.telegram.org/bots/payments#supported-currencies )
prices

Tatasusunan tatasusunan yang mengandungi butiran harga untuk produk dan perkhidmatan tambahan (penghantaran, pembungkusan, dll.). Dipaparkan pada halaman pembayaran. Jumlah boleh dinyatakan sama ada sebagai integer (cth., 125) atau nombor perpuluhan menggunakan titik (cth., 120.25).

Contohnya: [["product", 2000], ["VAT", 20.75], ["packaging", 100]]

photo_url URL imej produk
payload Bahagian pertama panggil balik pembayaran, lalai adalah tg_payment
protect_content 1 - lindungi daripada penyalinan dan tangkapan skrin, 0 - tiada perlindungan
disable_notification 1 - hantar dengan pemberitahuan, 0 - tanpa pemberitahuan
need_name 1 - perlukan nama penuh pengguna untuk melengkapkan pesanan, 0 - tiada permintaan nama
need_phone_number 1 - perlukan nombor telefon pengguna untuk melengkapkan pesanan, 0 - tiada permintaan nombor telefon
need_email 1 - perlukan e-mel pengguna untuk melengkapkan pesanan, 0 - tiada permintaan e-mel
reply_to_message_id ID mesej untuk dibalas; jika anda ingin menghantar invois sebagai mesej berasingan, gunakan dua petikan tunggal ('')
reply_markup Papan kekunci dengan butang pertama ditetapkan kepada jenis pay
message_thread_id ID topik (tersedia untuk superkumpulan dengan fungsi forum diaktifkan)
provider_data Data invois dalam format JSON untuk dihantar kepada penyedia perkhidmatan pembayaran. Sistem pembayaran harus menyediakan penerangan terperinci tentang medan yang diperlukan.

PENTING! Semua parameter mesti dihantar dalam susunan yang dinyatakan dalam fungsi. Jika anda perlu menentukan parameter tertentu dan meninggalkan yang lain, biarkan nilai kosong atau nilai seperti yang dinyatakan dalam dokumentasi untuk parameter yang tidak anda perlukan.

Contoh:

Jika mana-mana parameter need_name, need_phone_number, atau need_email diaktifkan, pengguna akan diminta untuk memberikan maklumat tersebut sebelum melengkapkan pembayaran. Setelah pembayaran berjaya, data disimpan ke dalam pembolehubah pelanggan yang sepadan.

Contoh:

Hasilnya: data diminta sebelum pembayaran.

Panggil balik pembayaran

Jika pembayaran berjaya, panggil balik dengan kandungan berikut akan dihantar ke sembang pengguna:

tg_payment 1372995196 120.75 USD 2ff747b9-000f-5000-b000-16d7e3517aa', di mana

  1. course_pay - payload - payload daripada permintaan penciptaan invois asal;
  2. 1372995196 - ID sembang tempat invois asalnya dihantar;
  3. 120.75 - jumlah pembayaran keseluruhan;
  4. USD - mata wang;
  5. 2ff747b9-000f-5000-b000-16d7e3517aa9 - ID pembayaran dalam sistem pedagang.

Selain itu, jika nama, nombor telefon, dan/atau e-mel pengguna diminta, pembolehubah yang sepadan akan diberikan kepada pelanggan:

tg_payment_name, tg_payment_phone dan tg_payment_email

Panggil balik kejayaan pembayaran akan dihantar ke mesej terus pengguna dengan bot.

Pengguna mesti mempunyai sembang sedia ada dengan bot (iaitu, mereka mesti telah memulakan atau melanggan bot) sebelum pembayaran dibuat. Jika tidak, bot tidak boleh menghantar mesej terus kepada mereka.

Setelah webhook pembayaran diterima, pembayaran akan disahkan secara automatik melalui kaedah answerPreCheckoutQuery. https://core.telegram.org/bots/api#answerprecheckoutquery

Mesej disemat dengan butang pembayaran

Anda perlu menggunakan ciri penyematan mesej selepas menyambung sistem pembayaran.

tg_pin_chat_message(platform_id, message_id, disable_notification)

Parameter fungsi Penerangan
**!** platform_id ID sembang Telegram *
message_id ID mesej untuk disemat
disable_notification Parameter ini menentukan sama ada pemberitahuan harus dihantar kepada semua ahli sembang tentang mesej yang baru disemat. Pemberitahuan sentiasa dilumpuhkan dalam saluran dan sembang peribadi.
Untuk melumpuhkan pemberitahuan, tetapkan parameter disable_notification kepada 1; jika tidak, gunakan 0.

Contoh:

Langkah 1:
prices = [["course", 100], ["VAT", 20.75]]

result=tg_send_invoice('381764678:TEST:129736', platform_id, 'Course on courses', '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:
Hasil daripada langkah pertama, anda akan menerima respons yang mana anda perlu mengekstrak nilai message_id menggunakan fungsi get().
res=get(result,'result')
m_id=get(res,'message_id')

Seterusnya, sematkan mesej: tg_pin_chat_message(#{platform_id}, #{m_id}, 1)

Contoh: set parameter minimum

prices = [["super course", 100]]

result= tg_send_invoice('381764678:TEST:129736', platform_id, 'Course on courses', 'Creating courses is super easy', 'USD', prices)

Contoh: papan kekunci

prices = [["course", 100], ["VAT", 20.75]]

tg_send_invoice('381764678:TEST:129736', platform_id, 'Course on courses', '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"}]]}')