2013-02-20 1 views
9

Ich teste In App-Kauf auto-erneuerbare Abonnement gibt aber Sandbox-Server Apfel immer status = 21004Ich bekomme 21004 als Statuswert als Antwort vom Sandbox-Server von Apple, der automatisch verlängerbare Abonnements in ios testet?

#define SHARED_SECRET @"INSERT HERE YOUR ITUNESCONNECT SHARED SECRECT KEY FOR AUTORENEWABLE SUBCRIPTIONS RECEIPT VALIDATION" 

-(void)checkReceipt { 
// verifies receipt with Apple 
NSError *jsonError = nil; 
NSString *receiptBase64 = [NSString base64StringFromData:receiptData length:[receiptData length]]; 
NSLog(@"Receipt Base64: %@",receiptBase64); 

NSData *jsonData = [NSJSONSerialization dataWithJSONObject:[NSDictionary dictionaryWithObjectsAndKeys: 
                  receiptBase64,@"receipt-data", 
                  SHARED_SECRET,@"password", 
                  nil] 
                options:NSJSONWritingPrettyPrinted 
                error:&jsonError 
        ]; 
NSLog(@"%@",jsonData); 
NSError * error=nil; 
NSDictionary * parsedData = [NSJSONSerialization JSONObjectWithData:jsonData options:kNilOptions error:&error]; 
NSLog(@"%@",parsedData); 
NSLog(@"JSON: %@",[[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]); 
// URL for sandbox receipt validation; replace "sandbox" with "buy" in production or you will receive 
// error codes 21006 or 21007 
NSURL *requestURL = [NSURL URLWithString:@"https://sandbox.itunes.apple.com/verifyReceipt"]; 

NSMutableURLRequest *req = [[NSMutableURLRequest alloc] initWithURL:requestURL]; 
[req setHTTPMethod:@"POST"]; 
[req setHTTPBody:jsonData]; 
NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:req delegate:self]; 
if(conn) { 
    receivedData = [[NSMutableData alloc] init]; 
} else { 
    completionBlock(NO,@"Cannot create connection"); 
} 
} 

Kann mir jemand helfen Überprüfung richtigen Eingang zu bekommen?

Antwort

16

Sie müssen diesen Text oben INSERT HERE YOUR ITUNESCONNECT SHARED SECRECT KEY FOR AUTORENEWABLE SUBCRIPTIONS RECEIPT VALIDATION durch den geheimen Schlüssel ersetzen, den Sie von iTunes Connect erhalten. (Natürlich, posten Sie nicht das ganze Geheimnis auf Stack Overflow).

Das Geheimnis ist in der Regel eine 32-stellige, alphanumerische Zeichenfolge, die in etwa so aussieht 39fkjc38jd02mg72k9cn29dfkm39fk00 (dieser ist eine Fälschung).

In (der neue) iTunes Connect gehen auf Meine Apps> (dann auf Ihre App klicken)>In-App-Käufe>Anzeigen oder erzeugen ein gemeinsames Geheimnis

+0

wie man geheime Schlüssel von itunes bekommen verbinden? – Ravindhiran

+0

Ich habe meine Antwort bearbeitet, um Ihnen zu zeigen, wie Sie sie finden können. – Andrew

+0

Wie bekomme ich einen geheimen Schlüssel programmatisch von itunes connect? – Ravindhiran

1

gehen zu ituenes connet und dann Ihre App und dann gehen Sie zu ManageInApp Einkäufe und dann hier sehen Sie die linke untere gibt es eine Option anzeigen oder generieren sharedsecret hier können Sie ein gemeinsames Geheimnis generieren oder Sie können das vorherige gemeinsame Geheimnis anzeigen

Verwandte Themen