Handle iTunes In App Purchase Receipt Verification.


gem install itunes-receipt


require 'itunes/receipt'

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

See lib/itunes/receipt.rb for more attributes.

If you want to accept iTunes sandbox receipts, do like this. With allow_sandbox_receipt option specified, this gem post given receipt data to iTunes production first, and when iTunes production tells it's sandbox receipt, re-send it to iTunes sandbox again automatically. Without this option, this gem just raises an exception.

receipt = Itunes::Receipt.verify! 'ewoJInNpZ25hdHVyZSIgPSAi...', :allow_sandbox_receipt
receipt.sandbox? # => true/false

If you want to accept ONLY iTunes sandbox receipts (in your stable server etc.), call Itunes.sandbox! somewhere before you call Itunes::Receipt.verify!. Then all verification call after that goes to iTunes sandbox, until you do Itunes.sandbox = false.

Note on Patches/Pull Requests

  • Fork the project.

  • Make your feature addition or bug fix.

  • Add tests for it. This is important so I don't break it in a future version unintentionally.

  • Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)

  • Send me a pull request. Bonus points for topic branches.


Copyright © 2011 nov matake. See LICENSE for details.