Регистрация
Регистрируясь, вы подтверждаете свое согласие с соглашением об использовании персональных данных.
Восстановление пароля

Вопрос общего характера: как архитектурно решить задачу с Магазином

30.08.2012, 12:56
Finar
Ph&Ph

Зарегистрирован:
2008-03-01
Сообщений: 70

Добрый день!

Задача такая: сделать так, чтобы пользователи могли покупать себе баллы, оплачивая их через интернет-магазин.

У пользователей на сайте будет свой личный счет (баллы). Нужно, чтобы они могли пополнить счет через Интернет-магазин Нетката, оплатив баллы через Яндекс-деньги, к примеру. После подтверждения платежа им на счет должно автоматом зачисляться соответствующее количество баллов.

Отдельный вопрос - разные цены на баллы для разных групп пользователей.

Как архитектурно в общих чертах вы посоветовали бы решать такую задачу?

Если кто-то уже успешно решал именно такую задачу, готовы оплатить консультацию и/или документацию-инструкцию для ее решения или даже реализацию улыбка (в последнем случае потребуется подтверждение вашей квалификации)

директор в ph-ph.ru
31.08.2012, 06:40
Руслан Густокашин
Студия Вэлпис

Зарегистрирован:
2012-02-06
Сообщений: 962

Такую задачу мы успешно реализовывали, готов описать технологию совершенно бесплатно улыбка Решение такое:
1. В компоненте "Интернет-Магазин: товар" создаем специальное поле, например isBilling
2. В модуле "Интернет-магазин" добавляем товар "Пополнение счета", единицы измерения ставим "бал" (баллов), а в поле isBilling ставим единичку. Если не нужно афишировать эту услугу, то можно поместить ее в скрытый раздел.
3. В обработчике платежей, поступающих от платежной системы, делаем анализ платежа и оплаченного заказа. Если заказ оплачен благополучно, то ищем в заказе товары, у которых isBilling=1. Если среди них есть тот самый товар, который мы создали (проверить можно его по Message_ID товара), и количество ненулевое, то определяем, кто сделал заказ (по User_ID), и затем, зная количество баллов и номер пользователя, вызываем функцию пополнения личного счета этого пользователя на соответствующую величину.
Если у вас используется стандартное поле Account в таблице юзеров, то в неткате даже есть готовая функция для пополнения счета. Вызов такой:
$nc_auth->pa_add ( $kolvo_ballov, $userid, "Пополнение личного счета");

Если вы не имели дела с платежными системами, то можете посмотреть исходники обработчиков в модуле "Интернет-магазин" где-то здесь: /netcat/modules/netshop/payment/
Там увидите, к примеру, обработчик платежей ПС "Assist", и в нем можете прописать вышеописанную логику. Могу привести здесь отрывок кода. Или выслать вам за определенную плату готовый скрипт обработки платежных систем, настроенный под вашу задачу и под выбранную вами платежную систему.

Также у нас есть готовый модуль для того, чтобы пользователь мог расходовать имеющиеся баллы на оплату товаров и услуг на сайте, а также перекидывать баллы другому пользователю.
01.09.2012, 02:24
Finar
Ph&Ph

Зарегистрирован:
2008-03-01
Сообщений: 70

Благодарю за ответ, Руслан! Он выглядит вполне убедительно. На следующей неделе я вероятно свяжусь с вами для обсуждения возможности делегирования этой задачи вам.

директор в ph-ph.ru
01.09.2012, 09:30
Руслан Густокашин
Студия Вэлпис

Зарегистрирован:
2012-02-06
Сообщений: 962

Да, если возникнет необходимость, обращайтесь. Вы уже выбрали себе платежную систему, услугами которой пользоваться?
У нас есть готовые обработчики платежей для таких ПС: Робокасса, Ассист, Газпромбанк, RBK-money, и что-то еще было. Больше всего мне понравились RBK-money, т.к. у них очень большой выбор платежных средств - и яндекс.деньги, и терминалы, банковские карты, интернет-банки и различные мобильные способы оплаты. По тарифам, правда, не в курсе.
03.09.2012, 12:26
Finar
Ph&Ph

Зарегистрирован:
2008-03-01
Сообщений: 70

Qiwi и Яндекс-деньги.

директор в ph-ph.ru
03.09.2012, 19:38
Руслан Густокашин
Студия Вэлпис

Зарегистрирован:
2012-02-06
Сообщений: 962

Понятно! А у вас нет желания воспользоваться для этого каким-либо агрегатором платежных систем? Для того, чтобы работать не с несколькими ПС, а с одной системой. Дело в том, что если вы заключите договор с Яндексом, то по ЭТОМУ договору вы сможете работать только в отношении Яндекс.Денег. А если бы вы заключили договор с Ассистом или РБК-мани, то помимо QIWI и Я.Д. у вас в придачу появилась бы еще целая куча способов оплаты (вебмани, банковские карты, смски, интернет-банки и т.д., список как правило огромен). Комиссия ПС-агрегатора обычно невысока.
04.09.2012, 15:46
Finar
Ph&Ph

Зарегистрирован:
2008-03-01
Сообщений: 70

Это решать клиенту, но Qiwi вроде дает достаточно возможностей для него. Assist очень крив, лучше с ним по возможности не работать (по нашему опыту).

директор в ph-ph.ru
04.09.2012, 16:18
Руслан Густокашин
Студия Вэлпис

Зарегистрирован:
2012-02-06
Сообщений: 962

Посмотрел - и правда, Qiwi теперь позволяет принимать платежи как с банковских карт, так и через терминалы, соцсети, и еще кучу всего. Не ожидал. улыбка Раньше у них все было гораздо скромнее.
Тогда, действительно, это будет разумное решение, ведь в последних версиях NetCat даже есть готовый функционал для приема QIWI-платежей, что еще больше упрощает задачу.
05.09.2012, 15:29
malich
Андрей Малков

Зарегистрирован:
2005-08-09
Сообщений: 522

А зачем так усложнять задачу и использовать интернет магазин?
Для онлайн платежей мы пользуемся сервисом robokassa.ru
Для переадресации пользователя на оплату достаточно создать форму со скрытыми полями "сумма оплаты" и "id оплаты".
После успешной оплаты сервис посылает на ваш сайт на скрипт result.php данные о оплате и вы в этом скрипте можете производить необходимые операции.
05.09.2012, 15:52
Руслан Густокашин
Студия Вэлпис

Зарегистрирован:
2012-02-06
Сообщений: 962

Естественно, нет никаких проблем заюзать форму оплаты (хоть робокассы, хоть qiwi) напрямую, без модуля "интернет-магазин". В некоторых проектах, где не было этого модуля, мы именно так и делали.
Но если модуль есть, то грех им не воспользоваться - ведь в нем есть уже готовая функция почтовых уведомлений админов, пользователя, скидки, ну и фактически готовый компонент товаров/услуг и что не менее важно - в модуле есть готовые скрипты обмена с платежными системами.
198 196 2012-09-05 15:52:00 12540
Описание проекта