나는 처음으로 인앱 구매 아이폰 애플리케이션을 테스트하려고 시도 해왔다. 불행히도 나는 iTunesRelease를 확인하기 위해 iTunes 서버와 대화하는 방법을 찾을 수 없습니다.transactionReceipt를 사용하여 JSON 객체 생성
이 기술로 내 첫 번째 시도이기 때문에 서버 지원을 사용하는 대신 iPhone에서 영수증을 직접 확인하기로 결정했습니다. 하지만 JSON API를 사용하여 만든 JSON onbject를 사용하여 POST 요청을 Google 코드에서 보내려고 시도한 후, itunes는 항상 이상한 응답 (대신 "status = 0"문자열)을 반환합니다.
는 여기 영수증 확인하기 위해 사용하는 코드입니다 :- (void)recordTransaction:(SKPaymentTransaction *)transaction {
NSString *receiptStr = [[NSString alloc] initWithData:transaction.transactionReceipt encoding:NSUTF8StringEncoding];
NSDictionary *jsonDictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"algo mas",@"receipt-data",nil];
NSString *jsonString = [jsonDictionary JSONRepresentation];
NSLog(@"string to send: %@",jsonString);
NSLog(@"JSON Created");
urlData = [[NSMutableData data] retain];
//NSURL *sandboxStoreURL = [[NSURL alloc] initWithString:@"https://sandbox.itunes.apple.com/verifyReceipt"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://sandbox.itunes.apple.com/verifyReceipt"]];
[request setHTTPMethod:@"POST"];
[request setHTTPBody:[jsonString dataUsingEncoding:NSUTF8StringEncoding]];
NSLog(@"will create connection");
[[NSURLConnection alloc] initWithRequest:request delegate:self];
}
어쩌면 내가 요청의 헤더에 뭔가를 잊고을하지만 문제는 내가 JSON 개체를 만드는 데 사용하는 방법이라고 생각합니다.
다음은 JSON 객체가 나는 HTTPBody에 추가하기 전에처럼 보이는 방법은 다음과 같습니다 내가있어
string to send: {"receipt-data":"{\n\t\"signature\" = \"AUYMbhY
...........
D0gIjEuMCI7Cn0=\";\n\t\"pod\" = \"100\";\n\t\"signing-status\" = \"0\";\n}"}
응답 :
완전 반응 {= "java.lang의 예외입니다. IllegalArgumentException : 인용 부호가없는 문자열을 읽는 동안 속성 목록 구문 분석에 실패했습니다. 허용되는 문자가 없습니다. 행 번호 : 1, 열 : 0. "; 상태 = 21002; }
감사합니다.
문서에서 'transactionReceipt'가 UTF-8로 인코딩 된 문자열로 해석 될 수 있다고 말하지 않습니다 – user102008