2014-04-04 42 views
1

我有一個網站上有一個工具。該工具是一個HTML表單,客戶在歸檔後可以保存本地PDF。表單起作用。貝寶可以集成付款。支付訪問HTML文件

所有的代碼都通過javascript在客戶端運行。我不想在我的服務器上存儲任何數據或憑據。

我不明白的是如何保護這個特殊的HTML文件,直到有人已經爲此付出了代價。我希望可能是一個隨機字符串的文件名持續48小時或什麼的。只是不知道該搜索什麼。

該網站後臺是node.js中使用CSS的基礎,如果沒有什麼幫助。

在此先感謝。

+1

您不能保護任何* *一旦它在客戶端。 – Pointy

+1

與帳戶綁定的唯一生成的文件名是處理此問題的常見方法。然後你花了這麼長時間來下載文件。 –

+0

我正準備刪除PayPal和支付標籤,因爲這似乎不是有什麼關係要麼..但後來我想,也許你想知道如何得到通知時付款成功。是這樣嗎? – SgtPooki

回答

2

如果你使用一個唯一的/隨機的文件名如你所說,並有它後時間x量,這將混淆到期,但不能保護/安全。混淆可能足以滿足您的需求,但不是我們應該提供的作爲官方StackOverflow答案的東西......所以我繼續。

這聽起來像你有一個,請原諒我的措辭在這裏,「廉價的自助/ how-to /等pdf出售,應該真的是免費的,可能是某處」類型的網站。我確信你的產品非常棒,質量最好,但如果你知道我所指的網站,並且我的假設是正確的,那麼下面的信息應該會有所幫助。

據我瞭解您的需求,您需要一個類似的版本的業務邏輯的:

  1. 用戶填寫表格在網站上
  2. 用戶被重定向到PayPal,或者是「叫行動「與貝寶按鈕。
  3. 用戶支付或不支付
  4. 用戶下載/訪問只有當他們支付文件。

有幾個選項,你可以這樣做:

如果每個用戶都得到相同的文件,下面的方法應該是相似的,但更簡單

  • 確保所設置用於您爲用戶創建的唯一ID使用的任何PayPal付款方式的CUSTOM值,以及可以從中收集該電子郵件地址的電子郵件地址。然後使用PayPal's IPN等待收到付款。此IPN通知將擁有CUSTOM付款價值,每個用戶每次付款每個文件都是唯一的,您只需通過電子郵件將相應的文件發送給他們即可。
  • 使用PayPal's Encrypted Website Payments API使用node.js創建一個安全按鈕(通過BUTTONCODE = ENCRYPTED)。安全按鈕不會公開表單變量,所以客戶端永遠無法訪問您的祕密文件所在的RETURNURL,因此他們無法嘗試下載它。如果他們確實找到了解密按鈕的方法,那麼他們將花費比48小時到期時間更長的時間。無論哪種方式,我懷疑(無意冒犯)用戶會對您的產品感興趣。

有更多的方式來做到這一點沒有在服務器上存儲用戶憑據,但沒有辦法做到這一點沒有存儲一些類型的數據(見代碼)的服務器上。

+0

我知道你所指的網站,它肯定是一個或兩個由此:)。儘管如此,你還是要做點什麼。因爲我對所有這些都很陌生,並且希望它很簡單,所以我正在考慮讓頁面描述一個包含完整示例的工具。如果他們選擇購買,請點擊貝寶按鈕並付款。一旦付費重新導向回到這個頁面。 你認爲加密的網站付款API是去那裏的路上? –

+0

所以這個工具不是他們下載的東西,而是他們可以訪問的HTML頁面? - 如果僅僅擁有一個唯一的ID允許訪問一個頁面會爲您的企業的情況下工作,EncryptedWebsitePayments API(或快速結賬API)將絕對讓你隱藏買家返回URL所以他們只後指向正確的網頁支付。 – SgtPooki

+0

但他們可以提供URL給其他人..所以你肯定會想要確保你可以讓頁面到期後1次訪問,或X時間之後。如果你的用戶說:「哎,我訪問該網頁,但後來我瀏覽器死了,我沒有得到下載文件「,那麼你可以在PayPal驗證付款..要求他們的交易ID和日期。買家和付款人交易ID是不同的,但這應該足以驗證付款。 – SgtPooki