Здесь показаны различия между двумя версиями данной страницы.
| Следущая версия | Предыдущая версия | ||
|
closed-paid-sample [2011/08/28 10:08] admin создано |
closed-paid-sample [2023/02/07 08:47] (текущий) support |
||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| ====Пример автоматической организации платного доступа к закрытым разделам сайта==== | ====Пример автоматической организации платного доступа к закрытым разделам сайта==== | ||
| + | \\ | ||
| + | **!!! версия под API 2.0 (последняя) доступна здесь:\\ | ||
| + | https://onpaysolutions.ru/pages/onpay_class.html**\\ | ||
| \\ | \\ | ||
| Под закрытым разделом сайта подразумевается часть страницы, доступная только после ввода специального пароля. На ней можно размещать любую информацию, включая html и php скрипты, видео, секретные ссылки на файлы с паролем в своем названиии (например, book34dFs.zip).\\ | Под закрытым разделом сайта подразумевается часть страницы, доступная только после ввода специального пароля. На ней можно размещать любую информацию, включая html и php скрипты, видео, секретные ссылки на файлы с паролем в своем названиии (например, book34dFs.zip).\\ | ||
| Строка 14: | Строка 17: | ||
| $summa=50; //Стоимость доступа к платному разделу, в рублях | $summa=50; //Стоимость доступа к платному разделу, в рублях | ||
| $period=60*60*24*2; //Время доступа, в секундах (60 секунд * 60 минут * 24 часа * 2 суток = 172800 секунд). Исчисляется от времени поступления оплаты за код доступа. | $period=60*60*24*2; //Время доступа, в секундах (60 секунд * 60 минут * 24 часа * 2 суток = 172800 секунд). Исчисляется от времени поступления оплаты за код доступа. | ||
| - | $login='demo'; //Ваше "Имя пользователя" (логин) в системе OnPay.ru | + | $login='demo1'; //Ваше "Имя пользователя" (логин) в системе Onpay.ru |
| - | $key='a2su3ig8y'; //Ваш "Секретный пароль для API IN" в системе OnPay.ru | + | $key='a2su3ig8y'; //Ваш "Секретный пароль для API IN" в системе Onpay.ru |
| /* Для того, чтобы закрыть доступ к папке, данный код необходимо размещать в индексном файле (index.php) */ | /* Для того, чтобы закрыть доступ к папке, данный код необходимо размещать в индексном файле (index.php) */ | ||
| $path='http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']; //Путь к файлу с этим кодом (определяется автоматически), например: http://onpay.ru/dir/index.php | $path='http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']; //Путь к файлу с этим кодом (определяется автоматически), например: http://onpay.ru/dir/index.php | ||
| Строка 126: | Строка 129: | ||
| **sum** - минимальная сумма платежа за доступ к странице \\ | **sum** - минимальная сумма платежа за доступ к странице \\ | ||
| **payed** - сумма платежа (равна или больше sum) \\ | **payed** - сумма платежа (равна или больше sum) \\ | ||
| - | **onpay_id** - номер платежа в системе OnPay.ru \\ | + | **onpay_id** - номер платежа в системе Onpay.ru \\ |
| **date** - срок годности кода (до какой даты), в секундах (Unix Time Format)\\ | **date** - срок годности кода (до какой даты), в секундах (Unix Time Format)\\ | ||
| **ip** - IP-адрес пользователя, создавшего код платежа\\ | **ip** - IP-адрес пользователя, создавшего код платежа\\ | ||
| Строка 132: | Строка 135: | ||
| /api.php | /api.php | ||
| \\ | \\ | ||
| - | ====URL API IN для оповещений от OnPay о пришедших платежах==== | + | ====URL API IN для оповещений от Onpay о пришедших платежах==== |
| \\ | \\ | ||
| <?php | <?php | ||
| $period=60*60*24*2; //Время доступа, в секундах (60 секунд * 60 минут * 24 часа * 2 суток = 172800 секунд). Исчисляется от времени поступления оплаты за код доступа. | $period=60*60*24*2; //Время доступа, в секундах (60 секунд * 60 минут * 24 часа * 2 суток = 172800 секунд). Исчисляется от времени поступления оплаты за код доступа. | ||
| - | $login='demo'; //Ваше "Имя пользователя" (логин) в системе OnPay.ru | + | $login='demo1'; //Ваше "Имя пользователя" (логин) в системе Onpay.ru |
| - | $key='a2su3ig8y'; //Ваш "Секретный пароль для API IN" в системе OnPay.ru | + | $key='a2su3ig8y'; //Ваш "Секретный пароль для API IN" в системе Onpay.ru |
| $db_host='localhost'; //Хост сервера базы данных (домен или IP-адрес) | $db_host='localhost'; //Хост сервера базы данных (домен или IP-адрес) | ||
| $db_user='root'; //Имя пользователя БД | $db_user='root'; //Имя пользователя БД | ||
| Строка 145: | Строка 148: | ||
| if(!mysql_connect($db_host, $db_user, $db_pass)) {echo 'Невозможно подключиться к серверу баз данных';exit;} //Подключение к серверу баз данных | if(!mysql_connect($db_host, $db_user, $db_pass)) {echo 'Невозможно подключиться к серверу баз данных';exit;} //Подключение к серверу баз данных | ||
| if(!mysql_select_db($db_name)) {echo 'Не получилось выбрать базу данных '.$db_name;exit;} //Выбор базы данных | if(!mysql_select_db($db_name)) {echo 'Не получилось выбрать базу данных '.$db_name;exit;} //Выбор базы данных | ||
| - | if($_REQUEST['type']=='check') { //Ответ на запрос check от OnPay (проверка наличия кода в базе данных) | + | if($_REQUEST['type']=='check') { //Ответ на запрос check от Onpay (проверка наличия кода в базе данных) |
| $error=0; | $error=0; | ||
| $order_amount=$_REQUEST['order_amount']; | $order_amount=$_REQUEST['order_amount']; | ||
| Строка 157: | Строка 160: | ||
| if($result) { //Если сохранено в базу данных без ошибок | if($result) { //Если сохранено в базу данных без ошибок | ||
| if(mysql_num_rows($result)) { //Если в базе данных найдена строка с введенным кодом для данной директории и он не просрочен, то отвечаем ОК | if(mysql_num_rows($result)) { //Если в базе данных найдена строка с введенным кодом для данной директории и он не просрочен, то отвечаем ОК | ||
| - | $rezult=answer($_REQUEST['type'],0,$pay_for,$order_amount,$order_currency,'OK'); //Отвечаем серверу OnPay, что все хорошо, можно принимать деньги | + | $rezult=answer($_REQUEST['type'],0,$pay_for,$order_amount,$order_currency,'OK'); //Отвечаем серверу Onpay, что все хорошо, можно принимать деньги |
| } else $error=1; | } else $error=1; | ||
| } else $error=1; | } else $error=1; | ||
| Строка 163: | Строка 166: | ||
| $rezult=answer($_REQUEST['type'],2,$pay_for,$order_amount,$order_currency,'Error code pay_for: '.$code); //Сообщаем ошибку | $rezult=answer($_REQUEST['type'],2,$pay_for,$order_amount,$order_currency,'Error code pay_for: '.$code); //Сообщаем ошибку | ||
| } | } | ||
| - | if($_REQUEST['type']=="pay") { //Ответ на запрос pay от OnPay (прием оплаты за код) | + | if($_REQUEST['type']=="pay") { //Ответ на запрос pay от Onpay (прием оплаты за код) |
| $onpay_id=$_REQUEST['onpay_id']; | $onpay_id=$_REQUEST['onpay_id']; | ||
| $code=$pay_for=$_REQUEST['pay_for']; | $code=$pay_for=$_REQUEST['pay_for']; | ||
| Строка 212: | Строка 215: | ||
| } | } | ||
| echo $rezult; | echo $rezult; | ||
| - | //Функция выдает ответ для сервиса onpay в формате XML на чек запрос | + | //Функция выдает ответ для сервиса Onpay в формате XML на чек запрос |
| function answer($type,$code,$pay_for,$order_amount,$order_currency,$text) { | function answer($type,$code,$pay_for,$order_amount,$order_currency,$text) { | ||
| global $key; | global $key; | ||
| Строка 218: | Строка 221: | ||
| return "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<result>\n<code>$code</code>\n<pay_for>$pay_for</pay_for>\n<comment>$text</comment>\n<md5>$md5</md5>\n</result>"; | return "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<result>\n<code>$code</code>\n<pay_for>$pay_for</pay_for>\n<comment>$text</comment>\n<md5>$md5</md5>\n</result>"; | ||
| } | } | ||
| - | //Функция выдает ответ для сервиса onpay в формате XML на pay запрос | + | //Функция выдает ответ для сервиса Onpay в формате XML на pay запрос |
| function answerpay($type,$code,$pay_for,$order_amount,$order_currency,$text,$onpay_id) { | function answerpay($type,$code,$pay_for,$order_amount,$order_currency,$text,$onpay_id) { | ||
| global $key; | global $key; | ||
| Строка 226: | Строка 229: | ||
| ?> | ?> | ||
| | | ||
| - | ====Подключение уведомления по API в кабинете OnPay==== | ||
| - | \\ | ||
| - | http://secure.onpay.ru/user/login \\ | ||
| - | Логин: demo \\ | ||
| - | Пароль: demodemo \\ | ||
| - | |||