Підключення Робокасса до сайту
Скрипт узятий з сайту Робокасса, але я змінив його трохи, що б Ви зрозуміли як саме потрібно підключати свої поля до Робокасса.
Зараз не перевіряв, але раніше при відправці даних кирилицею назад поверталися каракулі і взагалі не правильно перевірялися дані в результаті чого неправильно працював скрипт Робокасса. Я вирішив цю проблему, розберемо її далі в скрипті.
Завдання у нас буде така
Після заповнення їх, користувач повинен перейти на сторінку оплати і оплатити послугу або товар на Вашому сайті або на що продає сторінці.
Після оплати дані про покупця будуть записуватися в файл. Чому в файл, тому що це найпростіше, я не став писати багато коду, що б Вас не запитати. А взагалі краще в базу заносити дані.
Я представлю Вам 5 файлів скрипта: обробник, сторінка успішної оплати, сторінка не успішної оплати, сторінка фонової обробки даних і файл, який зберігає номер наступного замовлення.
Налаштування магазину Робокасса
Картку магазину і валюти ви налаштовуєте самі, нічого складного там немає.
У вкладці технічні налаштування Вам потрібно заповнити такими даними, як показано на зображенні.
1. Ідентифікатор магазину - вбиваємо будь-яке слово, зазвичай я пишу доменне ім'я свого сайту без зони (обов'язково латинськими).
2-3. Пароль # 1 і пароль # 2 на ваш розсуд, головне що б не збігалися і запам'ятайте їх або запишіть кудись, потім використовуємо їх в скриптах.
5-6. Інші файли також вказуємо як на картинці.
Метод відсилання даних скрізь повинен стояти POST.
Налаштування скриптів Робокасса
Сторінку з формою показувати не буду, думаю там Тож усе зрозуміло, звичайна проста форма та й все.
Action.php
У цьому файлі ми приймаємо параметри відправлені з форми і відразу ж перекидаємо користувача на сторінку з оплатою.
Можна звичайно було зробити попередній запис інформації в базу даних, але я не став писати багато коду, що б вас не запитати.
Як ви помітили, я приймаю дані і відразу їх кодую в base64_encode і urlencode, через те що Робокасса не може нормально приймати українські символи. Не знаю чому розробники через 5 років вже ніяк не можуть допив це нормально.
Result.php
Цей файл відповідає за прийом даних, які відправляє Робокасса в фоновому режимі. Тобто людина на цю сторінку не потрапляє. Після оплати скрипт Робокасса відсилає дані на цю сторінку, а вона в свою чергу вже обробляє отримані дані і перевіряє чи була оплата чи ні. Як Ви вже помітили ми конвертуємо отримані дані в зворотний нормальний режим використовуючи функції urldecode (base64_decode ());
Після конвертації ми заносимо дані в файл last_order.txt
Також ми Перезаписуємо файл count.txt з новим номером замовлення.
Success.php
На цю сторінку буде направлений користувач після успішної оплати. У ній так само можна перевірити чи пройшла оплата чи ні і потім щось робити. Наприклад в цьому скрипті я перевіряю, якщо оплата пройшла успішно, то перенаправляю користувача на головну сторінку сайту з GET запитом /? Order = ok а на головній сторінці вже можна написати jquery скрипт, який буде перевіряти чи був get запит такої.
Я зробив у себе ось так:
Тобто ми показуємо модальне вікно, "Оплата пройшла успішно".