2015-07-26 5 views
1

Я пытаюсь проверить получение Apple App Store с помощью службы Java. Я ничего не могу получить, кроме ошибки 21002, «Свойство данных чеков было искажено». Я читал о других с той же проблемой, но не видел решения. Я думал, что это будет довольно прямолинейно, но не удалось обойти эту ошибку. Вот мой код:Проверка квитанции магазина приложений Java

EDIT Замены отмеченной // EDIT ниже, теперь я получаю исключение в возврате из вызова verifyReceipt, также makred // EDIT:

String hexDataReceiptData = "<30821e3b 06092a86 4886f70d 010702a0 .... >"; 
    // EDIT 
    hexDataReceiptData = hexDataReceiptData.replace(">", "").replace("<", ""); 
    final String base64EncodedReceiptData = Base64.encode(hexDataReceiptData.getBytes()); 
    JSONObject jsonObject = new JSONObject(); 
    try 
    { 
     jsonObject.put("receipt-data",base64EncodedReceiptData); 
    } 
    catch (JSONException e) 
    { 
     e.printStackTrace(); 
    } 
    URL url = new URL("https://sandbox.itunes.apple.com/verifyReceipt"); 
    HttpURLConnection.setFollowRedirects(false); 
    HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 
    connection.setDoOutput(true); 
    //Send request 
    OutputStreamWriter wr = new OutputStreamWriter(connection.getOutputStream()); 
    wr.write(jsonObject.toString()); 
    wr.flush(); 

    //Get Response 
    BufferedReader rd = 
     new BufferedReader(new 
      InputStreamReader(connection.getInputStream())); 
    StringBuilder httpResponse = new StringBuilder(); 
    String line; 
    while ((line = rd.readLine()) != null) 
    { 
     httpResponse.append(line); 
     httpResponse.append('\r'); 
    } 
    wr.close(); 
    rd.close(); 
    // EDIT 
    // {"status":21002, "exception":"java.lang.IllegalArgumentException"} 
+0

Я удивлен, что получил только 17 просмотров. Я не могу быть единственным, кто делает IAP с Java. Могу я? –

ответ

Смежные вопросы