Как сделать закрытый сайт с оплатой php
Перейти к содержимому

Как сделать закрытый сайт с оплатой php

  • автор:

Как сделать платный доступ к разделам сайта?

На сайте есть разделы которые должны быть доступны только после оплаты пользователем доступа к ним. В качестве платёжной системы использую Яндекс.Деньги. Так же хочу отметить что У каждого пользователя есть свой id. Суть проблемы: как мне в базе данных записать факт того что например пользователь с id оплатил услугу «стандарт»? Ранее пробовал в поле label формы оплаты передавать в виде строки через запятую нужные мне параметры (id пользователя, id оплачиваемой услуги и.т.д), но у этой строки есть ограничение длины в 64 символа да и сам метод костыльный. Есть ли какие-то более рациональные способы сделать вышеописанное?

Отслеживать

задан 30 авг 2018 в 9:43

evseygames evseygames

129 9 9 бронзовых знаков

Сделайте таблицу услуг с ценами. Сделайте связь услуга-пользователь, если пользователь оплатил услугу- добавляем запись в эту таблицу. Далее, если пользователь заходит на закрытую страницу проверяем- есть ли запись в таблице услуг для этого пользователя: есть- пускаем на страницу, нет- редиректим на ошибку.

HTML-форма

Один из основных методов интеграции платежной платформы PayKeeper с сайтом — это вставка обычной HTML формы. При этом можно использовать собственную верстку, CSS стили и элементы оформления, что позволяет достичь значительной гибкости создаваемой формы при сохранении простоты интеграции.

Данный метод будет в первую очередь полезен, если нужно:

  • сделать собственный дизайн формы оплаты;
  • передавать в PayKeeper дополнительную информацию о платеже;
  • собственная сложная логика инициализации оплаты;
  • провести интеграцию с сайтом, который не использует стандартную CMS систему;

Ваша форма оплаты на сайте должна иметь метод POST и action, указывающий на URL /create/ вашего сервера PayKeeper (пример: https://example.server.paykeeper.ru/create/). Форма может передавать следующие поля (используемая кодировка — UTF-8):

Параметр Назначение Обязательный
1 sum Сумма к оплате Да
2 clientid Идентификатор клиента Нет
3 orderid Номер заказа Нет
4 service_name Название услуги Нет
5 client_email Адрес электронной почты Нет
6 client_phone Телефон плательщика Нет
7 pstype Тип платёжной системы Нет
8 sign Цифровая подпись запроса Нет
9 lang Язык оповещений и шлюза банка Нет
10 user_result_callback Адрес перенаправления Нет
11 cart Корзина в JSON для чека 54-ФЗ Нет

Ниже приведён пример HTML-кода простой формы оплаты:

PHP-форма

Во многих случаях удобно загружать форму оплаты стандартными средствами языка программирования вашего сервера. Сделать это можно с использованием обычного POST запроса. Ниже мы рассмотрим пример загрузки и отображения формы на PHP.

Форма со свободной суммой

echo file_get_contents ( «https://demo.paykeeper.ru/form/inline/» ) ;

Результатом будет форма следующего вида:

PHP-POST-form

Вид формы оплаты на сайте

Настройка полей формы производятся в личном кабинете PayKeeper в разделе «Настройка формы оплаты».

Настройка формы оплаты

Форма с изначально заданными параметрами

В случае если предполагается, что в дальнейшем сумму оплаты изменить нельзя, то загрузка формы должна быть произведена POST запросом по URL: https://demo.paykeeper.ru/order/inline/ , где demo.paykeeper.ru необходимо заменить на адрес Вашего сервера. В эту форму оплаты нужно предварительно передать POST параметры: сумму заказа, номер заказа, идентификатор плательщика.

Параметр Назначение
clientid Идентификатор пользователя в системе предприятия. Например, логин на сайте, id в базе данных и т.п.
sum Сумма заказа в рублях. Допустимы дробные значения.
orderid Номер заказа в системе предприятия.
client_phone Номер телефона пользователя.

Ниже приведён пример на PHP с передачей параметров в форму и отображением формы:

Привязка через php платёжной системы к сайту?

Хочу создать сервис , должна быть возможность пополнить счет деньгами с извесных систем оплаты вроде qiwi , webmonet .
1. Никогда не привязывал финансам к сайтам , может есть конкретные примеры скриптов ?
2. Есть ли системы через которых проходит оплата с api .
3.Как вообще происходит эти переводы человек оплачивает через систему , как деньги попадают ко мне , тупой вопрос но ни знаю даже как по другому сформулировать.

ps.Буду рад любому материалу. Да прибудет с вами сила !

  • Вопрос задан более трёх лет назад
  • 4594 просмотра

Комментировать
Решения вопроса 2

Acuna

Заполнил свой профиль

1) У Робокассы, Яндекс.Денег, QIWI и остальных платежек имеются готовые скрипты на PHP.
2) Эти скрипты просто банально обращаются курлой к API этой платежной системы, вот и все.
3) Скрипт делает запрос к API, успешный ответ API платежки должен перекинуть юзера на шлюз самой платежки, где он уже сам делает что ему нужно. Далее платежка сама делает нужные ей запросы на свой же API, и если ей все понравилось — кидает юзера на вашу ссылку (колбек), которую Вы указываете при настройке этой платежки. По этой ссылке Вы уже делаете нужные Вам действия если юзер все оплатил. Либо заносите в БД в колонку количество денег юзера в зависимости от того, сколько он заплатил на предыдущем шаге, либо переадресуете его на какой-то закрытый раздел сайта, и т. д. Тут уже смотря что Вы хотите позволить юзеру после оплаты, это уже Ваш сайт.

А условие, что по этой ссылке нельзя попасть иначе, как только через шлюз платежки после успешной оплаты — должен быть передан токен, который берется из адреса этого колбека и сравнивается с токеном, выданный платежкой после после успешной оплаты. То есть если юзер просто так на нее войдет, ему нужно выдать ошибку, типа не верный токен. Собссно, система весьма примитивная, как это ни парадоксально, самое сложное — это научить Ваш скрипт слать на сервер правильные подписи, чтобы генерился правильный токен, который как раз и будет сравниваться с сервером платежки для перехода на эту Вашу секретную страницу на Вашем сайте. Или пользоваться готовыми скриптами самой платежки, обычно этот процесс намного облегчается этим.

Ответ написан более трёх лет назад
Нравится 3 1 комментарий

Acuna

P. S. И в догонку: деньги попадают на Ваш счет в этой платежке. Как их выводить — зависит от специфики платежки. Но в любом случае, большая их часть умеет выводить даже на Вашу привязанную к платежке карточку. Нал как правило не выдают, либо через довольно мерзкую бумажную волокиту.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *