วิธีตั้งค่า Robokassa

มาดูวิธีรับชำระเงินในบอทผ่านบริการ Robokassa กัน

  1. สร้างร้านค้าออนไลน์ในบัญชีส่วนตัวของบริการ Robokassa และระบุการตั้งค่าทางเทคนิคดังนี้:

สร้างรหัสผ่านทดสอบและทำการตั้งค่าเริ่มต้นในโหมดทดสอบ

วิธีเชื่อมต่อ Robokassa กับ MaviBot?

ไปที่ส่วน "Эквайринг" (การรับชำระเงิน) และคลิก "Подключить" (เชื่อมต่อ) บนการ์ดของ Robokassa:

และกรอกแบบฟอร์มในหน้าต่างที่เปิดขึ้น:

  1. ช่อง Идентификатор магазина (รหัสร้านค้า) — Shop ID ซึ่งคุณสามารถหาได้ในการตั้งค่าร้านค้าในบัญชีส่วนตัวของ Robokassa
  2. รหัสผ่าน #1, รหัสผ่าน #2 — ลำดับตัวเลข+ตัวอักษรที่ไม่ซ้ำกันที่สร้างขึ้น
  3. ช่อง Ставка НДС (อัตราภาษีมูลค่าเพิ่ม) จำเป็นต้องระบุรหัสที่เหมาะสมสำหรับการส่งค่าภาษีมูลค่าเพิ่ม ช่องนี้กำหนดอัตราภาษีในเครื่องบันทึกเงินสดออนไลน์ (ККТ) กำหนดแยกต่างหากสำหรับสินค้าแต่ละประเภท แต่รวมทุกหน่วยของสินค้าเฉพาะนั้น

ใช้กับค่า:

  • ไม่มีภาษีมูลค่าเพิ่ม
  • ภาษีมูลค่าเพิ่มในอัตรา 0%
  • ภาษีมูลค่าเพิ่มในอัตรา 5%
  • ภาษีมูลค่าเพิ่มของใบเสร็จในอัตราคำนวณ 12%
  • ภาษีมูลค่าเพิ่มของใบเสร็จในอัตราคำนวณ 16%

วิธีสร้างลิงก์ชำระเงิน

การสร้างลิงก์ชำระเงินในบล็อกสามารถทำได้ วิธีใดวิธีหนึ่ง จากวิธีที่มี:

ปุ่มที่มีฟังก์ชัน Оплата (ชำระเงิน)

ลิงก์ชำระเงินสามารถสร้างได้ในปุ่มที่มีฟังก์ชัน "Оплата" (ชำระเงิน)

วิธีสร้างปุ่มที่มีฟังก์ชัน "Оплата" (ชำระเงิน) อธิบายไว้ที่นี่

มาดูพารามิเตอร์ที่เป็นไปได้ทั้งหมดของปุ่มนี้ วิธีสร้างปุ่มที่มีฟังก์ชัน Оплата (ชำระเงิน) อธิบายไว้ในบทความนี้:

พารามิเตอร์บังคับของปุ่ม Оплата (ชำระเงิน)

ในการสร้างลิงก์ชำระเงินในการตั้งค่าปุ่ม จำเป็นต้องระบุ พารามิเตอร์บังคับ: Сумма (จำนวนเงิน) และ Наименование товара (ชื่อสินค้า)

ช่อง Сумма (จำนวนเงิน) ในช่องนี้ระบุราคาสินค้าเป็นรูเบิล

ช่อง Наименование товара (ชื่อสินค้า) ในช่องนี้สามารถใช้ได้เฉพาะตัวอักษรภาษาอังกฤษหรือรัสเซีย ตัวเลข และเครื่องหมายวรรคตอน ความยาวสูงสุด — 100 ตัวอักษร ข้อมูลนี้จะแสดงในอินเทอร์เฟซของ Robokassa และในใบเสร็จอิเล็กทรอนิกส์ที่ลูกค้าได้รับหลังจากการชำระเงินสำเร็จ

ห้าม ใช้ เครื่องหมายคำพูดคู่ ในชื่อสินค้า: ให้ลบหรือแทนที่ด้วยเครื่องหมายคำพูดเดี่ยว

ช่องทำเครื่องหมาย Автоплатеж (การชำระเงินอัตโนมัติ) สำหรับเปิดใช้งานการชำระเงินอัตโนมัติ

ช่องทำเครื่องหมาย С уведомление о клике (พร้อมการแจ้งเตือนการคลิก) สำหรับติดตามการคลิกลิงก์ชำระเงิน สามารถทำเครื่องหมายได้ ในกรณีนี้ เมื่อคลิกปุ่ม ข้อความแจ้งเตือนจะถูกส่งไปยังการสนทนากับลูกค้าใน Salebot ว่ามีการคลิกลิงก์แล้ว

การแจ้งเตือนนี้สามารถใช้เพื่อกำหนดค่าลอจิกการทำงานของบอทต่อไปได้

ระบบชำระเงินหลายระบบรองรับเครื่องบันทึกเงินสดออนไลน์บนคลาวด์ ซึ่งจำเป็นตามกฎหมาย 54-FZ
โปรดอ่านคุณสมบัติของการออกใบเสร็จบนเว็บไซต์ของระบบชำระเงินที่เลือก เพื่อหลีกเลี่ยงสถานการณ์ที่ไม่พึงประสงค์กับสำนักงานสรรพากร

สำหรับการสร้างใบเสร็จ

เมนู Данные для формирования чека (ข้อมูลสำหรับสร้างใบเสร็จ) เมื่อคลิกจะเปิดเมนูแบบเลื่อนลงพร้อมพารามิเตอร์สำหรับสร้างใบเสร็จ:

ช่อง Название товара (ชื่อสินค้า) จำเป็นสำหรับการสร้างใบเสร็จ

ห้าม ใช้ เครื่องหมายคำพูดคู่ ใน Название товара (ชื่อสินค้า): ให้ลบหรือแทนที่ด้วยเครื่องหมายคำพูดเดี่ยว

ช่อง Полная сумма в рублях (ยอดรวมเป็นรูเบิล) ในช่องนี้จำเป็นต้องระบุจำนวนเงินที่ต้องชำระรวมตามจำนวนสินค้า หากจำนวนเท่ากับ 1 ยอดรวมเป็นรูเบิลจะเท่ากับค่าในช่อง Сумма (จำนวนเงิน) ในช่องบังคับของการตั้งค่าปุ่ม

ช่อง Количество (จำนวน) จำนวนหรือน้ำหนักของสินค้า สามารถส่งเป็นจำนวนเต็มหรือเศษส่วนโดยใช้จุด ตัวอย่างเช่น 5 หรือ 10.3

ตัวแปรของลูกค้าที่จะถูกสร้างขึ้นโดยอัตโนมัติเมื่อใช้ปุ่มที่มีฟังก์ชัน Оплата (ชำระเงิน)

ทันทีที่ผู้ใช้ได้รับบล็อกที่มีปุ่ม "Оплата" (ชำระเงิน) ตัวแปรของลูกค้าจะถูกสร้างขึ้นโดยอัตโนมัติ:

ตัวแปรบริการของลูกค้า __payments ซึ่งเก็บจำนวนเงิน, รหัสของลิงก์ที่สร้างขึ้น จำเป็นสำหรับการระบุ hook จากระบบชำระเงิน

ตัวแปรบริการของลูกค้า __payments ห้าม ลบหรือแก้ไข!

ตัวแปรของลูกค้า error_payment_button จะถูกสร้างขึ้นหากเกิดข้อผิดพลาดในการสร้างปุ่ม

ในค่าของตัวแปร error_payment_button จะถูกบันทึกเป็นข้อความแสดงข้อผิดพลาดหรือการตอบกลับจากระบบชำระเงินที่มีข้อผิดพลาด

ค่าของตัวแปรจะกลายเป็นจริงเมื่อย้ายไปยังบล็อกถัดไป

วิธีจัดการผลลัพธ์

โปรดทราบ!

Robokassa ส่งการแจ้งเตือนเฉพาะธุรกรรมที่สำเร็จตามพารามิเตอร์ Result URL ไม่มีการแจ้งเตือน (callback) สำหรับการชำระเงินที่ไม่สำเร็จในบริการ Robokassa

Fail URL - เป็นเพียงหน้าแสดงการชำระเงินไม่สำเร็จ ซึ่งผู้ชำระเงินจะถูกเปลี่ยนเส้นทางในกรณีที่เกิดข้อผิดพลาดของรหัสบนหน้าชำระเงิน

การชำระเงินสำเร็จ

หลังจากที่คุณตั้งค่าการชำระเงินอย่างถูกต้องและสร้างลิงก์สำหรับการชำระเงินแล้ว ให้ทดสอบการตั้งค่าที่สร้างขึ้น หากการชำระเงินสำเร็จ โดยอัตโนมัติ จะมีการแจ้งเตือน (callback) ไปยังการสนทนาของลูกค้า (ส่วน "Клиенты" (ลูกค้า)) ซึ่งประกอบด้วยอักขระ 10 ตัวของรหัสลับของระบบชำระเงิน คำว่า _success และตามด้วยยอดชำระเงินคั่นด้วยช่องว่าง การแจ้งเตือน (callback) จะถูกสร้างขึ้นโดยอัตโนมัติ ไม่จำเป็นต้องสร้างเองหรือขอจากฝ่ายสนับสนุนของระบบชำระเงิน

ตัวอย่าง: ovg58keefc_success 2999 โดยที่:

ovg58keefc : อักขระ 10 ตัวของรหัสลับของระบบชำระเงิน

_success : ผลลัพธ์ของการประมวลผลคำขอ (การชำระเงินสำเร็จ)

2999 : ยอดชำระเงิน

การทำงานของบล็อก:

การแจ้งเตือน (callback):

ผู้ใช้ ไม่เห็น การแจ้งเตือน (callback) จากระบบชำระเงิน การแจ้งเตือนจะแสดงเฉพาะในแท็บ "Клиенты" (ลูกค้า) และผู้ให้บริการ/ผู้ดูแลระบบเท่านั้นที่มองเห็น

ตัวอย่างการตั้งค่าการตอบสนองต่อการแจ้งเตือน (callback)

ในบล็อกที่มีเงื่อนไข (อาจเป็นบล็อก "Стартовое условие" (เงื่อนไขเริ่มต้น) หรือบล็อก "Не состояние с условием" (ไม่ใช่สถานะที่มีเงื่อนไข)) จำเป็นต้องระบุการแจ้งเตือน (callback) ที่มาถึงเมื่อชำระเงิน

สำคัญ: เลือกการจับคู่ Полное совпадение (ตรงทั้งหมด) หรือ По наличию ключевых слов (ตามคำสำคัญ)

จากนั้นเมื่อชำระเงิน ลูกค้าจะได้รับข้อความจากบล็อกที่ตั้งค่าการตอบสนองต่อการแจ้งเตือน (callback):

การชำระเงินที่มีข้อผิดพลาด

หากจำนวนเงินที่ระบุในการตั้งค่าปุ่ม แตกต่างจากจำนวนเงินที่ลูกค้าชำระ โดยอัตโนมัติ จะมีการแจ้งเตือน (callback) ไปยังบอท ซึ่งประกอบด้วยอักขระ 10 ตัวของรหัสลับของระบบชำระเงิน คำว่า _different_amounts และตามด้วยรหัสเฉพาะของการชำระเงินคั่นด้วยช่องว่าง

ตัวอย่าง: ovg58keefc_different_amounts 123456 โดยที่:

ovg58keefc : อักขระ 10 ตัวของรหัสลับของระบบชำระเงิน

_different_amounts : ผลลัพธ์ของการประมวลผลคำขอ (ยอดชำระเงินแตกต่างจากจำนวนเงินในลิงก์)

123456 : รหัสเฉพาะของการชำระเงิน

ฟังก์ชัน get_robokassa_payment_url ใน Калькулятор (เครื่องคิดเลข)

ในการสร้างลิงก์ชำระเงิน สามารถใช้ฟังก์ชัน get_robokassa_payment_url ในบล็อก Калькулятор (เครื่องคิดเลข)

ในช่อง Калькулятор (เครื่องคิดเลข) กำหนดค่าของตัวแปรให้กับฟังก์ชัน get_robokassa_payment_url

ชื่อของตัวแปรคุณกำหนดเอง ในภาพหน้าจอเป็นตัวอย่างชื่อตัวแปร

ลิงก์ชำระเงินจะถูกบันทึกลงในตัวแปรนี้ ตัวแปรสามารถแสดงบนหน้าจอเป็นลิงก์ในข้อความหรือวางในปุ่มที่มีข้อความ "Оплатить" (ชำระเงิน)

ตัวอย่างลิงก์ชำระเงิน: https://auth.robokassa.ru/Merchant/Index.aspx?MerchantLogin=test_salebot&OutSum=800&InvId=1412&IsTest=1&SignatureValue=0427369c3bd068bae30935f896060dda

ระบบชำระเงินหลายระบบรองรับเครื่องบันทึกเงินสดออนไลน์บนคลาวด์ ซึ่งจำเป็นตามกฎหมาย 54-FZ
โปรดอ่านคุณสมบัติของการออกใบเสร็จบนเว็บไซต์ของระบบชำระเงินที่เลือก เพื่อหลีกเลี่ยงสถานการณ์ที่ไม่พึงประสงค์กับสำนักงานสรรพากร

Калькулятор (เครื่องคิดเลข)

ตัวอย่างที่ 1:

คำอธิบายพารามิเตอร์

get_robokassa_payment_url(amount, description, products_for_receipt, recurrent, currency)

พารามิเตอร์ของฟังก์ชัน:

พารามิเตอร์ ค่าของพารามิเตอร์
amount

**จำนวนเงินที่ต้องชำระ** ในช่องนี้ระบุราคาสินค้าเป็นรูเบิล

(พารามิเตอร์บังคับ)

description **ชื่อสินค้า** ในช่องนี้สามารถใช้ได้เฉพาะตัวอักษรภาษาอังกฤษหรือรัสเซีย ตัวเลข และเครื่องหมายวรรคตอน ความยาวสูงสุด — 100 ตัวอักษร ข้อมูลนี้จะแสดงในอินเทอร์เฟซของ Robokassa และในใบเสร็จอิเล็กทรอนิกส์ที่ลูกค้าได้รับหลังจากการชำระเงินสำเร็จ
(พารามิเตอร์บังคับ)

products_for_

receipt

**พารามิเตอร์สำหรับสร้างใบเสร็จ**

อ่านรายละเอียดเพิ่มเติม ที่นี่

recurrent **เปิดใช้งานการชำระเงินอัตโนมัติ** หากเปิดใช้งานการชำระเงินอัตโนมัติ ให้ส่งค่า 1 หากปิดใช้งาน ให้ส่งค่า None
currency

**รหัสสกุลเงินสามตัวอักษร**

ต้องส่งค่าตามพารามิเตอร์ที่บริการ Robokassa รองรับอย่างเคร่งครัด
USD - ดอลลาร์สหรัฐ;
EUR - ยูโร;
KZT - เทงเก

ตัวอย่างโค้ดสำหรับคัดลอก
ตัวอย่างที่ 1: ลิงก์ชำระเงินโดยไม่มีใบเสร็จ

res = get_robokassa_payment_url(100, 'Купи меня')

ตัวอย่างที่ 2: ลิงก์ชำระเงินพร้อมใบเสร็จ

receipt = [{"name":"DDDDDDDD","amount":"44","quantity":"1","vat_code":"5","method":"full_payment","object":"commodity"}]

res = get_robokassa_payment_url(100, 'Купи меня', receipt, '3', 1, 1)

ตัวแปรสามารถแสดงบนหน้าจอเป็นลิงก์ในข้อความหรือวางในปุ่มที่มีข้อความ เช่น "Купить" (ซื้อ)

หากในบล็อกมีหลายฟังก์ชันสำหรับรับลิงก์และเกิดข้อผิดพลาด ค่าของข้อผิดพลาดจะถูกบันทึกในตัวแปร error_payment_func


ข้อผิดพลาดจะถูกบันทึกตามฟังก์ชันสุดท้ายใน Калькулятор (เครื่องคิดเลข)

หลังจากที่คุณตั้งค่าการชำระเงินอย่างถูกต้องและสร้างลิงก์สำหรับการชำระเงินแล้ว ให้ทดสอบการตั้งค่าที่สร้างขึ้น

วิธีเพิ่มคำอธิบายการชำระเงิน

คุณสามารถเพิ่มคำอธิบายการชำระเงินได้โดยการตั้งค่าตัวแปร payment_description

คำอธิบายนี้จะแสดงในแบบฟอร์มการชำระเงิน รวมถึงบนใบเสร็จ

วิธีจัดการผลลัพธ์

หากการชำระเงินสำเร็จ โดยอัตโนมัติ จะมีการแจ้งเตือน (callback) ไปยังการสนทนาของลูกค้า (ส่วน "Клиенты" (ลูกค้า)) ซึ่งประกอบด้วยอักขระ 10 ตัวของรหัสลับของระบบชำระเงิน คำว่า _success และตามด้วยยอดชำระเงินคั่นด้วยช่องว่าง การแจ้งเตือน (callback) จะถูกสร้างขึ้นโดยอัตโนมัติ ไม่จำเป็นต้องสร้างเองหรือขอจากฝ่ายสนับสนุนของระบบชำระเงิน

ตัวอย่าง: ovg58keefc_success 1500 โดยที่:

ovg58keefc : 10 ตัวอักษรของรหัสลับของระบบการชำระเงิน

_success : ผลลัพธ์ของการประมวลผลคำขอ (การชำระเงินที่สำเร็จ)

1500 : จำนวนเงินที่ชำระ

โปรดทราบ!

Callback จะมองเห็นได้เฉพาะคุณในการสนทนากับลูกค้าเท่านั้น

ลูกค้าจะไม่เห็น callback แต่คุณสามารถตั้งค่าการตอบสนองต่อการประมวลผลการชำระเงินที่สำเร็จได้

ตัวอย่าง

การตั้งค่าบล็อกด้วยฟังก์ชัน get_robokassa_payment_url:

  1. หากคุณแจกจ่ายลิงก์ในข้อความ:

สำคัญ!

ลิงก์การชำระเงินเป็นลิงก์ที่ไม่ซ้ำกัน: ไม่สามารถคัดลอกและส่งต่อให้ลูกค้ารายอื่นได้!

ส่งลิงก์การชำระเงินผ่านตัวแปรในบอท (ดูรูปที่ 17)

Callback เมื่อชำระเงินสำเร็จ:

  1. ลิงก์ในปุ่ม:

การทำงานของบล็อก:

Callback เมื่อชำระเงินสำเร็จ:

การสร้างลิงก์โดยใช้ตัวแปร payment_sum และพารามิเตอร์เพิ่มเติม

คุณสามารถรับการชำระเงินได้โดยการสร้างลิงก์โดยใช้ตัวแปร payment_sum ซึ่งคุณเพียงแค่ระบุจำนวนเงินที่ชำระ

โปรดทราบ: ตัวแปร payment_sum จะถูกกำหนดค่าเป็นลำดับสุดท้าย หลังจากตัวแปรเสริม payment_description, product_name ฯลฯ

ในการสร้างลิงก์การชำระเงิน คุณต้องตั้งค่าของตัวแปร payment_sum ทันทีหลังจากนั้น ตัวแปร robokassa_pay_url จะปรากฏขึ้น ตัวแปรนี้สามารถแสดงบนหน้าจอเป็นลิงก์หรือวางบนปุ่มที่มีข้อความ "ชำระเงิน"

ตัวอย่างการทำงานของบล็อก (ลิงก์การชำระเงิน):

สำคัญ!

ลิงก์การชำระเงินเป็นลิงก์ที่ไม่ซ้ำกัน: ไม่สามารถคัดลอกและส่งต่อให้ลูกค้ารายอื่นได้!

ส่งลิงก์การชำระเงินผ่านตัวแปรในบอท

ในการส่งลิงก์ในปุ่ม ให้ระบุตัวแปรในปุ่มในฟิลด์ url:

ผลลัพธ์การชำระเงินเมื่อสร้างลิงก์การชำระเงินผ่าน payment_sum

หลังจากชำระเงินสำเร็จ callback จะถูกส่งไปยังบอท callback นี้ในระบบคุณจะเห็นเป็นข้อความจากผู้ใช้ เพื่อป้องกันไม่ให้ผู้ใช้ส่งข้อความเหล่านี้ ข้อความเหล่านี้ประกอบด้วยรหัสผ่านแรกจากบริการ Robokassa และส่วนต่อท้ายสถานะ success เช่น: qxgZ7zkNX4HHnG8UpZ61_success.

นอกจากนี้ หลังจากชำระเงินสำเร็จ ตัวแปร robokassa_payment_completed จะถูกตั้งค่าเป็น True.

callback นี้ ผู้ใช้จะไม่เห็น โดยจะแสดงเฉพาะผู้ดำเนินการเท่านั้น

ประเภทการเปรียบเทียบต้องเป็น "การจับคู่แบบเต็ม"

ในการชำระเงินซ้ำ จำเป็นต้องรีเซ็ต payment_sum และลิงก์ที่สร้างไว้ก่อนหน้านี้ จากนั้นจึงกำหนดค่าตัวแปร payment_sum ใหม่เพื่อรับลิงก์ใหม่

ตัวอย่างการรีเซ็ตตัวแปร:
robokassa_pay_url=''
payment_sum=0

หลังจากเสร็จสิ้นการชำระเงิน ตัวแปร robokassa_callback_data จะถูกเพิ่มให้กับลูกค้า ซึ่งมีข้อมูลการตอบกลับของระบบการชำระเงินเกี่ยวกับธุรกรรมที่ดำเนินการ จากพจนานุกรมที่ได้รับ คุณสามารถดึงข้อมูลที่จำเป็นโดยใช้เมธอด get

วิธีสร้างแผนผังทดสอบ

ตัวอย่างแผนผังที่จะช่วยให้คุณทดสอบและเริ่มทำงานกับบริการ Robokassa ได้อย่างรวดเร็ว:

รูปภาพแสดงตัวอย่างบล็อกแรก ซึ่งผู้ใช้จะถูกถามว่าต้องการชำระเงินเท่าใดь.

รูปภาพด้านล่างแสดงการตั้งค่าลูกศร โดยต้องเปิดสวิตช์ "ผู้ใช้ป้อนข้อมูล" และในฟิลด์ต้องป้อนตัวแปร payment_sum:

จากนั้นในบล็อกการชำระเงินถัดไป ให้เพิ่มปุ่มและตั้งค่าตัวแปร robokassa_pay_url ในบรรทัด url:

แผนผังจะทำงานดังนี้:

เมื่อคลิกที่ปุ่ม จำนวนเงินที่ลูกค้ากำหนดจะพร้อมสำหรับการชำระเงิน

หลังจากชำระเงิน callback จะถูกส่งมา ซึ่งคุณสามารถตั้งค่าการตอบสนองได้

สำคัญ!

ไม่มี callback สำหรับการชำระเงินที่ไม่สำเร็จใน Robokassa

ในการดำเนินการนี้ ให้เพิ่มบล็อกที่มีเงื่อนไขอีกหนึ่งบล็อก และในบรรทัดเงื่อนไข ให้ป้อน callback ในรูปแบบ "qxgZ7zkNX4HHnG8UpZ61_success":

ประเภทการตรวจสอบต้องตั้งค่าเป็น "การจับคู่แบบเต็ม"

แผนผังจะทำงานดังนี้:

วิธีสร้างคำขอสำหรับการออกใบเสร็จ

ในปุ่มที่มีฟังก์ชัน "การชำระเงิน"

เมื่อสร้างปุ่ม ในเมนูแบบเลื่อนลง "ข้อมูลสำหรับการสร้างใบเสร็จ" ให้กรอกฟิลด์ "ชื่อสินค้า", "จำนวนเงินเต็มในรูเบิล", "จำนวน", "อัตราภาษีมูลค่าเพิ่ม", "ระบบภาษี"

รายละเอียดเพิ่มเติมในส่วน "สำหรับการสร้างใบเสร็จ"

โดยใช้ตัวแปร payment_sum

เนื่องจากการสร้างลิงก์เกิดขึ้นเมื่อคุณตั้งค่าของตัวแปร payment_sum คุณต้องกำหนดตัวแปร products_for_receipt และ robokassa_sno

สำคัญ:

  • เมื่อสร้างลิงก์ผ่านตัวแปร payment_sum ระบบภาษีจะถูกกำหนดในตัวแปร robokassa_sno
  • payment_sum ต้องเท่ากับราคารวมของสินค้าทั้งหมด (ผลรวมของพารามิเตอร์ sum ทั้งหมด)

ตัวอย่าง:

session_timeout = 7200

product_name = การชำระเงินครั้งแรก

robokassa_sno = osn

products_for_receipt = [{"name": "ชื่อสินค้า", "quantity": 2, "sum": 2, "tax": "none"}, {"name": "ชื่อสินค้า 2", "quantity": 1, "sum": 6, "tax": "none"}]

payment_sum = 10

สำหรับฟังก์ชัน get_robokassa_payment_url และ robokassa_recurrent_payment

เมื่อเรียกใช้ฟังก์ชัน get_robokassa_payment_url หรือฟังก์ชัน robokassa_recurrent_payment ให้ส่งตัวแปร taxation และ products_for_receipt เป็นอาร์กิวเมนต์ตามคำอธิบายด้านล่าе.

ฟังก์ชันจะเตรียมลิงก์โดยคำนึงถึงระบบการตั้งชื่อสินค้าและสร้างคำขอสำหรับการออกใบเสร็จ

สำคัญ:

ต้องกำหนดตัวแปร taxation และ products_for_receipt สำหรับการชำระเงินแต่ละครั้ง

บริการ Robokassa จะไม่จัดเก็บพารามิเตอร์เหล่านี้และจะไม่สามารถดำเนินการออกใบเสร็จสำหรับการชำระเงินที่ไม่ได้ส่งระบบการตั้งชื่อ

  1. products_for_receipt - อาร์เรย์ที่มีระบบการตั้งชื่อสินค้า

แต่ละหน่วยสินค้าต้องแสดงเป็นพจนานุกรมที่มีพารามิเตอร์ name, quantity, sum, tax, payment_method, payment_object และ nomenclature_code


! products_for_receipt ต้องระบุในรูปแบบต่อไปนี้:

[

{"name": "ชื่อสินค้า", "quantity": "จำนวนสินค้า", "sum": "ราคาสินค้า", "tax": "อัตราภาษีมูลค่าเพิ่ม"},

{"name": "ชื่อสินค้า 2", "quantity": "จำนวนสินค้า 2", "sum": "ราคาสินค้า", "tax": "อัตราภาษีมูลค่าเพิ่ม"}

]

โดยที่

  1. name - ชื่อสินค้า หากในชื่อสินค้าคุณใช้อักขระพิเศษ เช่น เครื่องหมายคำพูด จะต้องทำการ Escape

  2. quantity - จำนวนหรือน้ำหนักของสินค้า (จำนวนเต็มหรือเศษส่วนโดยใช้จุด)

  3. sum หรือ amount (บังคับ, สองชื่อตัวเลือก) - จำนวนเงินเต็มในรูเบิลสำหรับจำนวนสินค้าทั้งหมดนี้ โดยคำนึงถึงส่วนลด โบนัส และราคาพิเศษทั้งหมด

  4. tax หรือ vat_code - (บังคับ, สองชื่อตัวเลือก, ค่าขึ้นอยู่กับชื่อ) - อัตราภาษีมูลค่าเพิ่ม พารามิเตอร์นี้กำหนดอัตราภาษีในเครื่องบันทึกเงินสด

ค่าสำหรับ tax:

ค่า คำอธิบาย
none ไม่มีภาษีมูลค่าเพิ่ม
vat0 ภาษีมูลค่าเพิ่มในอัตรา 0%
vat5 ภาษีมูลค่าเพิ่มในอัตรา 5%
vat12 ภาษีมูลค่าเพิ่มในอัตรา 12%
vat16 ภาษีมูลค่าเพิ่มในอัตรา 16%

ค่าสำหรับ vat_code:

ค่า คำอธิบาย
'1' ไม่มีภาษีมูลค่าเพิ่ม
'2' ภาษีมูลค่าเพิ่มในอัตรา 0%
'8' ภาษีมูลค่าเพิ่มในอัตรา 5%
'15' ภาษีมูลค่าเพิ่มในอัตรา 12%
'14' ภาษีมูลค่าเพิ่มในอัตรา 16%
  1. method หรือ payment_method - (สองชื่อตัวเลือก, พารามิเตอร์เสริม) เครื่องหมายของวิธีการชำระเงิน
ค่าที่เป็นไปได้ของพารามิเตอร์: ความหมายของค่า:
full_prepayment ชำระล่วงหน้า 100% การชำระเงินล่วงหน้าเต็มจำนวนก่อนการโอนสินค้าที่คำนวณ
prepayment ชำระล่วงหน้า การชำระเงินล่วงหน้าบางส่วนก่อนการโอนสินค้าที่คำนวณ
advance เงินจ่ายล่วงหน้า
full_payment การชำระเงินเต็มจำนวน การชำระเงินเต็มจำนวน รวมถึงการชำระล่วงหน้า (การชำระเงินล่วงหน้า) ในขณะที่โอนสินค้าที่คำนวณ
partial_payment การชำระเงินบางส่วนและเครดิต การชำระเงินบางส่วนของสินค้าที่คำนวณในขณะที่โอน โดยมีการชำระเงินเป็นเครดิตในภายหลัง
credit การโอนเป็นเครดิต การโอนสินค้าที่คำนวณโดยไม่มีการชำระเงินในขณะที่โอน โดยมีการชำระเงินเป็นเครดิตในภายหลัง
credit_payment การชำระเครดิต การชำระเงินสำหรับสินค้าที่คำนวณหลังจากโอน โดยมีการชำระเงินเป็นเครดิต (การชำระเครดิต)
  1. object หรือ payment_object - (สองชื่อตัวเลือก, พารามิเตอร์เสริม) รายการที่คำนวณ (หากไม่ส่ง จะเป็น commodity (สินค้า))
ค่าที่เป็นไปได้ของพารามิเตอร์ ความหมายของค่า
commodity สินค้า เกี่ยวกับสินค้าที่ขาย ยกเว้นสินค้าที่ต้องเสียภาษีสรรพสามิต (ชื่อและข้อมูลอื่น ๆ ที่อธิบายสินค้า)
excise สินค้าที่ต้องเสียภาษีสรรพสามิต เกี่ยวกับสินค้าที่ต้องเสียภาษีสรรพสามิตที่ขาย (ชื่อและข้อมูลอื่น ๆ ที่อธิบายสินค้า)
job งาน เกี่ยวกับงานที่ดำเนินการ (ชื่อและข้อมูลอื่น ๆ ที่อธิบายงาน)
service บริการ เกี่ยวกับบริการที่ให้ (ชื่อและข้อมูลอื่น ๆ ที่อธิบายบริการ)
gambling_bet การเดิมพันเกมการพนัน เกี่ยวกับการรับเดิมพันในการดำเนินกิจกรรมการพนัน
gambling_prize รางวัลเกมการพนัน เกี่ยวกับการจ่ายเงินสดเป็นรางวัลในการดำเนินกิจกรรมการพนัน
lottery ตั๋วลอตเตอรี เกี่ยวกับการรับเงินสดในการขายตั๋วลอตเตอรี ตั๋วลอตเตอรีอิเล็กทรอนิกส์ การรับเดิมพันลอตเตอรีในการดำเนินกิจกรรมลอตเตอรี
lottery_prize รางวัลลอตเตอรี เกี่ยวกับการจ่ายเงินสดเป็นรางวัลในการดำเนินกิจกรรมลอตเตอรี
intellectual_activity การให้ผลลัพธ์ของกิจกรรมทางปัญญา เกี่ยวกับการให้สิทธิ์ในการใช้ผลลัพธ์ของกิจกรรมทางปัญญาหรือวิธีการทำให้เป็นรายบุคคล
payment การชำระเงิน เกี่ยวกับเงินจ่ายล่วงหน้า เงินมัดจำ การชำระล่วงหน้า เครดิต เงินสมทบในการชำระเงิน ค่าปรับ ค่าธรรมเนียม ค่าตอบแทน โบนัส และรายการที่คำนวณอื่นที่คล้ายคลึงกัน
agent_commission ค่าตอบแทนตัวแทน เกี่ยวกับค่าตอบแทนของผู้ใช้ที่เป็นตัวแทนชำระเงิน (ตัวแทนย่อย) ตัวแทนชำระเงินธนาคาร (ตัวแทนย่อย) นายหน้า ตัวแทน หรือตัวแทนอื่น ๆ
composite รายการที่คำนวณแบบผสม เกี่ยวกับรายการที่คำนวณซึ่งประกอบด้วยรายการที่แต่ละรายการสามารถกำหนดค่าเครื่องหมายที่กล่าวถึงข้างต้นได้
another รายการที่คำนวณอื่น เกี่ยวกับรายการที่คำนวณที่ไม่เกี่ยวข้องกับรายการที่คำนวณที่กล่าวถึงข้างต้น
property_right สิทธิในทรัพย์สิน
non-operating_gain รายได้ที่ไม่ได้มาจากการดำเนินงาน
insurance_premium เบี้ยประกัน
sales_tax ภาษีการขาย
resort_fee ค่าธรรมเนียมรีสอร์ท
  1. nomenclature_code - (จำเป็นตามเงื่อนไข) รหัสกำกับสินค้า: ส่งในรูปแบบที่พิมพ์อยู่บนบรรจุภัณฑ์ของสินค้า

พารามิเตอร์นี้จำเป็นสำหรับร้านค้าที่ขายสินค้าที่ต้องมีการติดฉลากบังคับเท่านั้น

รหัสกำกับสินค้าอยู่บนบรรจุภัณฑ์ของสินค้า ถัดจากบาร์โค้ด หรือในรูปแบบ QR Code

สำคัญ! สำหรับการออกใบเสร็จ สิ่งสำคัญคือต้องส่งพารามิเตอร์ของใบเสร็จ

รูปแบบใบเสร็จที่ถูกต้องจะถูกส่งดังนี้:

rec = [{"name": "แพ็กเกจ 1 เดือน", "quantity": 1, "sum": 4800, "tax": "none"}]

response = robokassa_recurrent_payment(4800, 'อบรมที่โรงเรียนการบิน Aviator', 'ru', rec, 'osn')

โดยที่ต้องใส่ข้อมูลของคุณเอง

การสร้างใบเสร็จเมื่อรับชำระเงินในหลักสูตรที่หน้าหลักสูตร

ต้องเลือกในส่วน "การชำระเงิน" ในการตั้งค่าหลักสูตร ระบบชำระเงิน Robokassa:

กรอกในส่วน "การรับชำระเงิน" ในการตั้งค่าระบบชำระเงิน (หากยังไม่ได้ทำก่อนหน้านี้) ช่อง "อัตราภาษีมูลค่าเพิ่ม"

ข้อผิดพลาดที่อาจเกิดขึ้น

รหัสข้อผิดพลาด 40

"ไม่สามารถชำระเงินซ้ำด้วยหมายเลขใบแจ้งหนี้เดียวกันได้"

หลังจากชำระเงินสำเร็จ ต้องย้ายบทสนทนาไปที่บล็อก "สิ้นสุดการรวบรวมข้อมูล" เพื่อสร้างหมายเลขการชำระเงินใหม่

รหัสข้อผิดพลาด 34

"บริการการชำระเงินแบบประจำ (Recurring) ไม่ได้รับอนุญาตสำหรับร้านค้า"

รหัสข้อผิดพลาด 31

"จำนวนเงินชำระไม่ถูกต้อง"

ข้อผิดพลาดนี้อาจเกิดขึ้นเมื่อเปลี่ยนเส้นทางลูกค้าไปยังหน้าชำระเงินเพื่อออกใบแจ้งหนี้ หมายความว่าคุณไม่ได้ส่งจำนวนเงินที่ต้องชำระให้เรา หรือส่งจำนวนเงินเป็นศูนย์

รหัสข้อผิดพลาด 29

"พารามิเตอร์ Signature ไม่ถูกต้อง"

สาเหตุอาจมีหลายประการ แต่ทั้งหมดเกี่ยวข้องกับสคริปต์ที่รับผิดชอบการเริ่มต้นการชำระเงิน (โดยเฉพาะส่วนที่สร้างพารามิเตอร์ Signature ตามสูตรที่ประกอบด้วยตัวแปร) ข้อผิดพลาดนี้พบได้บ่อย และนี่คือ 3 สาเหตุที่เป็นไปได้:

  • ประการแรก: MerchantLogin (รหัสร้านค้า) ไม่ถูกต้อง
  • ประการที่สอง: MerchantPass1 (รหัสผ่านที่ 1) ไม่ถูกต้อง
  • ประการที่สาม: คุณใช้พารามิเตอร์เพิ่มเติม (sh**_**) ที่ถูกเพิ่มในโค้ดของเครื่องบันทึกเงินสด แต่ไม่ได้ใส่ในสูตรคำนวณ - หรือในทางกลับกัน ระบุไว้ในสูตรคำนวณ แต่ไม่มีในโค้ด หากมีการใช้พารามิเตอร์ดังกล่าว ให้ส่งตามลำดับตัวอักษร - ทั้งในพารามิเตอร์การชำระเงินและในสูตรคำนวณ Signature

จุดสำคัญ! หากคุณทำงานในโหมดทดสอบ โดยส่งพารามิเตอร์ IsTest=1 หรือเปิดใช้งานด้วยการติ๊กในการตั้งค่าโมดูล/บอท ให้ใช้เฉพาะคู่รหัสผ่านทางเทคนิคสำหรับทดสอบเท่านั้น (แท็บ "การตั้งค่าทางเทคนิค" ของบัตรร้านค้าของคุณ)

รหัสข้อผิดพลาด 23

"ไม่สามารถสร้างการชำระเงินทดสอบได้ ร้านค้าไม่มีการตั้งค่าพารามิเตอร์ทดสอบ"

หมายความว่าก่อนดำเนินการชำระเงินทดสอบ คุณยังไม่ได้กรอกข้อมูลที่จำเป็นทั้งหมดในบล็อก "พารามิเตอร์สำหรับการชำระเงินทดสอบ" ของแท็บ "การตั้งค่าทางเทคนิค"

รหัสข้อผิดพลาด 25

"ร้านค้ายังไม่ได้เปิดใช้งาน"

ข้อผิดพลาดนี้พบได้บ่อย และอาจมี 2 สาเหตุ

  • ประการแรก: เป็นเช่นนั้นจริง - และจำเป็นต้องเปิดใช้งานร้านค้า แล้วจึงออกใบแจ้งหนี้
  • ประการที่สอง: คุณระบุ MerchantLogin (รหัสร้านค้า) ไม่ถูกต้องในการตั้งค่าทางเทคนิคบนเว็บไซต์ ดูรหัสที่ถูกต้องได้ในส่วน "ร้านค้าของฉัน" ของบัญชีส่วนตัว ไปที่แท็บ "การตั้งค่าทางเทคนิค" และค้นหาช่อง "รหัสร้านค้า" คัดลอกรหัสและป้อนในการตั้งค่าเว็บไซต์

วิธีดำเนินการชำระเงินอัตโนมัติของบริการ Robokassa

คำแนะนำทีละขั้นตอนสำหรับการเชื่อมต่อการชำระเงินอัตโนมัติสำหรับบริการ Robokassa

ขั้นตอนที่ 1. เปิดใช้งานการชำระเงินอัตโนมัติในปุ่มชำระเงิน

ไปที่การตั้งค่าบล็อกที่คุณให้ลิงก์สำหรับชำระเงิน และไปที่การตั้งค่าปุ่ม:

จากนั้นในการตั้งค่าปุ่ม ให้ค้นหาช่องทำเครื่องหมาย "การชำระเงินอัตโนมัติ" และเปิดใช้งาน:

หากคุณต้องการรับการชำระเงินอัตโนมัติในปุ่มชำระเงินทั้งหมด คุณสามารถเปิดใช้งานการชำระเงินอัตโนมัติได้ในการตั้งค่าการเชื่อมต่อระบบชำระเงิน:

ขั้นตอนที่ 2. ดำเนินการชำระเงินปกติ

จากนั้นคุณต้องดำเนินการชำระเงินปกติ (รับลิงก์สำหรับชำระเงินและให้ลูกค้าชำระเงิน) ตามที่อธิบายไว้ข้างต้น หลังจากชำระเงินสำเร็จ ลูกค้าจะมีตัวแปร robokassa_previous_invoice_id พร้อมรหัสการชำระเงิน

ตัวแปร robokassa_previous_invoice_id จำเป็นสำหรับการชำระเงินครั้งต่อไป

หากลบออก จะไม่สามารถดำเนินการชำระเงินอัตโนมัติครั้งต่อไปได้

โปรดทราบ!

ปิด ช่องทำเครื่องหมาย "การชำระเงินในโหมดทดสอบ" (หากเปิดใช้งานอยู่) มิฉะนั้น ตัวแปร robokassa_previous_invoice_id พร้อมรหัสการชำระเงินจะไม่ถูกสร้างขึ้น!

ขั้นตอนที่ 3. วางแผนการตัดเงินอัตโนมัติ

จากบล็อกการชำระเงินสำเร็จ ให้วางแผนลูกศรพร้อมตัวจับเวลาไปยังบล็อกที่มีการชำระเงินอัตโนมัติ ตัวอย่างเช่น วางแผนการชำระเงินครั้งต่อไปใน 30 วัน

เพื่อให้การชำระเงินอัตโนมัติทำงานในบล็อกที่ต้องการ ในฟิลด์เครื่องคิดเลข ต้องเพิ่มการเรียกใช้ฟังก์ชัน robokassa_recurrent_payment โดยส่งพารามิเตอร์ตามลำดับที่ระบุ:

  1. payment_amount - จำนวนเงินที่ต้องชำระ (ราคาสินค้าในสกุลเงินรูเบิล)
  2. description - ชื่อสินค้า ในฟิลด์นี้สามารถใช้ได้เฉพาะตัวอักษรภาษาอังกฤษหรือรัสเซีย ตัวเลข และเครื่องหมายวรรคตอน ความยาวสูงสุด — 100 ตัวอักษร ข้อมูลนี้จะแสดงในอินเทอร์เฟซของ Robokassa และในใบเสร็จอิเล็กทรอนิกส์ที่ลูกค้าได้รับหลังจากการชำระเงินสำเร็จ
  3. country - โซนโดเมน ('ru' หรือ 'kz')
  4. products_for_receipt - พารามิเตอร์สำหรับสร้างใบเสร็จ

รายละเอียดเพิ่มเติมในส่วน "วิธีสร้างคำขอออกใบเสร็จ -> สำหรับฟังก์ชัน get_robokassa_payment_url และ robokassa_recurrent_payment"

  1. taxation - ระบบภาษี

รายละเอียดเพิ่มเติมในส่วน "วิธีสร้างคำขอออกใบเสร็จ -> สำหรับฟังก์ชัน get_robokassa_payment_url และ robokassa_recurrent_payment"

ตัวอย่างคำขอชำระเงินอัตโนมัติ:

เมื่อดำเนินการชำระเงินอัตโนมัติ จะต้องไม่มีลิงก์ชำระเงินของ Robokassa และตัวแปร payment_sum!

ขั้นตอนที่ 4. วางแผนการตัดเงินประจำและตั้งค่าความเป็นไปได้ในการยกเลิกการชำระเงินอัตโนมัติ

สำหรับการชำระเงินซ้ำเป็นประจำ ให้วางแผนลูป - ลูกศรพร้อมการหน่วงเวลา เช่น 30 วัน

หากคุณมีตัวเลือกในการยกเลิกการชำระเงินอัตโนมัติ เพื่อไม่ให้มีการชำระเงินครั้งต่อไป คุณต้องลบตัวแปร robokassa_previous_invoice_id ของลูกค้า

โดยในฟิลด์เครื่องคิดเลข ให้ลบตัวแปร:

robokassa_previous_invoice_id = ""

การชำระเงินปกติเมื่อเปิดใช้งานการชำระเงินอัตโนมัติ

หากเปิดใช้งานการชำระเงินอัตโนมัติ แต่ต้องการลิงก์ที่ไม่มีการสมัครสมาชิก (ไม่มีการชำระเงินอัตโนมัติ) ก่อนสร้างลิงก์ ต้องตั้งค่าตัวแปร robokassa_manual_recurrent_disable เป็นค่า 1

ในฟิลด์เครื่องคิดเลข ให้ประกาศตัวแปร:
robokassa_manual_recurrent_disable = 1

โปรดทราบ!

Callback สำหรับการชำระเงินอัตโนมัติจะเหมือนกับ Callback ที่ได้รับเมื่อชำระเงินสำเร็จ

วิธีตั้งค่าการตอบสนองต่อ Callback ได้อธิบายไว้ในส่วน "วิธีประมวลผลผลลัพธ์"

ข้อกำหนดของบริการ Robokassa สำหรับแชทบอท

คำตอบอย่างเป็นทางการจากบริการ Robokassa:

คุณสามารถวางสินค้าบนมาร์เก็ตพร้อมคำอธิบายและป้ายราคา และรับชำระเงินในบอท คุณสามารถสร้างหน้าเดียวพร้อมคำอธิบาย ป้ายราคา ข้อมูลติดต่อ และระบุว่าการจัดส่งสินค้า/การให้บริการเป็นแบบอิเล็กทรอนิกส์ เราต้องมีการเชื่อมโยงกับสินค้าบนมาร์เก็ตหรือเว็บไซต์ เนื่องจากเราไม่สามารถรู้ได้ว่าคุณขายอะไรในบอทของคุณและในบอทใด

เราไม่รวมลิงก์ไปยังช่อง Telegram เป็น URL นอกจากนี้ ข้อกำหนดสำหรับเนื้อหาเว็บไซต์: "เว็บไซต์ต้องทำงานได้ มีเนื้อหาที่สมบูรณ์ ลิงก์ภายในที่ใช้งานได้

สินค้าและบริการบนเว็บไซต์ของคุณต้องมีคำอธิบายโดยละเอียด: คำอธิบายต้องรวมถึงคุณลักษณะของสินค้าและบริการที่นำเสนอ คุณสมบัติสำหรับผู้บริโภค และราคาปัจจุบัน

บนเว็บไซต์ของคุณต้องมีข้อมูลปัจจุบัน: โทรศัพท์ อีเมล กฎการสั่งซื้อและระยะเวลาดำเนินการ เงื่อนไขการชำระเงิน การจัดส่ง และการคืนสินค้า

แต่ละเว็บไซต์จะได้รับการพิจารณาเป็นรายบุคคล

Robokassa ใน Telegram

การเชื่อมต่อบอททดสอบ RobokassaPaymentTestBot

  1. เมื่อเลือก Connect Robokassa Test ผู้ใช้จะไปที่บอท RobokassaPaymentTestBot
  2. ผู้ใช้กดปุ่ม /start
  3. ผู้ใช้ได้รับคำตอบจากบอท "ป้อน ID ร้านค้า"
  4. ต้องป้อน id จากร้านค้าในบริการ Robokassa
  5. บอทจะขอการยืนยัน โดยยืนยันความเป็นเจ้าของร้านค้าผ่านการส่ง SMS ไปยังหมายเลขที่ระบุในร้านค้า: "ส่ง SMS ไปยังหมายเลข *%%%%" โดยที่ %%%% คือเลขท้าย 4 หลักของโทรศัพท์
  6. ผู้ใช้ป้อนรหัส 6 หลัก
  7. หากสำเร็จ ผู้ใช้จะเห็นข้อความ: "คุณเชื่อมต่อบอท @BotName กับ Robokassa สำเร็จแล้ว @BotFather จะแจ้ง Token ใหม่ให้คุณ"
  8. หลังจากนั้น Token การชำระเงินจะปรากฏใน BotFather ซึ่งจะใช้เชื่อมต่อการชำระเงิน

การเชื่อมต่อบอทจริง RobokassaPaymentBot

  1. เมื่อเลือก Connect Robokassa Live ผู้ใช้จะไปที่บอท RobokassaPaymentBot
  2. ผู้ใช้กดปุ่ม /start
  3. ผู้ใช้ได้รับคำตอบจากบอท "ป้อน ID ร้านค้า"
  4. ต้องป้อน id จากร้านค้าในบริการ Robokassa
  5. บอทจะขอการยืนยัน โดยยืนยันความเป็นเจ้าของร้านค้าผ่านการส่ง SMS ไปยังหมายเลขที่ระบุในร้านค้า: "ส่ง SMS ไปยังหมายเลข *%%%%" โดยที่ %%%% คือเลขท้าย 4 หลักของโทรศัพท์
  6. ผู้ใช้ป้อนรหัส 6 หลัก
  7. หากสำเร็จ ผู้ใช้จะเห็นข้อความ: "คุณเชื่อมต่อบอท @BotName กับ Robokassa สำเร็จแล้ว @BotFather จะแจ้ง Token ใหม่ให้คุณ"
  8. หลังจากนั้น Token การชำระเงินจะปรากฏใน BotFather ซึ่งจะใช้เชื่อมต่อการชำระเงิน

การประมวลผลผลลัพธ์การชำระเงินจะเหมือนกับที่อธิบายไว้ ที่นี่