2013-08-29 70 views
4

在我購買的驗證程序三個締約方蘋果收據驗證返回JsonException

  1. iOS用戶端
  2. ASP.NET服務器(中介覈查)
  3. 蘋果服務器

JSON-RCP在iOS之間的通信方式中客戶端& ASP.NET服務器

驗證過程是;通過網絡服務將支付收據發送到ASP.NET服務器(服務器使用AppleReceiptVerifier驗證收據)

我有5個支付產品標識符,其中2個支付良好,並返回預期響應,但其他三個返回JsonException這樣

{ 
    error =  { 
     errors =   (
         { 
       message = "Found String where Object was expected."; 
       name = JsonException; 
      } 
     ); 
     message = "Found String where Object was expected."; 
     name = JSONRPCError; 
    }; 
    id = "<null>"; 
} 

{ 
    error =  { 
     errors =   (
         { 
       message = "Missing value."; 
       name = JsonException; 
      } 
     ); 
     message = "Missing value."; 
     name = JSONRPCError; 
    }; 
    id = "<null>"; 
} 

所有的產品標識,他們只是在價格 改變同一類型的,我不知道這是爲什麼問題???

怎麼辦?

+0

看起來像ios客戶端不喜歡你的json的fomat ...可能ty有些人已經用方括號把json先編碼 – Jatin

+0

我不認爲這是這種情況,因爲與其他標識符相同的代碼工作完美 – OXXY

+0

我的理解是否正確:這是錯誤,您的ASP.NET服務器在嘗試解析從iOS應用程序收到的某些JSON時會拋出此錯誤?你可以插入或上傳你試圖解析的實際JSON文件嗎? –

回答

2

讀取json-rpc, 的說明書之後似乎params爲一個數組,嘗試:

{ 
    "method":"sendReceipt", 
    "params" :[ 
    { 
     "ReceiptData":"ewoJInNpZ25hdHVyZSIgPSAiQXJ....‌.", 
     "PersonID":"[email protected]" 
    } 
    ], 
    "id":"1" 
} 

或該:

{ 
    "method":"sendReceipt", 
    "params" :[ 
    "ewoJInNpZ25hdHVyZSIgPSAiQXJ....‌.", 
    "[email protected]" 
    ], 
    "id":"1" 
} 

jsonrpc版本2.0:

{ 
    "jsonrpc": "2.0", 
    "method": "sendReceipt", 
    "params": 
    { 
     "ReceiptData":"ewoJInNpZ25hdHVyZSIgPSAiQXJ....‌.", 
     "PersonID":"[email protected]" 
    }, 
    "id": 1 
} 

他們都應該根據您的需求工作。

+0

{「method」:「sendReceipt」, 「params」:[「ewoJInNpZ25hdHVyZSIgPSAiQX .....」,「[email protected]」],「id」:「1」} ||我用過這個JSON-RPC,它不工作 | |錯誤=( { message =「Missing value。」; name = JsonException; } ); – OXXY

+0

你使用的是什麼版本的jsonrpc? – noamtcohen

+0

version 2.0:'{「jsonrpc」:「2.0」,「method」:「sendReceipt」,「params」:{「ReceiptData」:「ewoJInNpZ25hdHVyZSIgPSAiQXJ ....」,「PersonID」:「sam @ am .com「},」id「:1}' – noamtcohen