我已成功将自定义购物车发布到PayPal - 它只是处理好订单,当收到付款时,它会将数据发回到我在配置中指定的URL。该代码基于此处的库:http://www.phpfour.com/blog/2009/02/php-payment-gateway-library-for-paypal-authorizenet-and-2checkout/
所以我通过将数据发回PayPal来成功验证IPN - 这一切都很棒。这是我的困境 - 我如何知道IPN确认的顺序?
我没有使用PayPals购物车,我有自己的。它在我的数据库中有自己的购物车ID,当我收到该购物车的IPN时,我想“关闭”购物车并将其保存为稍后查询的订单。
我已尝试将其他自定义字段与重定向一起传递给填充购物车的PayPal,但该值不会在IPN中返回给我。 x.com上的文档很简单,所以我没有找到任何帮助。
有没有人有PayPal和IPN的经验?不一定要用PHP - 我可以解释代码 - 但如果你有办法用订单向PayPal发送一个值,然后用IPN返回该值,那就太棒了!
如果使用PayPal的API无法做到这一点(我很难相信) - 有关如何处理此问题的其他建议吗?
答案 0 :(得分:1)
我不知道这是不是一个好主意,但这里有两个不同的选择:
答:对项目1使用第一组on1 / os1并将订单ID添加到该项目。
B:在自定义字段中,我不确定你在那里有什么,但你可以在这里制作类似orderidhere41 | otheritems的东西,然后通过爆炸来解析这个问题。让他们分开。
Paypal确实限制了这一点,我不知道为什么,但这两者都应该有效。将它作为on / os将其放在用户的paypal收据上,这是我的首选方法。
如果其他人有更好的解决方案,我也会对此感兴趣!
编辑:
澄清on1 os1。这些是通常用于大小/颜色等的“选项”。有关它们的更多信息,请参阅option_name1 option_selection(sp)下的IPN PDT Paypal variables。当然,名称是“订单ID”,os将是实际ID。
编辑:
查看该文档$my2CO->addField('cart_order_id', rand(1, 100));
是我将自己的购物车订单ID放在哪里。那应该是正确的领域。抱歉混淆:))
编辑:
最后有一个自定义字段用于支付宝IPN,称为“自定义”添加数据到此将通过,这将为您传输orderid。必须在双方都称为自定义。
答案 1 :(得分:1)
(这可能与其他API不同)。
我的经验是通过C#进行快速结账,但即使在PHP中也应该是相同的。如果您在将用户重定向到PayPal之前使用了名称 - 值对(NVP)界面,则会点击PayPal站点以检索重定向URL。作为回复的一部分,他们会将一个令牌传回给您。您将此令牌与订单一起保存。当IPN回发发生时,您将获得相同的令牌,这样您就可以查找原始订单。
流程流程如下(“您”是您的网站):
您可能想要试用PHP SDK - 向下滚动到名称 - 值对接口。
答案 2 :(得分:1)
我非常怀疑这会对原始海报有所帮助,但PayPal已添加或最终记录了“发票”选项,该选项允许您发布OrderID,并通过IPN将其发回。 我目前正在使用它,它似乎按预期工作。
有关详细信息,请参阅Website Payments Standard Integration Guide (PDF):附录A,表A.4
答案 3 :(得分:1)
您可以创建并发布一个长度为255个字符的自定义传递变量,该变量可以容纳任何数据。有关Paypal IPN官方指南第44页的更多信息。