2013-04-10 98 views
1

有其他人看到了這一點,或者你可以驗證看到這種行爲?以0(零)開始的CVV編號在執行期間失敗?

我使用PayPal的新的REST API。事實上,信用卡上的一些CVV數字以0(零)開頭。然而,以零開頭的CVV號碼向PayPal REST API發送請求失敗。這是因爲「funding_instrument」對象中的「cvv2」值預期爲一個數字,以零開頭的數字是無效的JSON。當我嘗試執行我的請求時,無論如何,我收到一個「INTERNAL_SERVICE_ERROR」錯誤作爲我的迴應。

爲了解決這個問題,我將CVV編號用引號括起來作爲字符串處理,然後重新提交我的請求。這次我收到一個「VALIDATION_ERROR」迴應,告訴我CVV編號必須是數字。所以,除非有一些方式來逃避在JSON數字的前導零沒有辦法接受PayPal REST API卡在CVV包含零作爲它的第一個數字。

任何幫助?

回答

1

這是我們新的REST API中的一個錯誤 - 其中cvv2字段被定義爲整數而不是字符串以容納以零開頭的值(例如011,001)。我們正在修復 - 一旦修復完成,將更新此線程。

+0

只是一個更新 - 看起來修復將在4/18發佈。一旦活着,我會再次更新。 – Praveen 2013-04-15 18:22:05

+0

Paveen,你會支持在請求中提交一個數字和一個字符串嗎?如果您只是簡單地將字符串轉換爲字符串而不是數字,那麼如果他們不知道會發生這種情況,您可能會破壞某些人的實現。 – 2013-04-16 17:56:43

+0

是的 - 我們將支持這兩種情況,並且在發送單個或兩個數字值時處理這種情況,我們會在使用它之前預先使用0來使其成爲3位數值。 – Praveen 2013-04-17 05:53:44

0

其中十進制表示以「0」開頭的唯一整數是零,這在JSON中完全合法。你描述的問題是不可能的。您必須將CVV2代碼從您擁有的任何表示轉換爲規範十進制數,因爲這是JSON規範所要求的。

你從來沒有真正從用戶那裏得到CVV 號碼(或任何來源)。您試圖將表示直接轉換爲JSON。直接轉換表達會讓你陷入麻煩 - 而是通過數字進行轉換。

信用卡上的「012」表示數字十二。在JSON中表示的數字12是「12」。當試圖將數字從一種表示轉換爲另一種表示時,幾乎總是最好先將其轉換爲數字。

根據JSON規範,「012」不是任何數字的合法表示。試圖發送它違反了該規範,並表明你從來沒有真正得到CVV 號碼,而是試圖使用它的表示就好像它是代表的數字。這就像吃食譜,可能會給你,和貝寶API,消化不良。

更新:顯然,該錯誤在PayPal API中。 CVV代碼是而不是數字。沒有「CVV號碼」這樣的東西。 PayPal API要求您提供不存在的內容,並在沒有與CVV代碼對應的號碼時提供。

+0

所以我們說一個CVV數量例如爲012你說我應該送12? – 2013-04-10 00:16:46

+0

如果CVV號碼是12,你應該把它作爲「12」,爲*號*十二正確的JSON表示。你在混淆數字和表示。不管表示你在CVV號碼(您可能會收到它盲文或二進制爲所有的API關心),以JSON發送您必須將其轉換爲正確的JSON *表示*爲*號*。 – 2013-04-10 00:17:18

+0

我在說的是API要求將CVV編號作爲數字傳遞。如果我嘗試將它作爲字符串傳遞,它會失敗。所以再說一次,如果CVV號碼是012,那麼API調用將正確地發送什麼? – 2013-04-10 00:18:48