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.