2013-10-24 103 views
0

我試圖從訂單頁面將訂單ID傳遞給PayPal,然後返回到感謝頁面,以便我可以將訂單標記爲已付款,但我遇到了問題。目前我路過這些變量貝寶這樣的:通過PayPal將'自定義'值返回

$vars = array(

'cmd' => "_cart", 
'upload' => "1", 
'business' => "[email protected]", 
'item_name_1' => "Test Item", 
'amount_1' => "1.00", 
'return' => "http://www.website.com/thanks.php", 
'custom' => $order_id, 



); 

header('Location: https://www.paypal.com/cgi-bin/webscr?' . http_build_query($vars)); 

當他們付款完成後,我重定向,它不會出現的訂單ID被送回,但是。這是我給出的網址:

thanks.php?tx=61G92224EW780500P&st=Completed&amt=1.00&cc=USD&cm=57&item_number= 

我期望看到一個「定製=」後面是什麼地方在此字符串中的順序號。但它不存在。我做錯什麼了嗎?

+0

您使用IPN來確定付款是否生成,從不返回url – 2013-10-24 18:37:15

回答

1

今天相同的工作:-)

你顯然想用PDT代替IPN,有事實上某些情況下,當這是有道理的(例如小商店)。 PayPal PDT僅以GET格式返回tx值。然後,它希望你構建包含POST:

  • TX您剛剛收到的帳戶
  • ID標記固定值 「_notify-同步」

只有這個帖子

  • CMD用包含變量的主體回答,每行一個。

    https://cms.paypal.com/cms_content/en_US/files/developer/PP_OrderMgmt_IntegrationGuide.pdf第19頁

  • +0

    謝謝:)您發送的鏈接正是我所需要的。 – Arw50452

    1

    你沒有得到的「自定義」 GET參數的原因是因爲在返回URL某種原因,貝寶它重命名爲「釐米」,以便在上面的原來的例子,我假設自定義參數已發送到PayPal將爲57,您可以在返回URL中看到cm = 57。 我認爲自定義參數在IPN調用中仍被稱爲「自定義」。

    +0

    謝謝!就是這樣。爲我節省了一些時間。 – Dev