6

Mac Appstore アプリケーションに IAP を追加しました。レシート サーバー側を正しく検証できません。このコードを使用して領収書を読んでいます:

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://buy.itunes.apple.com/verifyReceiptをクエリして、領収書が有効かどうかを確認します。何をしようとしても、常に無効なレシートになってしまいます。また、レシートファイルをプレーンテキストとして提供するか、コマンドラインツールでエンコードすると、同じ問題が発生するgem Veniceを使用してみました。base64しかし同時に、すべてのアプリから試した領収書ファイルで失敗します/Applications

Mac Appstore でレシート検証の実装に成功した人はいますか?

4

1 に答える 1

3

これをさらに調査した後、最終的に Mac Appstore のレシートで動作する gem を見つけました: itunes-receipt

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'
于 2014-05-06T15:12:59.713 に答える