单元测试3dSecure

时间:2017-04-27 13:37:17

标签: braintree

我们已经开始处理我们的付款服务了,test nonces that Braintree supply

一切顺利

我们一直在为我们的交易使用fake-valid-nonce,但是,我们现在需要实现具有0个测试nonce的3dsecure,这意味着我们的所有测试都会因Gateway Rejected: three_d_secure错误而失败。

有没有人对Braintree的重型单元测试有过经验?

由于

1 个答案:

答案 0 :(得分:0)

我必须同意乔,

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

我们遇到了完全相同的问题。没有预定义的nonce将通过3ds安全验证。

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

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

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

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

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

我请Braintree支持这个案子的帮助。他们目前唯一的答案是我们应该进行手动测试,并通过验证3ds卡的整个客户端工作流程。

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

我还提醒他们,我们正在谈论触及客户付款方式的安全功能,并且应该自动彻底地进行测试,原因很明显。

我还指出,至少在他们自己的python SDK中,他们有测试3d安全的集成测试(仅适用于他们自己的基础设施):

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

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