Защита страницы - PullRequest
       9

Защита страницы

0 голосов
/ 07 сентября 2011

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

Есть ли у кого-нибудь простое PHP-решение для защиты моей страницы, пока человек не заплатит через PayPal? Или даже заранее написанный пример кода PayPal для цифровых товаров для экспресс-оплаты?

Заранее спасибо.

1 Ответ

1 голос
/ 08 сентября 2011

PayPal не имеет к этому никакого отношения - все дело в логике, которую вы размещаете на своей «странице возврата» (странице, на которую покупатель возвращается после завершения платежа).

Для простой интеграции Express Checkout вы должны:
1. Вызовите API SetExpressCheckout
2. Поставьте AMT, RETURNURL и CANCELURL
3. Извлеките токен, полученный в ответе SetExpressCheckout.
4. Перенаправить покупателя на https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-xxxtoken-herexxx&useraction=commit
5. Когда покупатель соглашается на оплату и возвращается обратно в ваш RETURNURL, вызовите API GetExpressCheckoutDetails и предоставьте токен для получения PayerID (альтернативно; токен также добавляется в массив GET для вашего RETURNURL)
6. Позвоните в DoExpressCheckoutPayment, чтобы завершить платеж.
7. Теперь, когда платеж завершен, сделайте все, что вам нужно, чтобы убедиться, что транзакция завершена, и предоставьте покупателю доступ к контенту, который вы хотите, чтобы он / она видел (это могла быть сама страница RETURNURL или совершенно другая страница) ,

Примеры вызовов API (NVP) будут выглядеть примерно так:

  1. SetExpressCheckout Request МЕТОД = SetExpressCheckout & USER = yourAPIuser & PWD = yourAPIpwd & ПОДПИСИ = yourAPIsig & VERSION = 78,0 & AMT = 0,01 & ReturnUrl = http://www.your -return-url.com / & CANCELURL = http://www.cancelurl.com/

  2. SetExpressCheckout Response ......
    Ack = Успех
    ЗНАК = EC-12345678 .......

  3. GetExpressCheckoutDetails Request
    МЕТОД = SetExpressCheckout & USER = yourAPIuser & PWD = yourAPIpwd & SIGNATURE = yourAPIsig & VERSION = 78.0 & TOKEN = EC-12345678

  4. GetExpressCheckoutDetails Response
    .....
    Ack = Успех
    PAYERID = ABCDEFGH
    ......

  5. DoExpressCheckoutПлатежный запрос METHOD = SetExpressCheckout & USER = yourAPIuser и PWD = yourAPIpwd & ПОДПИСЬ = yourAPIsig & VERSION = 78,0 & AMT = 0,01 & PAYERID = ABCEDFGH & ЗНАК = EC-12345678

  6. DoExpressCheckoutPayment Response
    ....
    Ack = Успех
    PAYMENTSTATUS = завершено
    ....

Смотрите также SetExpressCheckout: https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_api_nvp_r_SetExpressCheckout
GetExpressCheckoutDetails: https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_api_nvp_r_GetExpressCheckoutDetails
DoExpressCheckoutPayment: https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_api_nvp_r_DoExpressCheckoutPayment

А также https://www.x.com/> Справочник по API.

Примечание. Я использую «useraction = commit» в URL-адресе перенаправления на PayPal, поскольку это изменит кнопку «Продолжить» в PayPal «Просмотр вашего платежа» на кнопку «Оплатить сейчас». Таким образом, подразумевается, что покупатель будет немедленно снят, как только он нажмет на эту кнопку. Это просто удобно.

...