2016-02-19 94 views
1

我最近爲我的應用程序實現了收據驗證功能,但是我很難解析收據。我能夠做這個解析IAP收據的JSON

verifyStatus = json!["status"] 
從這些分別

let verifyItem2 = json!.objectForKey("receipt") 
let verifyItem3 = verifyItem2!.objectForKey("in_app") 

然而

,然後「收據」和'in_app的價值觀得到了它的地位,當我做同樣的「PRODUCT_ID 」。我不斷收到錯誤。可能是因爲'in_app'鍵在它之前有一組額外的括號。一些建議,將不勝感激。

例收據:

environment = Sandbox; 
receipt =  { 
    "adam_id" = 0; 
    "app_item_id" = 0; 
    "application_version" = 1; 
    "bundle_id" = "xxxxxxxx"; 
    "download_id" = 0; 
    "in_app" =   (
        { 
      "is_trial_period" = false; 
      "original_purchase_date" = "2016-02-16 05:47:31 Etc/GMT"; 
      "original_purchase_date_ms" = 1455601651000; 
      "original_purchase_date_pst" = "2016-02-15 21:47:31 America/Los_Angeles"; 
      "original_transaction_id" = 1000000194125405; 
      "product_id" = "xxxxxxxx"; 
      "purchase_date" = "2016-02-16 05:47:31 Etc/GMT"; 
      "purchase_date_ms" = 1455601651000; 
      "purchase_date_pst" = "2016-02-15 21:47:31 America/Los_Angeles"; 
      quantity = 1; 
      "transaction_id" = 1000000194122312; 
     } 
    ); 
    "original_application_version" = "1.0"; 
    "original_purchase_date" = "2013-08-01 07:00:00 Etc/GMT"; 
    "original_purchase_date_ms" = 1375340400000; 
    "original_purchase_date_pst" = "2013-08-01 00:00:00 America/Los_Angeles"; 
    "receipt_creation_date" = "2016-02-19 20:49:30 Etc/GMT"; 
    "receipt_creation_date_ms" = 1455914970000; 
    "receipt_creation_date_pst" = "2016-02-19 12:49:30 America/Los_Angeles"; 
    "receipt_type" = ProductionSandbox; 
    "request_date" = "2016-02-19 20:49:34 Etc/GMT"; 
    "request_date_ms" = 1455914974827; 
    "request_date_pst" = "2016-02-19 12:49:34 America/Los_Angeles"; 
    "version_external_identifier" = 0; 
}; 
status = 0; 

})

回答

1

in_app領域是一個數組,所以你必須穿越它

for inApp in verifyItem3 { 
    // do something with that dictionary, for example 
    print(inApp["product_id"]) 
} 

請注意,我這裏寫了這個代碼,所以可能有錯誤:)

+0

謝謝!不過,我不得不再去'1'級別去獲取productID。 '讓verifyItem4 = inApp as! NSDictionary'和'let verifyItem5 = verifyItem4.objectForKey(「product_id」)' –