我正在为我们的iOS应用程序实现各种自动续订订阅的应用内购买。当付款完成后,我们需要将交易信息发送到我们的服务器(云)以记录信息,以便我们可以按照设置的时间间隔验证收据,以确保订阅有效,未取消/退款或续订。我们将按照应用内购买指南和我们的共享密钥从服务器上进行JSON调用,并在此之前尚未完成,但在此之前,我们需要获得与购买相关的数据,即TransactionReceipt,它是一个NSData对象。
我们想要向我们的Web服务发送两个参数,以获取TransactionReceipt(以及购买的ProductID等其他项目)。我们希望将此作为base64编码值发送,这是我们认为需要在JSON请求中发送以进行验证的内容,因此我们将其存储在SQL Server中。
如何使用MonoTouch / C#将NSData“TransactionReceipt”转换为base64编码和byte []?
谢谢。
我们想要向我们的Web服务发送两个参数,以获取TransactionReceipt(以及购买的ProductID等其他项目)。我们希望将此作为base64编码值发送,这是我们认为需要在JSON请求中发送以进行验证的内容,因此我们将其存储在SQL Server中。
如何使用MonoTouch / C#将NSData“TransactionReceipt”转换为base64编码和byte []?
谢谢。
NSData
都是可变的,而AsStream
会检查这一点,请参见:https://github.com/mono/maccore/blob/master/src/Foundation/NSData.cs#L136 您可以尝试建议的代码(即UnmanagedMemoryStream
),或者我提供的第二个版本的ToByte
(使用Marshal
并复制数据)。 - poupou