从Paypal传回“自定义”价值

时间:2013-10-24 18:34:04

标签: php paypal

我正在尝试将订单ID从订单页面传递到Paypal,然后返回到感谢页面,这样我就可以将订单标记为已付款,但我遇到了问题。目前我正在将这些变量传递给Paypal:

$vars = array(

'cmd' => "_cart",
'upload' => "1",
'business' => "paypalemail@gmail.com",
'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=

我希望在此字符串中的某处看到“custom =”后跟订单号。但它不存在。我做错了吗?

2 个答案:

答案 0 :(得分:1)

今天工作: - )

你显然想要使用PDT而不是IPN,实际上有些情况下这是有意义的(例如小商店)。 PayPal PDT仅返回GET格式的tx值。然后它期望您构造一个包含以下内容的POST:

  • tx刚刚收到
  • 帐户的ID令牌
  • cmd,固定值为“_notify-synch”

只有这个帖子用包含变量的正文回答,每行一个。

请参见https://cms.paypal.com/cms_content/en_US/files/developer/PP_OrderMgmt_IntegrationGuide.pdf第19页。

答案 1 :(得分:1)

您没有获得' custom' GET参数是因为出于某种原因在返回网址上,PayPal将其重命名为“cm”'所以在上面的原始示例中,我假设自定义参数已发送到PayPal的值为57,您可以在返回URL中看到cm = 57。 我认为自定义参数仍然被称为' custom'在IPN电话会议中。