我们已经开始开发我们的支付服务,并且一切顺利 test nonces that Braintree supply
我们一直在为我们的交易到处使用 fake-valid-nonce
但是,我们现在需要实现 3dsecure,它有 0 个测试随机数,这意味着我们所有的测试都失败了 网关被拒绝:three_d_secure
错误。
有没有人有过对 Braintree 进行大量单元测试的经验?
谢谢
最佳答案
我必须同意 Joe 的观点,
我正在参与为 Golang 开发 Braintree 库: https://github.com/lionelbarrow/braintree-go
我们遇到了完全相同的问题。没有可以通过 3ds 安全验证的预定义随机数。
如果我们使用 sentinel 文档中提供的卡创建支付方式: 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 安全的集成测试(仅在他们自己的基础设施上工作):
这意味着他们团队中有人正在考虑测试并正在尝试做某事。不幸的是,这对我们来说还不够。
关于braintree - 单元测试 3dSecure,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43659532/