2013-10-24 70 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