다양한 자동 갱신 구독에 대한 iOS 앱의 인앱 구매를 구현 중입니다. 지불이 완료되면 거래 정보를 서버 (클라우드)로 보내 정보를 기록하여 일정 간격으로 영수증을 확인하여 구독이 유효한지, 취소/환불 또는 갱신되지 않았는지 확인해야합니다. 우리는 인앱 구매 가이드와 공유 비밀을 통해 정해진 간격으로 서버에서 JSON 호출을 만들려고합니다. 그러나 아직까지는 그렇게하지 못했지만 구매하기 전에 관련 데이터를 가져야합니다. 즉, NSData 객체 인 TransactionReceipt입니다.NSData with base64encoded 및 C#의 바이트 배열
우리는 TransactionReceipt에 대한 우리의 웹 서비스에 두 개의 매개 변수를 보내고 싶습니다 (구입 한 ProductID와 같은 다른 항목들 중에서). 이것을 JSON 요청에서 검증을 위해 보내야한다고 생각하는 base64 인코딩 된 값으로 보내려고합니다. 그러면 SQL Server에이 값을 저장합니다.
HOw, MonoTouch/C#을 사용하여 NSData "TransactionReceipt"를 base64 인코딩 및 바이트 []로 변환 할 수 있습니까?
감사합니다.
최상위 ToByte 메서드를 사용하려고 할 때이 오류가 발생했습니다. // 메시지 : NSMutableData의 래퍼가 지원되지 않음 대신 new UnmanagedMemoryStream ((Byte *) mutableData.Bytes, mutableData.Length)을 호출하십시오. // 예외 : 래퍼 NSMutableData가 지원되지 않으므로 대신에 새로운 UnmanagedMemoryStream (Byte *) mutableData.Bytes, mutableData.Length를 호출하십시오 ::: MonoTouch.Foundation.NSData.AsStream() [0x0002f] in/Developer/MonoTouch/Source/monotouch/src /shared/Foundation/NSData.cs:144 – Neal
'NSData'가 모두 변경 가능하지는 않고 'AsStream'이이를 확인하지는 않습니다 : https://github.com/mono/maccore/blob/master/src/Foundation/NSData .cs # L136 제안 된 코드를 사용해 볼 수 있습니다 (예 : 'UnmanagedMemoryStream') 또는 내가 제공 한'ToByte'의 두번째 버전 ('Marshal'을 사용하고 데이터를 복사합니다). – poupou