我们正在运行在Rails上Ruby的电子商务网站和信用卡的处理,我们使用ActiveMerchant插件使用我们的API凭证接口到我们的贝宝网站付款专业帐户。
作为结账过程的一部分,我们首先在我们的网关对象上调用authorize函数,然后在进行一些进一步的检查后,我们执行捕获部分。
我们最近遇到了一个错误,其中金额在客户的帐户上被保留了两次:一次收费只是授权,第二次是最后购买。所以对于客户来说,看起来我们给他开了两次(一次用于授权,一次用于最终购买),而我们实际上只收到一次钱而他账户上的“第二次收费”只是我们不清楚的授权由于某些原因。 (这似乎发生在PayPal FMF拒绝我们的交易并且我们重新处理时。)
我正在尝试通过为买方和卖方创建PayPal沙盒帐户来解决此问题。我通过Rails控制台逐行运行代码并模拟不同的条件以尝试复制错误。但是,我成功的信用卡交易只出现在我的“卖方” /“商人”的帐户,而不是在贝宝Sandbox中的“买家”帐户,所以我不能看到我的代码序列的效果是有一个客户的卡上的内容。 This post似乎表明这就是事情的方式,并且确实无法测试对买方信用卡方面的影响。 This post建议使用PayPal Express Checkout,但这不是我们在网站上所需要的,因为我们专门查看集成到我们网站的信用卡交易。
如何测试我的代码对客户信用卡的影响?可能是我在PayPal中遗漏了一些东西,或者在ActiveMerchant中可能有一些模式/日志/监视器,我可以用它来看到这个吗?我需要找到导致我们两次授权的代码行。
答案 0 :(得分:0)
如果FMF拒绝了初始交易,然后您重新尝试另一个交易,这将导致买方卡上的第二次暂停,因为这将是完全不同的交易尝试。银行可能已批准第一笔交易,但FMF过滤器会根据您的设置拒绝该交易。就银行而言,它仍然是经批准的有效收费。因此,当您进行第二次尝试时,这将导致卡上的第二次持有相同的金额,但用于不同的交易。