簡體   English   中英

PayPal-IPN偵聽器和加密付款

[英]PayPal - IPN Listener and encrypting payment

我需要向正在工作的網站添加付款,但不確定該怎么做。 用戶可以在網站上購買虛擬積分。 因此,一旦他們付款,他們的帳戶將被記入x點數。

我在我使用的IPN http://phprocks.letsnurture.com/paypal-ipn-with-php/上遇到了本教程,並且能夠使用PayPal IPN模擬器進行一些測試( https://developer.paypal .com / developer / ipnSimulator )。 一切順利,“付款”后,用戶的數據已保存到數據庫中。

但是有人建議另一種方式來處理付款。 使用此http://blog.scrobbld.com/paypal/protecting-your-payments-with-ewp/教程對付款進行加密。

在第二個教程中,作者提到了這一點:“如果他們使用Firefox並安裝了Firebug,則編輯頁面的DOM並將其發布到PayPal上要容易得多。因此,與其使用12.99來實現,我可以將其設置為:“

<input type="hidden" name="amount" value="0.99">

但是, if從第一個教程講起,這不是嗎? 還是第二個教程中的加密為付款提供了更多安全性?

// 3. Make sure the amount(s) paid match
if ($_POST['mc_gross'] != '0.34')
{
  $errmsg .= "'mc_gross' does not match: ";
  $errmsg .= $_POST['mc_gross']."\n";
}

因此,如果我理解這項權利,那么我可以使用第一個教程中的ipn偵聽器類以及第二個教程中的加密付款嗎?

在IPN內,交易已經發生。 因此,如果不匹配,您可以向自己發送通知,自動退款,也可以根據需要進行處理。

但是,無論是由PayPal加密還是由PayPal托管的安全按鈕(我偏愛這種方式)都根本不會在按鈕代碼中顯示定價數據,因此,如果沒有正確的定價,任何人都無法付款。

因此,您可以將兩者同時使用,但是如果您首先使用安全按鈕,則IPN中的邏輯確實會過時。

安德魯的答案中的關鍵詞是“已經發生” (IPN)。

如果您實際上可以事先核實價格,除了選擇對事物進行加密之外,還可以使用Express Checkout(在其中,數據是在服務器端處理的),而不是示例中所示的直接過到Paypal的HTML form

這樣,您可以將IPN更像是真正的IP地址-基於事務中的事件的“消息傳遞”服務,而不是使其成為事務的一部分 (在這種情況下 ,您需要在事后使事務無效)。

恕我直言,雖然“無效”(信貸/退款/取消)交易確實確實發生了,恕我直言,這“應該”是由於您的業務規則(而不是某些驗證問題,例如處理篡改的數據)。

“如果他們使用Firefox並安裝了Firebug,那么編輯頁面的DOM就不那么容易了……”

篡改 HTML form數據是所有<form />固有風險 ,並且所有現代瀏覽器都具有內部工具(Firefox,Chrome,Internet Explorer)來檢查其涉及的所有內容(“客戶端”)。這就是驗證 ( Web開發的任何時候都需要客戶端和服務器端)。

Hth ..

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM