在 C# 中将 NSData 转换为 base64 编码的 AND 一个字节数组

本文关键字:一个 数组 字节数 字节 AND NSData 中将 转换 编码 base64 | 更新日期: 2023-09-27 18:34:34

我正在为我们的iOS应用程序实施应用内购买,用于各种自动续期订阅。 付款完成后,我们需要将交易信息发送到我们的服务器(云(以记录信息,以便我们可以在设定的时间间隔内验证收据,以确保订阅有效,未取消/退款或续订。 我们将在设定的时间间隔内从服务器进行 JSON 调用,以通过应用内购买指南和我们的共享密钥执行此操作,但在此之前,我们需要从购买中获得相关数据,即 TransactionReceipt,这是一个 NSData 对象。

我们希望将两个参数发送到我们的 Web 服务以获取交易收据(以及其他项目,例如购买的产品 ID 等(。 我们希望将其作为base64编码值发送,这是我们认为需要在JSON请求中进行验证的值,因此我们将将其存储在SQL Server中。

HOw,使用MonoTouch/C#,我们可以将NSData"TransactionReceipt"转换为base64编码和字节[]吗?

谢谢。

在 C# 中将 NSData 转换为 base64 编码的 AND 一个字节数组

有两种

简单的方法可以从NSData中获取数据,使用StreamBytesLength属性。流版本如下所示:

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

BytesLength版本将是:

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

获取 base64 输出字符串保持不变:

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

有效:

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