Paypal PDT (перенаправление после оплаты) и IPN (за кадром) - это именно то, что вам нужно.
Проверьте это: https://www.paypal.com/cgi-bin/webscr?cmd=p/xcl/rec/pdt-intro-outside
Вот пример кода для сценария длямгновенное начало работы:
https://www.paypal.com/us/cgi-bin/?cmd=p/xcl/rec/pdt-code-outside
Несколько дополнительных советов по безопасности: проверьте сумму, валюту и идентификатор продукта с помощью данных вашей базы данных, чтобы сделать загрузку доступной.Откройте учетную запись PayPal.
Чтобы не раскрывать местоположение загрузки: используйте идентификатор заказа, проверенный pdt, в качестве уникального идентификатора загрузки.Вы должны использовать такой скрипт: перенаправить пользователя в pdt-скрипт сюда или включить его в pdt, если платеж проверен:
<?
$orderid = $_GET['orderid'];
$productid = $_GET['productid'];
$time = $_GET['time_from_paypal']; // when the purchase was made
$fn = "files/".$productid.".mp3";
($time =here your conditional)?$do==true:$do==false;
if ($do==true){
header('Content-Disposition: attachment; filename=' . basename($fn));
readfile($fn);
} else {.....
?>
часть "здесь ваш условный" может быть чем угодно.Вы можете ограничить их загрузку в течение следующих x секунд после оплаты.обычно обработка из PayPal занимает максимум 20 секунд.поэтому, если вы хотите, чтобы загрузка производилась только один раз, проверьте, отличаются ли значения payment_time и фактического времени менее 30 секунд.из-за перенаправления пользователь получает загрузку сразу после подтверждения оплаты.написал, но не проверял