2011-09-07 164 views
0

我在使用PayPal快速結帳時遇到了困難......基本上我正在尋找保護頁面,而不是下載或任何東西。用戶支付並且他們可以訪問該頁面一次。每次他們想要訪問該頁面時都必須付費。頁面保護

有沒有人有一個簡單的PHP解決方案來保護我的網頁,直到人通過PayPal付款?或者甚至是數字貨物快速結賬的預先編寫的PayPal代碼示例?

在此先感謝。

回答

1

PayPal與此無關 - 這都是關於您放置在「返回頁面」(買家在完成付款後返回的頁面)的邏輯。

對於一個簡單的快速結賬集成您可以:
1.調用SetExpressCheckout API
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時,調用GetExpressCheckoutDetails API並提供標記以檢索PayerID(或者;標記也附加在GET RETURNURL數組)
6.致電DoExpressCheckoutPayment完成付款。
7.現在付款已完成,請執行您必須遵守的任何邏輯以確保交易完成併爲買家提供訪問您希望他/她看到的內容(可能是RETURNURL頁面本身,或完全不同頁)。

樣品(NVP)API的調用將類似於以下內容:

  1. SetExpressCheckout請求 METHOD = SetExpressCheckout & USER = yourAPIuser & PWD = yourAPIpwd & SIGNATURE = yourAPIsig & VERSION = 78.0 & AMT = 0.01 & RETURNURL = http://www.your-return-url.com/ & CANCELURL = http://www.cancelurl.com/

  2. SetExpressCheckout響應 ......
    ACK =成功
    TOKEN = EC-12345678 .......

  3. GetExpressCheckoutDetails請求
    METHOD = SetExpressCheckout & USER = yourAPIuser & PWD = yourAPIpwd & SIGNATURE = yourAPIsig & VERSION = 78.0 & TOKEN = EC-12345678

  4. GetExpressCheckoutDetails對應措施
    .....
    Ack =成功
    PAYERID = ABCDEFGH
    ......

  5. DoExpressCheckoutPayment請求 METHOD = SetExpressCheckout & USER = yourAPIuser & PWD = yourAPIpwd & SIGNATURE = yourAPIsig & VERSION = 78.0 & AMT = 0.01 & PAYERID = ABCEDFGH & TOKEN = EC-12345678

  6. DoExpressCheckoutPayment響應
    ...
    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參考。

注意:我在PayPal的重定向網址中使用了「useraction = commit」,因爲這會將PayPal'查看您的付款'中的'繼續'按鈕更改爲'立即付款'按鈕。因此暗示只要他點擊那個按鈕,買方就會立即收費。這只是方便。