Validation 服务器上的应用内购买收据验证和新行字符

Validation 服务器上的应用内购买收据验证和新行字符,validation,ios7,in-app-purchase,receipt-validation,Validation,Ios7,In App Purchase,Receipt Validation,我目前正在开发一个应用程序内购买的解决方案,该解决方案将验证到我们的后端服务器,并且在将收据发送到我们的服务器时遇到了一些问题。当我通过执行 NSURL *receiptUrl = [bundle appStoreReceiptURL]; receipt = [NSData dataWithContentsOfURL:receiptUrl]; NSString *string = [receipt base64EncodedString]; 结

我目前正在开发一个应用程序内购买的解决方案,该解决方案将验证到我们的后端服务器,并且在将收据发送到我们的服务器时遇到了一些问题。当我通过执行

 NSURL *receiptUrl = [bundle appStoreReceiptURL];
            receipt = [NSData dataWithContentsOfURL:receiptUrl];
            NSString *string = [receipt base64EncodedString];
结果是这样的,只是一个摘录

MIIVOAYJKoZIhvcNAQcCoIIVKTCCFSUCAQExCzAJBgUrDgMCGgUAMIIE6QYJKoZI\r\n 

有这些字符\r\n经常出现在这一行和新行之间。有没有办法转换成没有这些字符的字符串?仅使用stringByReplacingOccurrencesOfString:删除它们安全吗?还是应该假设这些字符可以随机出现在base64字符串上,而没有新行的含义?如果我使用这些字符验证收据,它将返回21002,这表明收据数据格式不正确,但通过使用stringByReplacingOccurrencesOfString,它将验证OK,因此,我的问题是,我是应该手动删除这些字符,还是应该以某种方式转换收据?

听起来您的base 64编码有一些问题。显然,如果您不必支持早期版本,iOS7有一些base 64编码方法。看见