【问题标题】:Integration tests with PayPal使用 PayPal 进行集成测试
【发布时间】:2018-01-02 12:17:25
【问题描述】:

我希望能够测试我们与 PayPal 的集成。我们设置了沙盒帐户等,我什至可以创建付款。但是,我还希望能够发出退款、查询退款以及所有其他 API,所有这些都通过集成测试进行,无需人工甚至浏览器参与。困难的部分似乎是,当然,PayPal 流程需要有人与 PayPal URL 交互并批准购买。

更多细节:我们在我们的网站上使用标准电子商务流程。用户出现,将产品放入购物车,继续购买流程,选择付款方式,在本例中为 PayPal。当然,在 PayPal 的案例中,我们在 PayPal 中创建付款,然后简单地显示 palpal 流程的嵌入式弹出窗口,用户登录到他们的 PayPal 帐户并批准购买。贝宝完成所有这些工作。我们只是得到“是的,购买已被批准”的响应。

所以.. 在集成测试环境中,我们可以在 PayPal 中创建支付实体,但是.. 在沙盒环境集成测试中,我们如何让支付获得批准?沙盒环境中是否有可用的开发人员 API 显示“嘿,此 PayPal 用户批准此付款”或“嘿,此 PayPal 用户拒绝此付款”,以便在测试代码中我们可以模拟买家的流程。或者有没有办法设置一个沙盒帐户来“自动批准”购买或“自动拒绝”购买,仅用于测试环境?

【问题讨论】:

    标签: paypal


    【解决方案1】:

    是的,您可以在沙盒中执行任何可以在实时服务器上执行的操作。不过,这是一个非常广泛的问题,因此很难回答。

    例如,如果您想在不需要任何浏览器流程的情况下处理付款,则需要设置结算协议或 Pro 交易,以便运行参考交易。这将涉及 Express Checkout API 和/或 Payments Pro API,以及参考交易 API。不过,根据您使用的是 Classic 还是 REST,API 调用会有所不同。

    无论如何,一旦 PayPal 沙盒系统中存在交易,您就可以使用 API 进行退款。不过,同样的事情……您要么使用 REST API,要么使用 Classic。

    如果您可以在问题中提供更多细节,我也可以更新此答案以更具体。

    【讨论】:

    • 更新了描述。我将研究这个计费协议设置,但我不希望集成测试偏离我们在生产中的工作方式。感谢您的帮助。
    • 仍然不确定我是否理解您的担忧。沙盒与现场完全相同。所以是的,API 是相同的,除了端点将拥有 sandbox.paypal.com 而不是 paypal.com,并且您将获得与实际生活相同的 API 响应。
    • 是的,我明白了。然而,集成测试......只是为了测试我们的代码对 PayPal API 等的响应,要求支付从创建状态移动到批准状态......以便测试,例如退款。例如,当我针对 Stripe 编写集成测试时,我提供了一个带有测试标记的假信用卡号,该卡号始终被批准(或始终被拒绝)。看来我根本无法针对 PayPal 编写这些类型的集成测试。
    • 您是否查看过沙盒中的 PayPal 负面测试? developer.paypal.com/docs/classic/lifecycle/sb_error-conditions
    猜你喜欢
    • 2013-04-07
    • 2019-12-17
    • 2015-12-28
    • 2020-05-26
    • 2021-02-03
    • 2015-06-14
    • 2018-12-23
    • 2013-01-17
    • 2020-02-17
    相关资源
    最近更新 更多