2011-06-15 7 views
1

내가 영수증 확인 주소로 데이터를 base64로 인코딩의 게시물 요청을 (이 C#으로입니다) :이상한 상태 코드는

 var postSerializer = new JavaScriptSerializer(); 
     byte[] toEncodeAsBytes = System.Text.ASCIIEncoding.ASCII.GetBytes(Receipt); 
     string returnValue = System.Convert.ToBase64String(toEncodeAsBytes); 

     var temp = new Dictionary<string, string>(); 

     temp.Add("receipt-data", returnValue); 

     string jsonReceipt = postSerializer.Serialize(temp); 
     request.Method = "POST"; 
     request.ContentType = "application/json"; 

     byte[] postBytes = System.Text.Encoding.ASCII.GetBytes(jsonReceipt); 



     request.ContentLength = postBytes.Length; 
     Stream dataStream = request.GetRequestStream(); 

     // Write the data to the request stream. 
     dataStream.Write(postBytes, 0, postBytes.Length); 
     // Close the Stream object. 
     dataStream.Close(); 
     WebResponse response = request.GetResponse(); 
     // Display the status. 
     Console.WriteLine(((HttpWebResponse)response).StatusDescription); 
     // Get the stream containing content returned by the server. 
     dataStream = response.GetResponseStream(); 
     // Open the stream using a StreamReader for easy access. 
     StreamReader reader = new StreamReader(dataStream); 
     // Read the content. 
     string responseFromServer = reader.ReadToEnd(); 

나는 일들이에 확신 올바른 형식은 Apple 영수증 인증 엔드 포인트에서 예외가 다시 발생하지 않기 때문입니다. 내가 돌아올 응답의 전체는

{상태 : -42352}입니다

그리고이 오류 어디서나 무엇을 의미하는지 알 수 없습니다. 아무도 이것이 무슨 뜻인지 또는 내 코드에 오류가 있는지 알고 있습니까?

답변

3

방금 ​​같은 문제가 해결되었습니다. 여기에서 해결책을 얻었습니다. Verify receipt for in App purchase

문제는 인코딩 후입니다. 내 서버에 게시물을 인코딩 할 때

$ receipt = json_encode (array ("receipt-data"=> base64_encode ($ receiptdata))));

동일한 -42352 상태입니다. iPhone에서 인코딩 할 수있는 자체 함수를 사용했을 때 모든 것이 효과가있었습니다. 매직 ...

+0

그것은 미치고 ... 애플의 64 비트 인코딩은 C#/php와는 다른가요? 참으로 어두운 마법. 정말 고맙습니다! –

+0

그래, 내 애플 리케이션에서 내 PHP 서비스로 데이터를 전송하는 방법인지 모르겠지만, 응용 프로그램에서 base64로 인코딩 된 문자열을 전송하고 서비스에서 인코딩하는 대신 트릭을 수행했다. – adjwilli

관련 문제