我有一個表單是一個用戶輸入信息,然後我有一個PayPal按鈕,用戶在填寫完字段後將單擊該按鈕。我遇到的問題是如何在paypal按鈕時捕獲用戶信息點擊,如果表格有action="http://paypl.com/something/something"
。單擊PayPal按鈕時如何捕獲用戶信息?
我是否必須將其設爲一個2頁的過程 - 一個是爲了捕獲用戶信息,然後是一個讓用戶點擊貝寶按鈕?
順便說一句 - 貝寶按鈕指導用戶paypal.com實際進行支付。
我有一個表單是一個用戶輸入信息,然後我有一個PayPal按鈕,用戶在填寫完字段後將單擊該按鈕。我遇到的問題是如何在paypal按鈕時捕獲用戶信息點擊,如果表格有action="http://paypl.com/something/something"
。單擊PayPal按鈕時如何捕獲用戶信息?
我是否必須將其設爲一個2頁的過程 - 一個是爲了捕獲用戶信息,然後是一個讓用戶點擊貝寶按鈕?
順便說一句 - 貝寶按鈕指導用戶paypal.com實際進行支付。
您在這裏有幾個選項。您可以製作兩種表單,一種是向服務器提交捕獲用戶信息的表單,然後用「立即付款」按鈕顯示第二種表單。作爲第二種選擇,您可以使用JavaScript從表單中提取信息並使用AJAX將其提交給您的服務器,然後在AJAX請求完成時將表單提交給PayPal。這可能會也可能不會更復雜,但它不會改變現有的用戶界面,這可能是可取的。
我會使動作成爲當前頁面,點擊按鈕並存儲用戶信息,然後使用header: Location("http://paypl.com/something/something");
。無論如何,它就是這樣的。希望這可以幫助。
編輯:也見Josh的其他答案。他們同樣有很好的可能性。請注意,Ajax選項需要打開JavaScript,因此在關閉的情況下,必須安裝防護措施。
我不敢相信我沒有想到這一點。 – Catfish 2010-10-12 22:18:21
別擔心 - 每個人都會不時忽略明顯的事情。通常需要多人才能找到最佳的解決方案 - 因此像Facebook這樣的網站是由多人開發的! – ClarkeyBoy 2010-10-12 22:20:20
夥計們,這裏有一個更簡單的解決方案。 Paypal允許你將這些值傳遞給它,然後它會將它們吐回給你。實際上有兩種獲取數據的方法 - 一個返回URL,它在完成後發佈返回值(我並不是非常幸運地完成這項工作),然後是一個單獨的函數,它在完成交易後向您發送一個帖子給一個單獨的頁面上,您可以在其中收回您發佈到網站的所有變量。我建議後者,因爲在立即購買頁面中,用戶可能不會返回到網站,因爲PayPal的返回按鈕UI相當薄弱。
要設置它,您需要登錄到您的貝寶賬戶,點擊myaccount>個人資料>網站付款偏好。啓用「支付數據傳輸」將會有所裨益。一旦你的設置正確,一旦交易完成後,它會發送你選擇的頁面給你發送的所有內容......記住,你可以發送諸如Name,Address等變量通過在表單中正確定義它們。所有可用的變量都可以找到here
當然,你可以通過Jquery或類似的方式從表單中抓取元素,然後做一個點擊保存到數據庫,但爲什麼要打呢?這是一個更多的工作,如果Javascript關閉可能會有問題。
不要忘了建立一個沙箱網站來測試!祝你好運。
我還以爲有這樣的事情,但說實話,我沒有打擾重新閱讀PayPal文檔。好答案。 – Josh 2010-10-13 12:31:58
我的建議是將所有用戶/訂單數據添加到您自己的本地數據庫中,以便您可以生成某種訂單ID。然後,您可以將此訂單ID傳遞到名爲發票的字段中的貝寶按鈕代碼。
這個值然後會以PDT/IPN作爲$ _POST ['invoice']返回,這樣您可以輕鬆地將所有數據全部取出並在您的應用程序中相應處理。
另一種選擇是使用Express Checkout而不是Payments Standard。這有點多,但限制較少。
即使有了EC,我仍然建議發送一些與付款請求一起的訂單ID,以便您可以輕鬆地將所有內容來回關聯。
這聽起來像你正試圖促進一個場景,貝寶標準api並不意味着。您無法可靠地捕獲這些信息,因爲客戶可以在貝寶網站上取消這些信息,並且不會收到通知。以下兩種解決方案都會在數據庫中留下可能不正確的信息。如果您需要完全集成,您需要查看paypal pro flow api - 費用大約爲每月30美元。 – Doug 2010-10-12 22:26:55
@Doug:或者,他可以使用IPN腳本並避免每月費用。 – Josh 2010-10-12 22:54:48
查看我的評論。它需要搜索,但PayPal完全適應了這些類型的情況。他們只是不記錄它。哎呀,他們沒有用簡單的英語記錄任何東西..... – bpeterson76 2010-10-12 23:06:12