nepster-web
@nepster-web

Как создать счет перед отправкой платежной формы?

Подключая платежные системы на сайт, я столкнулся с одной интересной проблемой.

Платежная система значения не имеет, но для примера давайте возьмем perfectmoney.

Чтобы подключить perfectmoney на наш сайт нам достаточно разместить платежную форму с определенными данными (обычно это id аккаунта, сумма платежа, номер счета и дополнительные данные типа описания и тп.).

Задача сделать так:
Пользователь заходит на сайт -> выбирает товар или услугу -> нажимает оплатить и попадает на сайт perfectmoney.

Проблема
Проблема заключается в том, что нам нужно подставить в форму номер счета, который должен оплатить пользователь.
Тоесть на момент когда пользователь переходит на страницу сайта с формой оплаты, у нас нет id счета.

Усложнять не нужно
Легко решить проблему, попросив пользователя создать счет, а только потом оплатить. Но это лишнее действие, которое усложняет использование сайта и тз не разрешает так делать!

Есть еще способ
Я заметил вот такой способ:
https://github.com/yii-dream-team/yi...directForm.php

Тоесть мы делаем запрос к своему серверу, создаем счет, генерируем форму для perfectmoney и с помощью js сабмитим форму.
Но а как-же выключенный js ? Да таких пользователей мало, но мы же перфекционисты. На сколько этот способ косячный ?

Из вышеописанного возникает вопрос:
Подскажите пожалуйста как правильно организовать оплату через платежную систему создавая пользователю счет ?
  • Вопрос задан
  • 2448 просмотров
Пригласить эксперта
Ответы на вопрос 4
FanatPHP
@FanatPHP
Чебуратор тега РНР
Решение: Выгнать составителя ТЗ без выходного пособия. Нанять специалиста.

PS. perfectmoney не видел, но ставлю 100 против 1 что "перфекционист" там и двух полей заполнить не сможет.
Ответ написан
@1Rockman
Может быть я не совсем понял, что именно вы хотите, но уже давно работаю с платежными системами и везде один и тот же метод. Номер счета он нужен лично вашему сервису, что бы потом платежная система, когда клиент оплатит, пришлет вам запрос о том, что определенный счет оплачен.

Грубо говоря таблица со счетами
id, user_id, sum, paid

Пользователь c id 777, хочет оплатить 500 рублей, нажимает "оплатить" создается новый счет:
1, 777, 500, false

Потом ваш скрипт отправляет в платежную систему запрос где указывает id счета = 1, и сумму 500 ну и другие данные если требуются.

После того как клиент оплатит, платежная система вам пришлет запрос, что счет с id 1 оплачен на 500 рублей. Вы по этому id определите какой именно пользователь оплатил и сколько и пополните его счет на 500 рублей ну или предоставите ему услугу или товар.

и измените данные в таблице

1, 777, 500, true
Ответ написан
Hakkunamatata
@Hakkunamatata
Зефирный-человек
Но а как-же выключенный js ?

Рабочий способ, не всегда полезно быть перфекционистом. Ведь "лучшее", как известно - враг "хорошего".
Ответ написан
@Centrino
Тут проблема в другом. Как вы собираетесь потом идентифицировать, какой клиент и что оплатил на сайте? Если бы вы были благотворительным фондом, то вам бы достаточно было в поле ID подставить значение времени в микросекундах, к примеру.

Вы описали структуру магазина, без создания заказа в вашей базе, без идентификации стоимости заказа, валюты, привязки к клиенту. Как потом клиент должен обращаться к вам, что бы получить товар? Писать в поддержку с указанием и принскрином платежа из кошелька? Не геморно ли это по сравнению, с созданием заказа.
Планируется ли автоматическая обработка заказов, при возврате данных на ваш return (server, interaction) url? Как вы будете уведомлять клиента, о том, что его заказ оплачен и он его получит в течении времени, или он просто должен ждать, когда менеджер оторвет зад и решит написать клиенту?

Пользователь заходит на сайт -> выбирает товар или услугу -> нажимает оплатить и попадает на сайт perfectmoney.

Описаное вами действие не конечное, после оплаты он должен попасть к вам магазин, что бы сказали что все ок.

Проблема не в js, и не в меньшем кол-ве кликов или на одно действие больше. Проблема в том, как вы будете уведомлять клиентов, не создавая на сайте заказов.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
27 апр. 2024, в 13:22
600 руб./за проект
27 апр. 2024, в 12:46
60000 руб./за проект