【问题标题】:Unit testing 3dSecure单元测试 3dSecure
【发布时间】:2017-04-27 13:37:17
【问题描述】:

我们已经开始开发我们的支付服务,test nonces that Braintree supply 一切顺利

我们一直在使用 fake-valid-nonce 进行交易,但是,我们现在需要实现 3dsecure,它有 0 个测试随机数,这意味着我们所有的测试都失败并出现 Gateway Rejected: three_d_secure 错误。

有没有人对 Braintree 进行大量单元测试的经验?

谢谢

【问题讨论】:

  • 您的测试中是否包含optional parameter three_d_secure?如果您通过true,则付款方式 nonce必须包含 3DS 信息。如果省略,Braintree 将不需要在 nonce 中提供 3DS 信息。
  • @hollabaq,是的,我们正在传递它,这不是问题。问题是 3dSecure 没有测试随机数,因此无法通过测试。您可以自己创建 nonces,但是,paymentMethodToken 需要通过 3dSecure 交易进行,这增加了在其他 Braintree 帐户上的部署和测试等的复杂性......
  • (完全披露,我在 Braintree 工作) @JoeReynolds 你能用一些例子更新你的问题吗?如果我们对您希望通过单元测试完成什么有更好的了解,这可以帮助我们提供反馈。需要说明的是,Braintree 没有虚假的 3DS 随机数,因为测试应该通过完全集成来完成。

标签: braintree


【解决方案1】:

我必须同意乔的观点,

我正在参与为 Golang 开发 Braintree 库: https://github.com/lionelbarrow/braintree-go

我们遇到了完全相同的问题。没有预定义的随机数可以通过 3ds 安全验证。

如果我们使用哨兵文档中提供的卡创建付款方式: https://developers.braintreepayments.com/files/Centinel.IntegrationGuide.ConsumerAuthentication_TestCases_v1_18_0_20160823.pdf

并从服务器为其中一张卡片创建一个随机数,该随机数显然不包含任何 3ds 信息。

在我们的自动化集成测试期间,我们无法访问客户端 SDK,也无法运行“必需的”threeDSecure.verifyCard()(这只能通过 JS 代码获得)

因此,我们无法进行自动测试。

这是一个严重的问题,因为服务器应始终自行验证事务中的这些字段,而不依赖来自客户端的数据

我就这个案例向 Braintree 支持寻求帮助。他们目前唯一的答案是我们应该进行手动测试并完成验证 3ds 卡的整个客户端工作流程。

我提醒他们,我们是在 2018 年,要求开发人员每次提交某些内容时都手动测试所有集成测试用例,这不是一种明智的开发方式。

我还提醒他们,我们谈论的是涉及客户支付方式的安全功能,出于显而易见的原因,应该自动彻底地进行测试。

我还指出,至少在他们自己的 python SDK 中,他们有测试 3d 安全的集成测试(仅在他们自己的基础架构上工作):

https://github.com/braintree/braintree_python/blob/bdc95168f46b4c3ad3904fd56e5f8e15e04e9935/tests/test_helper.py#L297

这意味着他们团队中的某个人正在考虑测试并尝试做某事。不幸的是,这对我们来说还不够。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-08
    • 1970-01-01
    • 1970-01-01
    • 2011-07-07
    • 2011-04-12
    • 2023-03-21
    • 2011-05-04
    相关资源
    最近更新 更多