【问题标题】:PayPal DoReferenceTransaction bug when charging specific amount of 100.10收取特定金额 100.10 时的 PayPal DoReferenceTransaction 错误
【发布时间】:2017-12-04 05:24:24
【问题描述】:

很遗憾,我无法通过他们的票务系统得到 PayPal 技术支持的回复,所以也许其他人已经看到了这一点。我确定这是一个错误。以下是两个 API 调用:

这个成功了:

[USER] => ***
[PWD] => ***
[SIGNATURE] => ***
[VERSION] => 86
[METHOD] => DoReferenceTransaction
[AMT] => 101.10
[TAXAMT] => 0.00
[ITEMAMT] => 101.10
[CURRENCYCODE] => USD
[PAYMENTACTION] => SALE
[REFERENCEID] => ***
[DESC] => ***

而这个没有(唯一的区别是数量):

[USER] => ***
[PWD] => ***
[SIGNATURE] => ***
[VERSION] => 86
[METHOD] => DoReferenceTransaction
[AMT] => 100.10
[TAXAMT] => 0.00
[ITEMAMT] => 100.10
[CURRENCYCODE] => USD
[PAYMENTACTION] => SALE
[REFERENCEID] => ***
[DESC] => ***

第二个返回的错误是这样的:

[TIMESTAMP] => 2017-06-20T19:10:03Z
[CORRELATIONID] => ff77dc0fdff4e
[ACK] => Failure
[VERSION] => 86
[BUILD] => 29297572
[L_ERRORCODE0] => 10010
[L_SHORTMESSAGE0] => Invalid Invoice
[L_LONGMESSAGE0] => Non-ASCII invoice id is not supported
[L_SEVERITYCODE0] => Error

显然,该错误也与问题无关,因为我什至提交了发票 ID。基本上除 100.10 之外的任何数量似乎都有效。

更奇怪的是,金额与返回的 PayPal 错误代码匹配!

这就是使用沙盒的全部内容。

非常感谢!

【问题讨论】:

    标签: paypal paypal-sandbox paypal-rest-sdk


    【解决方案1】:

    听起来您在沙盒帐户中启用了negative testing,它允许您强制错误,以便您通过传入与您要触发的错误代码匹配的 AMT 来测试它们。有关这方面的更多详细信息,包括如何启用/禁用它,请参阅链接。

    【讨论】:

    • 太棒了——非常感谢!不敢相信这样的东西会默认启用。
    • 通常不是,所以这有点奇怪。不过,很高兴你解决了。
    • 完全有可能我在没有意识到的情况下启用了它 - 帐户可以追溯到很多年前所以谁知道!
    猜你喜欢
    • 2017-07-10
    • 2016-04-29
    • 2018-04-21
    • 2013-01-24
    • 2018-10-31
    • 2017-02-01
    • 2015-02-17
    • 2013-08-27
    • 2016-03-26
    相关资源
    最近更新 更多