2011-04-19 18 views
7

Aut yenilenebilir aboneliği test ediyorum, ancak apple'nın sandbox sunucusu her zaman status = 21004 döndürüyor, bu da 'Sağladığınız paylaşılan sırrı hesabınızdaki dosyadaki paylaşılan gizli ile uyuşmuyor.'. çoğunlukla bunu yapan bir java sunucusu ile sınamak:Neden Apple'ın sanal alan sunucusundan otomatik yenilenebilir abonelik testlerini yanıtlarken 21004'ü durum değeri olarak alıyorum?

String receiptData = "theReceiptDataBytesBase64encoded"; 
    String sharedSecret = "theSharedSecretAsPureStringProvidedByItunesconnect"; 


    String jsonData = "{" + 
          "\"receipt-data\" : \"" + receiptData + "\"," + 
          "\"passsword\" : \"" + sharedSecret + "\"" + 
         "}"; 

    URL url = new URL("https://sandbox.itunes.apple.com/verifyReceipt"); 
    HttpURLConnection conn = (HttpsURLConnection) url.openConnection(); 
    conn.setRequestMethod("POST"); 
    conn.setDoOutput(true); 
    OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream()); 
    wr.write(jsonData); 
    wr.flush(); 

    // Get the response 
    BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream())); 
    String line; 
    while((line = rd.readLine()) != null) 
    { 
    System.out.println(line); 
    } 
    wr.close(); 
    rd.close(); 

Ben yukarıdaki örneğimizde değişken değerlerle temizlemek için çalıştı, ben düz bir dize olarak kullanmaktan, paylaşılan gizli kodlar vermedi. Bu sorun mu?

cevap

13

olanlar bir geliştirici olmak harika hissettirecek günler ...

ben s karakterden 3 Friggin ile JSON anahtar passsword kullanılan göreceksiniz yukarıdaki sorumu dikkatlice bakıldığında! !! Birkaç test ürünü ve test kullanıcısı olan 5 saatlik deneme-yanılma deneyiminin ve uygulama mağazası sanal alanındaki yeni paylaşılan sırların nedeni buydu.

iTunes ekibine, 'yanlış anahtar sözcüğü' yerine, 'şifre anahtarı nedir' mesajı yerine, özel teşekkürler.

+0

Bu cevap, yalnız olmadığımı hissettiriyor :) –

İlgili konular