Braintree 沙盒测试(虚拟随机数)

4

我正在测试 Braintree 沙盒(PHP),即使我使用的是 fake-nonce,交易仍然显示为 有效

我有一个下拉式前端和一个 PHP 后端。

我的测试后端代码如下:

$amount = '12.00';
$nonce = 'fake-processor-declined-visa-nonce';
$result = Braintree_Transaction::sale(['amount' => $amount, 
                                       'paymentMethodNonce' => $nonce, 
                                       'options' => ['submitForSettlement' => true]
                                      ]);
$debug = get_object_vars($result);
print_r($debug);

结果
Array
(
    [success] => 1
    [transaction] => Braintree\Transaction Object
        (
            [_attributes:protected] => Array
                (
                    [id] => 9bnyb32r
                    [status] => submitted_for_settlement
                    [type] => sale
                    [currencyIsoCode] => EUR
                    [amount] => 12.00
                    [merchantAccountId] => somenamehere
                    [subMerchantAccountId] => 
                    [masterMerchantAccountId] => 
                    [orderId] => 
                    [createdAt] => DateTime Object

我认为这些伪随机数是用于沙箱测试错误结果的,或者我有所遗漏。
参考链接: https://developers.braintreepayments.com/reference/general/testing/php#test-amounts
3个回答

8

完全披露:我在Braintree工作。如果您有任何进一步的问题,请随时联系支持团队

无效的nonce会触发一个不成功的信用卡验证响应,但不会导致交易失败。为了模拟一个不成功的交易,请调整交易金额


你能提供一张我们可以使用的信用卡号码吗?这张信用卡将会通过验证,但在支付时会在银行处失败。这对于UI功能测试非常方便。如果我们能够拥有一张有效的nonce但在支付时失败的信用卡,那就更好了。 - j2emanue
对于将来可能有与@j2emanue相同问题的人:Braintree提供了虚假卡,我们可以用它们来模拟交易(据我所知,它们只在沙盒中有效)。 它们可以在此处找到:https://developers.braintreepayments.com/reference/general/testing/php#no-credit-card-errors - verboze
那么你的意思是,如果我在Android中使用了你们的生产SDK,我就不能使用你们在链接中提供的这些信用卡吗?还是说我的服务器必须被隔离?我想要在Android客户端中使用一个可以伪造的信用卡,但我无法控制服务器。我希望在银行检查时它会失败。 - j2emanue
提供的链接中的值仅适用于 Braintree 沙盒环境(可以免费配置,并且与其生产环境完全隔离--不是您的生产环境)。我强烈建议设置一个。我认为直接针对生产环境进行支付测试是有风险的。更不用说,账户可能会因在生产环境中反复失败而看起来像是欺诈行为,并可能触发网关提供商端的警报。顺便说一下,我与 Braintree 没有任何关系,那是 Dana。 - verboze
@Dana,我不知道你是否还在那里工作,但这有点可惜,因为它不会在后续触发拒绝。根据您的环境,玩弄“金额”变得更加棘手 - 如果能够创建一个保险库付款方式(通过虚假的一次性密码),以便失败 - 模拟关闭帐户/过期卡等,那将是很好的选择。至少作为一个选项。我意识到也许你们的系统实现起来太麻烦了,但令人惊讶的是,我被允许存储一个虚假的一次性密码(verifycard=false),并且成功了。也许它不应该让我存储它? - Simon_Weaver

3

在尝试使用PHP测试一些类似的功能时,我在PHP Braintree库的\Braintree\Test\Nonces中找到了一些有用且命名良好的测试随机数。我能够使用fake-valid-visa-nonce进行测试,以创建新的付款方式。


谢谢,他们提供的测试用例真的很好地展示了如何设置事物! - verboze
谢谢,这让我重新回到了正轨。MVP。对于在场的任何人,请看这里:https://github.com/braintree/braintree_ruby/blob/master/lib/braintree/test/nonce.rb - Paul Danelli

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接