2011-12-28 2 views
3

Я создаю сайт, где буду продавать программы для компьютеров и калькуляторов. Когда нажата кнопка «Купить». Я хотел бы, чтобы пользователь был направлен в Paypal (независимо от того, остаются ли они на веб-сайте или нет). После оплаты пользователь будет возвращен на мой сайт, и программа будет автоматически загружаться.Paypal payment and automatic digital media загрузить

Как я могу это сделать, чтобы обеспечить:

  • Пользователь правильно платит за программы через Paypal
  • Правильная программа, что они заплатили за загрузки после
  • Там нет прямой ссылки на программы так что пользователь мог бы загружать его много раз, не платя.

спасибо, что заблаговременно!

ответ

4

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 sandbox.

Не показывать местоположение: Использовать идентификатор заказа, подтвержденный pdt, как уникальный идентификатор загрузки. Вы должны использовать сценарий, как это: перенаправлять пользователя в ФДТ сценарий здесь или включить его в ФДТ, если платеж verrified:

<? 
$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 секунд. поэтому, если вы хотите, чтобы загрузка была сделана только один раз, проверьте, что время платежа и фактическое время расходятся менее 30 секунд. из-за перенаправления пользователь получает загрузку сразу после того, как платеж проверен. написал, но не проверен

+0

Спасибо; это именно то, что я ищу – DGund