2010-01-13 49 views
6

我一直在這個天,我似乎無法弄清楚。我想要做的就是當訂閱按鈕被按下時,一個變量被髮送(發佈後我不在乎)付款完成並降落到成功頁面,與我的變量!傳遞一個變量從開始到結束 - 貝寶

從我所知,這應該是能夠做到這一點:

<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post"> 
<input type="hidden" name="cmd" value="_s-xclick"> 
<input type="hidden" name="hosted_button_id" value="0000000"> 
<Input type="hidden" name="custom" value="<?php md5($code.microtime()); ?>"/> 
<input type="image" src="https://www.sandbox.paypal.com/en_US/i/btn/btn_subscribeCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!"> 
<img alt="" border="0" src="https://www.sandbox.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1"> 
</form> 

任何幫助非常感謝(是的,我讀過PayPal和沙箱的文件,只是不那麼擅長閱讀。)

回答

0

缺少echo。取而代之的是:

<?php md5($code.microtime()); ?> 

試試這個:

<?php echo md5($code.microtime()); ?> 
+0

它會通過$ _POST ['custom']? – 2010-01-13 08:24:55

+0

仍然沒有運氣。什麼都沒有發送。 – 2010-01-13 08:27:30

0

PayPal將不會處理您的自定義數據,所以不將其發送給他們,並得到它回來,只是將其存儲在自己的數據庫。將數據與使用invoice作爲關鍵的交易相關聯。

在您的登陸頁面,您可以從PayPal交易中獲得invoice。然後,您可以從您自己的數據庫中獲取由該invoice ID引用的數據。

+0

這個原則是否適用於標準付款選項(這是您主持按鈕時,但它需要用戶通過貝寶完成交易)? – Joel 2011-07-01 13:47:36

+0

@Joel你可以閱讀貝寶標準的API。除了規範之外的任何變量都不會被PayPal處理,並且當用戶重定向到成功頁面時可能會被丟棄。 'invoice'字段可用於跟蹤您的應用程序的invoice_id,並且在成功頁面中,您可以使用它來獲取附加數據並將其顯示給用戶。 – 2011-07-07 07:14:20

+0

原來這裏有一個「自定義」字段。 – Joel 2011-07-07 11:58:34

9

變量'custom'和'invoice'都是PayPal所稱的「傳遞」變量。 PayPal不會對他們做任何事情,只會在您收到有關該交易的任何IPN通知(有人付款,退款等)時將其傳回給您。

我可以親自證實,這個工作正常,現在使用'自定義'變量。我目前使用他們的標準(免費)付款解決方案...

您如何監控IPN通知以查看哪些變量正在發回給您?

編輯 - 其他信息下面加:

我想在這一點擴大,因爲我最近通過對直通變量相關的問題抓住了!

'invoice'變量必須是UNIQUE每筆交易; PayPal將只允許1個完成的付款通過每個UNIQUE發票字符串。任何後續嘗試結賬(即已付款的「發票」變量)將立即顯示爲「此發票已付款」。信息。

另一方面,'自定義'變量不需要是唯一的,並且旨在嚴格用作傳遞變量 - 在大多數情況下,這是您希望在您只需要查找時使用的變量'傳遞'功能。

希望有所幫助 - 獨特性問題最近花費了近一整天的我的個人項目的結帳過程!

0

這個問題似乎沒有似乎得到CUSTOM正通過沙盒通過

羞恥PayPal是不是因爲我們都認爲好的

0

試試這個:

<input type="hidden" name="custom" value=<?php echo "\"".md5($code.microtime())."\""; ?>/> 

有一個丟失回聲,也是引號是圍繞價值,而不是PHP

相關問題