Подтвердите сервер квитанции в Mac App Store

Я добавил IAP в свое приложение Mac Appstore. Я не могу правильно проверить сервер квитанции. Я читаю квитанцию, используя этот код:

NSURL *receiptURL = [[NSBundle mainBundle] appStoreReceiptURL];
NSData *receipt = [NSData dataWithContentsOfURL:receiptURL];

// This is my own method to convert to base64
NSString *receiptString = [NSData base64forData:receipt];

Затем я отправляю данные на свой сервер, который, в свою очередь, запрашивает https://sandbox.itunes.apple.com/verifyReceipt. чтобы узнать, действительна ли квитанция. Что бы я ни пытался, я всегда получаю недействительную квитанцию. Я также пробовал использовать gem Venice, у которого такая же проблема, когда я предоставляю ему свой файл квитанции в виде простого текста или закодированного с помощью команды base64 инструмент линии. Но в то же время он не работает с любым файлом квитанции, который я пробую из всех своих приложений в /Applications.

Кто-нибудь успешно реализовал проверку квитанции в Mac Appstore?


person koopajah    schedule 09.04.2014    source источник


Ответы (1)


После тщательного изучения этого вопроса я наконец нашел жемчужину, которая работает с квитанциями Mac Appstore: itunes-чек

require 'itunes/receipt'

# pass Base64 encoded raw receipt data which you received from your app
receipt = Itunes::Receipt.verify! 'ewoJInNpZ25hdHVyZSIgPSAi...'
receipt.product_id     # => 'com.example.products.100gems'
receipt.transaction_id # => '1234567890'
person koopajah    schedule 06.05.2014