Від автора: у цьому уроці я хотів би поговорити про те, як організувати на своєму сайті механізм прийому коштів Webmoney. Хоча це і нескладне завдання, однак, є деякі моменти, пов’язані з безпекою платежів, які необхідно обов’язково враховувати. Тому в даному уроці ми детально розглянемо механізм прийому платежів Webmoney.
В даному відео ми будемо говорити про найбільш популярний метод прийому Webmoney через сервіс Merchant WebMoney Transfer. Даний сервіс дуже зручний і з його допомогою можна швидко і легко впровадити необхідні елементи на свій сайт, щоб почати приймати кошти WebMoney за Ваші товари або послуги.
План уроку
1. Основні вимоги для прийому коштів webmoney.
2. Налаштування торгового гаманця.
3. Формування платежу.
4. Форма попереднього запиту.
5. Форма оповіщення про платіж.
6. Форма виконаного платежу.
7. Форма не виконаного платежу.
Деталі підручника
Тема: PHP
Складність: Середня
Урок: Відео (.mp4)
Час: 00:56:57
Розмір архіву: 139 Mb
1. Основні вимоги для прийому коштів webmoney
Спочатку давайте визначимося, що потрібно для прийому коштів WebMoney:
Першим ділом, звичайно ж, Ви повинні зареєструватися в системі WebMoney, тобто отримати WMID (іншими словами ідентифікатор) і створити собі гаманець, на який будуть надходити кошти. У цьому уроці я не буду розповідати як зареєструватися в системі WebMoney і як створювати гаманці, так як це займе багато часу.
Ваш WMID, для використання в системі Merchant WebMoney Transfer повинен мати атестат продавця. Даний атестат можна отримати, виконавши всі вимоги сервісу Webmoney. Більш докладно, про те, що таке атестат і як його отримати – дивіться за посиланням: https://passport.webmoney.ru/asp/WMCertify.asp. Звичайно атестат продавця можна і не отримувати, достатньо мати початковий або персональний атестат, але при цьому будуть накладені великі обмеження, на виконання різних операцій, знову ж таки про ліміти більш докладно дивіться за посиланням.
2. Налаштування торгового гаманця
Тепер, коли Ви виконали два попередні умови, давайте перейдемо на сайт сервісу Merchant WebMoney Transfer – за посиланням.
Далі авторизируемся, для цього перейдіть за посиланням Login:
Мені зручніше реєструватися, використовуючи програму Webmoney Keeper, а Ви робіть так, як Вам зручніше. Після реєстрації Вас перенаправляють на сторінку огляду Ваших гаманців і навпроти кожного гаманця є посилання налаштувати (change).
Дана посилання веде на сторінку зміни налаштувань гаманця, які необхідні для прийому коштів. Тому навпроти того гаманця, на який Ви плануєте брати кошти Webmoney, переходьте за посиланням налаштувати (change).
Тепер докладніше по текстових полів:
Торгове ім’я – це торгове ім’я платник буде бачити на сторінці Merchant WebMoney Transfer перед оплатою, тобто це звичайне інформаційне поле.
Secret Key – довільна рядок 15 – 20 символів, для забезпечення безпеки платежу. Дану рядок будете знати тільки Ви, і сервіс Merchant WebMoney Transfer. Так само дана рядок буде використовуватися для перевірки справжності платежу, але про це далі.
Result URL – адреса сторінки на веб-сайті продавця), на яку сервіс Merchant WebMoney Transfer посилає HTTP POST оповіщення про здійснення платежу з його детальними реквізитами. Дана сторінка буде використовуватись для всіляких перевірок правильності платежу. Адреса цієї сторінки, ніхто крім Вас знати не повинен і користувачі при оплаті, переходити на неї так само не будуть. Вона як проміжна – і її завдання перевірити справжність платежу. Також ставимо галочку навпроти рядка — Передавати параметри в попередньому запиті.
Success URL — адреса сторінки на веб-сайті продавця), на яку буде переведений інтернет-браузер покупця у разі успішного виконання платежу.
Fail URL — адреса сторінки на веб-сайті продавця), на яку, буде переведений інтернет-браузер покупця в тому випадку, якщо платіж не був виконаний з якихось причин.
Навпаки Success URL і Fail URL вибираємо в якості методу передачі даних – метод POST.
Дозволяти використовувати URL, що передаються у формі — дана опція нам не потрібна, тому галочку ставити не потрібно.
Відсилати сповіщення про помилку платежу на кіпер – якщо включити дану опцію, то сервіс Merchant WebMoney Transfer буде відправляти по внутрішній WM-поштою повідомлення в разі виникнення помилки при здійсненні платежу користувачем. Дана опція буде корисною, тому галочку активуємо.
Метод формування контрольної підпису – краще вибрати MD5. Дана можливість нам буде потрібно при перевірці достовірності платежу. Але про це далі по ходу уроку.
Тестовий/Робочий режими – якщо вибрати тестовий режим, прийом коштів буде працювати в тестовому режимі, при якому, гроші з гаманця платника списуватися не будуть. Тому даний режим використовуйте тільки на етапі тестування. А потім активуйте робочий режим.
Прийом чеків Paymer.com (ВМ-карт) або WM notes – на ваш розсуд.
Прийом платежів через термінали, банкомати, каси магазинів — на ваш розсуд.
Після зміни конфігурації натискаємо кнопку зберегти. Якщо ви плануєте брати кошти на кілька гаманців, то для кожного гаманця потрібно виконати аналогічні налаштування.
3. Формування платежу.
Для початку формування платежу сервіс Merchant WebMoney Transfer має отримати певний набір параметрів. Наприклад, суму платежу, кому переводити гроші і т. д.
Тобто перед тим як відправляти дані в сервіс Merchant WebMoney Transfer (перед тим як користувач натисне кнопку оплатити замовлення), Ви повинні отримати і підрахувати все, що потрібно для оплати замовлення – загальну вартість замовлення, найменування товарів, інформацію про користувача, який оплачує замовлення. В принципі – це вже Вам вирішувати, які дані потрібні для правильного оформлення замовлення.
Після цього, користувач перекладається на спеціальну сторінку для оплати замовлення, в якій міститься форма запиту платежу. Ось приклад цієї сторінки:
Товари в замовленні:….
Сума замовлення : 10000
Головне на цій сторінці це форма запиту платежу – то є звичайна форма з певним набором прихованих полів (поля які потрібні для проведення платежу), імена яких задає сам сервіс Merchant WebMoney Transfer і змінювати їх не можна. Звичайно, Ви можете додати додаткові свої поля, в яких будете передавати, дані, які потрібні Вам для роботи, але ці поля, ні як не будуть враховуватися самим сервісом (імена цих полів не повинні мати префікс LMI_).
Атрибут action=https://merchant.webmoney.ua/lmi/payment.asp форми – повинен мати тільки таке значення, тобто він містить шлях до обробника форми (сервіс Merchant WebMoney Transfer). Так само, при відправки форми можна заздалегідь визначити спосіб (варіант) оплати, наприклад, якщо в атрибуті action, вказати ось таке значення — https://merchant.webmoney.ru/lmi/payment.asp?at=authtype_8, то це означає, що оплату необхідно здійснити з гаманця Webmoney. Усі доступні способи позиціонування оплати можна подивитися в офіційній документації сервісу.
Тепер давайте розглянемо, які приховані поля необхідно відправляти для платежу. Відразу хочу сказати, що всі поля ми з Вами розглядати не будемо, так як їх дуже багато, ми розглянемо лише основні:
LMI_PAYMENT_AMOUNT — Сума платежу, яку ми повинні отримати від покупця, дробова частина відокремлюється крапкою.
LMI_PAYEE_PURSE – Гаманець на який надійдуть засобу. Формат — буква і 12 цифр.
LMI_PAYMENT_DESC – Опис товару (максимальна довжина 255 символів). Текст повинен бути кодирован кодування cp-1251.
Це були обов’язкові поля. Без них неможливо виконати платіж.
Єдине зауваження по полю LMI_PAYMENT_DESC. Якщо Ви плануєте в описі платежу використовувати символи, кодовані кодуванням UTF – 8, необхідно замість цього поля використовувати полі — LMI_PAYMENT_DESC_BASE64.
Тепер кілька необов’язкових полів:
LMI_PAYMENT_NO — номер купівлі — дане поле потрібно використовувати у відповідності з тим, як Ви нумеруете товари або замовлення. При формуванні номера – краще використовувати унікальні значення (наприклад, ідентифікатор товару чи замовлення). Даний номер, так само допоможе отримати швидку інформацію про платіж в системі Merchant WebMoney Transfer.
LMI_SIM_MODE – режим тестування. Може приймати одне з наступних значень: 0 або відсутній: для тестових платежів сервіс буде імітувати успішне виконання; 1: сервіс буде імітувати виконання з помилкою (платіж не виконано); 2: Близько 80% запитів на платіж будуть виконані успішно, а 20% — не виконані.
FIELD_1, FIELD_2, FIELD_3 – поля, які Ви можете додати на свій розсуд. Наприклад, дані про покупця і т. д.
Даних полів цілком достатньо, що б надіслати запит про платіж і успішно його виконати. Повний список всіх можливих полів, можна подивитися на офіційному сайті сервісу в розділі документація.
4. Форма попереднього запиту.
Після того, як користувач відправить цю форму, тобто натисне кнопку сплатити – він буде перенаправлений на сервіс Merchant WebMoney Transfer, і одночасно з ним, в даний сервіс потраплять дані форми (методом POST).
Сервіс запропонує кілька способів оплати, наприклад, якщо вибрати вкладку WebMoney Keeper і натиснути далі, буде відкрито програму WebMoney Keeper і її спеціальне віконце, в яке потрібно ввести графічну капчу, яку надає сервіс Merchant WebMoney Transfer. Після введення покупець побачить ось таку сторінку:
Тобто тепер йому необхідно просто вибрати гаманець для оплати і підтвердити платіж.
Але погодьтеся, що дані, які передаються через форму – дуже легко підробити та передати, наприклад, зовсім іншу суму оплати за товар. Як такого уникнути?
Для цього і необхідно буде виконати певні перевірки. Дивіться, коли користувач підтвердить платіж, то перед тим як зняти гроші з його гаманця, сервіс Merchant WebMoney Transfer відправляє користувачу спеціальну форму попереднього запиту. Дана форма передає нам (продавцям) параметри платежу, який буде виконаний. І якщо при налаштуванні, гаманця приймаючого кошти, Ви поставили галочку напроти пункту — Передавати параметри в попередньому запиті, то сторінка RESULT URL, повинна обов’язково повернути рядок «YES», інакше платіж не буде виконаний. Іншими словами, отримавши дані, ми можемо перевірити їх на свій розсуд і якщо все вірно — повернути рядок «YES», тільки тоді платіж буде виконаний.
Ось приклад форми попереднього запиту.