【问题标题】:PHP PayPal CheckoutPHP 贝宝结帐
【发布时间】:2014-03-06 16:11:18
【问题描述】:

我正在尝试为客户网站开发结帐系统,我想知道执行此操作的最佳方法。请让我知道我在下面尝试过的任何替代方法。

目前我有:

1) 购物车中的商品保存到 $_SESSION 变量

2) 当用户按下“结帐”时,他们会被带到一个带有不可见表单的页面,该表单将 $_SESSION 中保存的信息发布到https://www.paypal.com/cgi-bin/webscr

3) 确认付款后,他们会被重定向到网站上的 confirm.php,该网站会触发一封电子邮件给客户和商店,其中包含来自购物车的信息(存储在 $_SESSION 中)和传回的地址数据(如我无法在第一个 POST 中将购物车中的所有属性信息从 PayPal 传递给 paypal。

我的解决方案的问题在于它似乎不适用于移动 safari、iPad、iPhone 或旧系统。因此,我正在寻找一种替代方法,或者寻找一种使数据保持持久性的方法,因为从这些设备之一执行时,最后发送的电子邮件不包含任何数据。

【问题讨论】:

    标签: php session paypal


    【解决方案1】:

    使用数据库,您可以在调用 PayPal 付款之前将整个购物车存储为临时或不完整的,然后通过 confirm.php 获取所有信息,修改购物车的状态等。

    您还可以在您的 PayPal 帐户中在每次付款时激活自动 IPN。

    IPN 是在您的网站上运行并调用贝宝的侦听器。你可以在网上找到很多这样的例子。

    这个想法是您在 PayPal 表单上传递您想要的所有字段,然后 paypal 将使用 IPN 调用将其发回。

    在 PayPal 表单中,您可以添加自定义隐藏输入:

    <input type="hidden" name="cart_id" value="<?php echo $id ?>">
    

    在IPN监听器中你会得到cart_id = 4,这样你就可以自动知道哪个购物车支付完成了,购物车属于哪个用户,更改购物车状态和电子邮件用户。

    希望对你有所帮助。

    【讨论】:

      猜你喜欢
      • 2021-12-29
      • 1970-01-01
      • 2014-09-06
      • 2017-01-21
      • 2015-04-12
      • 2020-09-23
      • 2021-06-01
      • 2015-11-18
      • 2013-08-08
      相关资源
      最近更新 更多