2011-09-07 113 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'查看您的付款'中的'继续'按钮更改为'立即付款'按钮。因此暗示只要他点击那个按钮,买方就会立即收费。这只是方便。