2

有没有其他人看到过这个或者你能验证看到这个行为吗?

我正在使用 PayPal 的新 REST API。事实上,信用卡上的某些 CVV 号码以 0(零)开头。然而,使用以零开头的 CVV 编号向 PayPal REST API 发送请求失败。这是因为“funding_instrument”对象中的“cvv2”值应该是一个数字,而以零开头的数字是无效的 JSON。当我尝试执行我的请求时,我得到一个“INTERNAL_SERVICE_ERROR”错误作为我的响应。

为了纠正这个问题,我将我的 CVV 编号用引号括起来,将其视为一个字符串,然后重新提交了我的请求。这次我收到“VALIDATION_ERROR”响应,告诉我 CVV 编号必须是数字。因此,除非有某种方法可以在 JSON 中转义数字中的前导零,否则无法通过 CVV 包含零作为其第一个数字的 PayPal REST API 接受卡。

有什么帮助吗?

4

2 回答 2

1

这是我们新的 REST API 中的一个错误 - 其中 cvv2 字段被定义为整数而不是字符串,以容纳以零开头的值(例如 011、001)。我们正在修复 - 一旦修复推出,将更新此线程。

于 2013-04-14T21:37:11.200 回答
0

十进制表示以“0”开头的唯一整数为零,这在 JSON 中是完全合法的。你描述的问题是不可能的。您必须将 CVV2 代码从您拥有的任何表示形式转换为规范的十进制数,因为这是 JSON 规范所要求的。

您实际上从未从用户(或任何来源)那里获得 CVV编号。您尝试将表示直接转换为 JSON。直接转换表示会给你带来麻烦——而是通过数字转换。

信用卡上的“012”代表数字十二。数字 12 在 JSON 中表示为“12”。尝试将数字从一种表示形式转换为另一种表示形式时,最好先将其转换为数字。

根据 JSON 规范,“012”不是任何数字的合法表示。尝试发送它违反了该规范,并表明您实际上从未获得 CVV编号,而是尝试使用它的表示,就好像它是所表示的数字一样。这就像吃食谱一样,可能会让您和 PayPal API 消化不良。

更新:显然,该错误在 PayPal API 中。CVV 代码不是数字。没有“CVV 编号”之类的东西。PayPal API 要求您提供不存在的内容,并且在没有与 CVV 代码对应的数字时失败。

于 2013-04-10T00:15:15.727 回答