0

我正在尝试从订单页面将订单 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=”,后跟订单号。但它不存在。我做错什么了吗?

4

2 回答 2

1

今天也在做同样的事情:-)

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

  • 你刚刚收到的 tx
  • 账户的 id 令牌
  • 具有固定值“_notify-synch”的 cmd

只有这篇文章会用一个包含变量的正文来回答,每行一个。

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

于 2013-10-24T18:39:43.853 回答
1

您没有获得“自定义”GET 参数的原因是由于某种原因,在返回 URL 上,PayPal 将其重命名为“cm”,因此在上面的原始示例中,我假设自定义参数已发送到 PayPal 将是一个值57,您可以在返回 URL 中看到 cm=57。我认为自定义参数在 IPN 调用中仍然称为“自定义”。

于 2016-06-13T16:24:45.053 回答