Venice is a simple gem for verifying Apple In-App Purchase receipts, and retrieving the information associated with receipt data.
There are two reasons why you should verify in-app purchase receipts on the server: First, it allows you to keep your own records of past purchases, which is useful for up-to-the-minute metrics and historical analysis. Second, server-side verification over SSL is the most reliable way to determine the authenticity of purchasing records.
See Apple's In-App Purchase Programming Guide for additional information.
Venice is named for Venice, Italy—or more specifically, Shakespeare's The Merchant of Venice. It's part of a series of world-class command-line utilities for iOS development, which includes Cupertino (Apple Dev Center management), Shenzhen (Building & Distribution), Houston (Push Notifications), and Dubai (Passbook pass generation).
$ gem install venice
require 'venice'
data = "(Base64-Encoded Receipt Data)"
if receipt = Venice::Receipt.verify(data)
p receipt.to_h
end
Venice also comes with the iap
binary, which provides a convenient way to verify receipts from the command line.
$ iap verify /path/to/receipt
+-----------------------------+-------------------------------+
| Receipt |
+-----------------------------+-------------------------------+
| app_item_id | |
| bid | com.foo.bar |
| bvrs | 20120427 |
| original_purchase_date | Sun, 01 Jan 2013 12:00:00 GMT |
| original_transaction_id | 1000000000000001 |
| product_id | com.example.product |
| purchase_date | Sun, 01 Jan 2013 12:00:00 GMT |
| quantity | 1 |
| transaction_id | 1000000000000001 |
| version_external_identifier | |
+-----------------------------+-------------------------------+
Mattt Thompson
Venice is available under the MIT license. See the LICENSE file for more info.