texto net encoded convertir convert bytes array archivo c# ios xamarin.ios in-app-purchase storekit

net - convertir un string a byte c#



Convierta NSData en base64encoded Y una matriz de bytes en C# (2)

Hay dos maneras sencillas de obtener datos de NSData , utilizando una Stream o las propiedades Bytes y Length . La versión del flujo se vería así:

public byte[] ToByte (NSData data) { MemoryStream ms = new MemoryStream (); data.AsStream ().CopyTo (ms); return ms.ToArray (); }

la versión Bytes y Length sería:

public byte[] ToByte (NSData data) { byte[] result = new byte[data.Length]; Marshal.Copy (data.Bytes, result, 0, (int) data.Length); return result; }

Obtener la cadena de salida base64 sigue siendo idéntica:

public string ToBase64String (NSData data) { return Convert.ToBase64String (ToByte (data)); }

Estoy implementando compras en la aplicación para nuestra aplicación iOS para varias suscripciones auto renovables. Cuando se complete el pago, debemos enviar la información de la transacción a nuestro servidor (nube) para registrar la información, de modo que podamos verificar la recepción en un intervalo establecido para asegurarnos de que la suscripción sea válida, no cancelada / reembolsada o renovada. Vamos a hacer las llamadas JSON desde el servidor en un intervalo establecido para hacer esto a través de la guía de compras en la aplicación y nuestro secreto compartido, aún tenemos que llegar a eso, pero antes de hacerlo necesitamos tener los datos relevantes de la compra , es decir, el TransactionReceipt que es un objeto NSData.

Queremos enviar dos parámetros a nuestro servicio web para TransactionReceipt (entre otros elementos, como el ProductID comprado, etc.). Queremos enviar esto como un valor codificado en base64 que es lo que creemos que debe enviarse en la solicitud JSON para validación, por lo que lo almacenaremos en SQL Server.

¿Cómo podemos usar MonoTouch / C # para convertir el NSData "TransactionReceipt" a base64encoded y también a un byte []?

Gracias.


Eso también funciona:

string yourDataInBase64 = Convert.ToBase64String(yourData.ToArray());