Paypal Sandbox - 次要的,不太明显的使用规则(如果有的话),它们是啥?

Posted

技术标签:

【中文标题】Paypal Sandbox - 次要的,不太明显的使用规则(如果有的话),它们是啥?【英文标题】:Paypal Sandbox - secondary, less obvious rules for using (if any), what are they?Paypal Sandbox - 次要的,不太明显的使用规则(如果有的话),它们是什么? 【发布时间】:2014-10-10 15:49:05 【问题描述】:

我的网站运行良好,没有问题,在实时 Paypal 模式下使用真钱和真实的 paypal 帐户,所以我知道我的听众可以工作,但尽管尝试了所有选项(而且有很多)我发现,我可以'根本无法让沙箱工作,根据需要进行彻底测试。例如,我想现场测试电子支票和许多我不熟悉的其他选项。

对于沙盒,我们被告知将发布地址更改为 sandbox.paypal.com .... 但即使这在 Paypal 文档中也有点模糊,尽管我假设并在我提交的所有网站中都更改了它表单、我的 IPN 处理程序和我用于 PDT 处理的返回页面。

然后我们被再次含糊地告知要创建开发帐户。我已经做到了,买家和卖家都经过验证。

然后我们被告知,在其他地方,也许,当你在沙盒中测试你的页面时,有必要“登录”到你的开发帐户,尽管我仍然不清楚这是否是绝对必要的,顺便说一句又是模糊的,因为可以使用您的正常业务登录并通过 Paypal Developer 站点进入开发页面,而无需专门登录您创建的沙盒帐户之一(这是一个单独的登录)。但我主要假设您需要在一个特定的沙盒创建帐户中,与您的普通贝宝帐户分开登录,但也许它只是需要我的普通贝宝登录的开发页面?无论如何似乎都没有工作。

那么你就有问题了(如果这是一个问题 - 我只是不知道) - 如果你在测试将表单发送到 sandbox.paypal 时必须登录到创建的沙盒帐户,是哪一个?当paypal付款页面出现在您的网站上时,您支付的那个,设置为卖家帐户的那个,在您的输入表单中被称为您的“业务”的那个?这一切有什么要求吗?然后,哪个帐户需要在我的表单上作为我的“业务” - 我的真实或我的测试卖家,我在测试时登录沙盒的哪个帐户以及我使用哪个帐户购买,因为如果我从我的沙盒购买购买帐户,如果我使用销售帐户或我的真实帐户登录沙盒,它将更改我的贝宝会话。

我什至不知道这些登录问题中的任何一个是否存在问题 - 它们只是看起来像问题,因为我无法让沙箱工作并且我已经多次尝试每种组合。

我还看到,您可能需要在提交的表单中输入 type="hidden" name="test_ipn" value="1",因此,这意味着在有无此情况下测试每种可能性。

然后有人说它只适用于某些端口,例如80 或 443,而不是其他,因此您使用 test_ipn 选项和端口选项测试每个登录组合......沙盒仍然没有。

那么,有人知道吗 - 除了将发布地址(我假设所有这些 - 您的表单和您的处理程序)更改为 https://www.sandbox.paypal.com/cgi-bin/webscr ... 等之外,是否需要遵循任何规则。

我正在考虑有关需要登录沙盒帐户的规则,因此,在测试表单时,您应该在沙盒上登录哪个帐户(如果有)(显然应该是卖家帐户,但当我在我的贝宝表单上以买家身份登录时会产生冲突),您从哪一个购买,哪一个在表单上被声明为您的业务,请记住一个可能会覆盖另一个的会话(并使用所有同样对我不起作用。)是否需要特定的端口?我们是否必须在表单中使用 test_ipn 字段,或者是否有任何其他我忽略了 Paypal 没有正确解释的要求,因为这只会让我发疯,而且 Paypal 文档确实不适合目的。

【问题讨论】:

【参考方案1】:

在沙盒中进行测试的第一步确实是在http://developer.paypal.com 创建您的开发者帐户,然后在其中创建实际的沙盒帐户;至少一个买家和一个卖家账户。

创建卖家账户后,您可以像使用真实账户一样登录该账户并在配置文件中设置 IPN,或者您可以使用按钮或 API 调用中的 notify 参数来触发它,就像实时一样好吧。 notify 唯一不适用的是定期付款。对于那些您必须在沙盒和真实卖家账户的个人资料中设置 IPN。

如果您正在测试标准付款按钮,并且您正在使用托管按钮,那么您需要直接在沙盒帐户中为沙盒卖家帐户创建单独的按钮,就像您在真实帐户中所做的那样。如果您不使用托管按钮,那么您可以使用相同的按钮/结帐代码,但将 PayPal URL 更改为 sandbox.paypal.com,就像您概述的那样。

基本上,您对待沙盒卖家账户的方式与对待真实卖家账户的方式完全相同,并且您需要以同样的方式对其进行配置。然后,要进行完整的测试,您将完成结帐流程并使用您的沙盒买家帐户登录付款。

除了检查之外,您不必对 test_ipn 参数做任何事情。当您从沙盒服务器获取 IPN 时,它将包含 test_ipn=1,这样您的应用程序就可以破译 IPN 是真实的还是沙盒的。

至于登录,过去您必须登录 developer.paypal.com 才能使沙盒交易正常工作(这很麻烦),但现在已经不是这样了。现在,无论您是否登录开发者网站,您都可以直接访问 http://sandbox.paypal.com 并使用您创建的任何沙盒帐户登录。

希望对一些人有所帮助。

【讨论】:

非常感谢您的时间和回答 - 但无法让它工作。我认为 IPN 处理程序数据库代码应该在沙盒测试模式(或模拟器)中执行是否正确,或者它只是测试您的标头是否响应并且消息是否可以来回发送?我阅读文档越多,它变得越不清晰。如果它有效 - 它看起来很清楚,当它没有时,并且您希望从文档中获得精确性,您会意识到它充满了错误的踪迹、模棱两可和无法解释的情况。 您的 IPN 脚本应该在沙盒中以完全相同的方式运行并运行。您应该会看到数据库更新、电子邮件通知或您在 IPN 脚本中进行的任何操作。如果您没有看到,那么第一步是确保确实发送了 IPN。检查 PayPal 沙盒帐户中的 IPN 历史记录。它将向您显示它们是否被发送以及您的服务器返回给 PayPal 服务器的响应代码。

以上是关于Paypal Sandbox - 次要的,不太明显的使用规则(如果有的话),它们是啥?的主要内容,如果未能解决你的问题,请参考以下文章

自定义 sandbox.paypal “订单汇总”

如何登录 Sandbox Paypal 帐户?

无法解析远程名称:'api-3t.sandbox.paypal.com'

访问 https://api.sandbox.paypal.com 时得到 Http 响应码 400

如何使用 sandbox.paypal 获取 IPN 进行支付

PayPal Sandbox 500 代理错误 - PayPal 自适应