Venice

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).

Installation

$ gem install venice

Usage

require 'venice'

data = "(Base64-Encoded Receipt Data)"
if receipt = Venice::Receipt.verify(data)
  p receipt.to_h
end

Command Line Interface

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                               |
+--------------------------------+------------------------------------+
| adam_id                        | 664753504                          |
| application_version            | 123                                |
| bundle_id                      | com.example.product                |
| download_id                    | 30000000000005                     |
| expires_at                     |                                    |
| latest_receipt                 |                                    |
| original_application_version   | 123                                |
| original_purchase_date         | Fri, 07 Mar 2014 20:59:24 GMT      |
| receipt_type                   | Production                         |
| requested_at                   | Mon, 23 Jun 2014 17:59:38 GMT      |
+--------------------------------+------------------------------------+
| in_app                         | 1                                  |
|  - app_item_id                 |                                    |
|  - cancellation_at             |                                    |
|  - expires_at                  |                                    |
|  - original_purchase_date      |                                    |
|  - original_transaction_id     | 1000000000000001                   |
|  - product_id                  | com.example.product                |
|  - purchase_date               |                                    |
|  - quantity                    | 1                                  |
|  - transaction_id              | 1000000000000001                   |
|  - version_external_identifier |                                    |
+--------------------------------+------------------------------------+

Contact

Mattt Thompson

License

Venice is available under the MIT license. See the LICENSE file for more info.