Доступ к странице только после оплаты PayPal? - PullRequest
2 голосов
/ 08 августа 2011

Могу ли я создать страницу, доступную только для людей, которые сделали платеж PayPal?

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

это достаточно простая задача ?? если да, то как мне это сделать, и есть ли какие-нибудь учебники онлайн >>

это просто простой двухстраничный сайт, который я создаю, ничего сложного ....

я сейчас использую стандартную кнопку PayPal, но я не уверен, что это так просто

<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="V6RE5BUJCBAPU">
<input type="image" src="https://www.paypalobjects.com/en_US/GB/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" alt="PayPal — The safer, easier way to pay online.">
<img alt="" border="0" src="https://www.paypalobjects.com/en_GB/i/scr/pixel.gif" width="1" height="1">
</form>

Ответы [ 2 ]

2 голосов
/ 08 августа 2011

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

Если это так, вы можете установить переменную SESSION или COOKIE, а на своей «целевой» странице (той, к которой они могут получить доступ только после оплаты) вы можете проверить, была ли установлена ​​SESSION или COOKIE или нет.Если нет, перенаправьте их на страницу оплаты.

Пример

Используйте что-то вроде:

<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
    <input type="hidden" name="return" value="http://www.yourwebsite.com/index.php?payment=success" />
</form>

Итак, после оплатысделано, пользователь перенаправлен на index.php? payment = success и там вы прочитали сообщение от PayPal:

<?php
    $req = "cmd=_notify-synch";
    $tx_token = $_GET['tx'];
    $auth_token = "<your auth token here>";
    $req .= "&tx=$tx_token&at=$auth_token";

    //Post back to Paypal system to validate:
    $header .= "POST /cgi-bin/webscr HTTP/1.0\r\n";
    $header .= "Content-Type: application/x-www-form-urlencoded\r\n";
    $header .= "Content-Length: " . strlen($req) . "\r\n\r\n";

    $fp = fsockopen('ssl://www.paypal.com', 443, $errno, $errstr, 30);
    if (!$fp) {
        //HTTP ERROR
    }
    else {
        fputs($fp, $header . $req);

        //Read body data:
        $res = '';
        $headerdone = false;
        while (!feof($fp)) {
            $line = fgets($fp, 1024);
            if (strcmp($line, "\r\n") == 0) {
                $headerdone = true;
            }
            else{
                $res .= $line;
            }
        }

        //Parse the data:
        $lines = explode("\n", $res);
        $keyarray = array();
        if (strcmp($lines[0], "SUCCESS") == 0) {
            //Checks the payment_status is completed
            //check that txn_id has not been previously processed
            for ($i = 0; $i < count($lines); $i++) {
                list($key, $val) = explode("=", $lines[$i]);
                $keyarray[urldecode($key)] = urldecode($val);
            }
        }

        //Process payment:
        $firstname = $keyarray['first_name'];
        $lastname = $keyarray['last_name'];

        //etc... you can either insert the payment data into your database for future reference
        //Or set up a COOKIE for the user to be able to download your file.
        //Or if your payment has been successful, redirect him to a "secret" page where the file is visible.
    }
?>
0 голосов
/ 08 августа 2011

Будет много вариантов решения вашей проблемы, и один из них может быть следующим.

Вы можете создать страницу обработчика IPN Paypal, которая обновляет вашу базу данных при совершении платежа. Затем вы можете вручную обработать все платежи и позволить этим пользователям просматривать ограниченный контент. [Я предполагаю, что у вас есть какая-то система управления пользователями и вы можете разрешить / запретить пользователям просматривать некоторый контент.]

Просто к сведению, когда вы создаете кнопку PayPal, вы также можете указать URI страницы успеха и URI неудачной / отмененной страницы.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...