2013-02-27 56 views
2

我設法整合了一個自定義網站,與貝寶...當在這個網站上創建一個帳戶,你需要支付費用,槽支付...所以我重定向用戶註冊後,paypall,他支付後,他被重定向到我的網站上的一個成功頁面,在URL中有一個令牌密鑰作爲參數(我從商家帳戶進入成功頁面)。唯一的問題是,我怎樣才能使用這個令牌密鑰從PayPal回覆中獲得剛註冊和支付的客戶的電子郵件。集成自定義PHP網站與貝寶?

如果我創建一個自定義窗體類似如下:

 <form id="paypalForm" method="POST" action="https://www.paypal.com/cgi-bin/webscr"> 
     <input type="hidden" name="cmd" value="_notify-synch"> 
     <input type="hidden" name="tx" value="<?php echo $tokenKey; ?>"> 
     <input type="hidden" name="at" value="<?php echo $merchantPayPalltoken; ?>"> 
     <input type="submit"> 
    </form> 

,如果我點擊提交,我重定向到一個paypall屏幕,在這裏我得到我想要的信息,上市。

但我試圖讓這個職位電話低谷jQuery.ajax,像以下:

var postVars = jQuery('#paypalForm').serialize(); 
    var url = 'https://www.paypal.com/cgi-bin/webscr'; 
    jQuery.ajax({ 
     type: "POST", 
     url: url, 
     data: postVars, 
     success: function(data){ 
       alert("success email = "+data.payer_email); 

      }, 

     error:function(xhr, ajaxOptions, thrownError){ 

       alert('status = '+xhr.status+' thrownError = '+thrownError+ ' response = '+xhr.responseText); 


      } 
    }); 

但它總是在響應的錯誤部分進入,而不是成功。

我需要pay-pal的電子郵件信息來激活我的網站上的用戶帳戶,他支付後。

或者我應該通過在用戶電子郵件重定向到支付付款之前創建一個會話變量來創建此部分,以及當用戶重定向回成功頁面時,從會話中獲取電子郵件。這會是一個安全的方式嗎?

非常感謝

回答

4

有兩種不同的方式,你可以得到這些信息反饋到你的網站。您可以使用PDT或IPN。兩者都會將信息返回到您的網站。無論買方是否退貨,IPN都會將信息發回您的網站。這是一個更好的方法來使用包裝買家不返回,如他們的瀏覽器崩潰或他們關閉窗口。這樣你的系統仍然會被更新。另一種方法PDT,看起來像你試圖使用取決於買方返回到您的網站。當他們被重定向回您的網站時,他們會收到一些信息。您通過PayPal進行回覆以驗證信息,然後PayPal回覆所有信息。

你可以在PDT上找到更多的信息https://www.x.com/developers/paypal/documentation-tools/ipn/integration-guide/IPNPDTAnAlternativetoIPN該頁面有文檔和樣例。您也可以在該頁面上找到關於IPN的更多信息的鏈接,或者您可以轉至https://www.x.com/developers/paypal/documentation-tools/ipn/integration-guide/IPNOperations您需要使用哪種方法。我通常使用兩個相互聯合。我只需要檢查IPN和PDT腳本,以確保在將其寫入數據庫之前,我還沒有收到來自其他腳本的帖子。如果我有,那麼我會忽略第二篇文章。我更多地使用PDT返回頁面來創建動態收據,並更多地依靠IPN在我的系統中執行更新。

IPN的好處在於,您可以重新發送郵件到您的系統,如果由於某種原因最初收到郵件時出現錯誤或網絡問題。使用PDT,您無法重新發送此信息。所以你將不得不手動更新你的數據庫。

希望這有助於! :)

+0

您的評論幫助了我很多....我設法整合IPN和PDT,就像您建議的那樣,並且兩者都可以正常工作。非常感謝 :) – 2013-02-28 10:08:56