私はさまざまな自動再生可能なサブスクリプションのiOSアプリケーション用のアプリ内購入を実装しています。支払いが完了したら、取引情報をサーバー(クラウド)に送信して情報を記録する必要があります。これにより、定期的に領収書を確認して、有効期限を確認したり、キャンセル/払い戻しをしたり、更新したりする必要がなくなります。私たちは、アプリ内購買ガイドと共有秘密を使ってこれを行うために、サーバーからJSON呼び出しを一定の間隔で行うつもりですが、それにはまだ到達していませんが、購入する前に関連データを取得する必要がありますすなわち、NSDataオブジェクトであるTransactionReceiptである。NSDataをbase64エンコードに変換し、C#のバイト配列を
TransactionReceipt(購入したProductIDなどの他の項目の中で)の2つのパラメータをWebサービスに送信します。これを検証用のJSONリクエストで送信する必要があると考えられるbase64エンコード値として送信したいので、これをSQL Serverに保存します。
HOw、MonoTouch/C#を使用すると、NSData "TransactionReceipt"をbase64エンコードされたバイトに変換できますか?
ありがとうございます。
トップToByteメソッドを使用しようとしたときにこのエラーが発生しました。 //メッセージ:NSMutableDataのラッパーはサポートされていません。代わりにnew UnmanagedMemoryStream((Byte *)mutableData.Bytes、mutableData.Length)を呼び出してください。 //例外: NSMutableDataがサポートされていないため、/ Developer/MonoTouch/Source/monotouch/srcのMonoTouch.Foundation.NSData.AsStream()[0x0002f]ではなく、新しいUnmanagedMemoryStream((Byte *)mutableData.Bytes、mutableData.Length)を呼び出します。 /shared/Foundation/NSData.cs:144 – Neal
「NSData」のすべてが変更可能であるとは限らず、「AsStream」がこれをチェックするわけではありません。https://github.com/mono/maccore/blob/master/src/Foundation/NSData .cs#L136あなたは提案されたコードを試すことができます。 'UnmanagedMemoryStream')、または' Marshal'を使ってデータをコピーする 'ToByte'の2番目のバージョンです。 – poupou