Giter Club home page Giter Club logo

venice's Introduction

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 Receipt Validation 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), Dubai (Passbook pass generation), and Nashville (iTunes Store API).

Installation

$ gem install venice

Usage

Basic

require 'venice'

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

  # You can refer an original JSON response via a Receipt instance.
  case receipt.original_json_response['status'].to_i
    when 0     then foo
    when 21006 then bar
  end
end

For Auto-Renewable

require 'venice'

data = "(Base64-Encoded Receipt Data)"

# You must pass shared secret when verification on Auto-Renewable
opts = {
  shared_secret: 'your key'
}
if receipt = Venice::Receipt.verify(data, opts)
  # Renewed receipts are added into `latest_receipt_info` array.
  p receipt.latest_receipt_info.map(&:expires_at)
  # => [2016-05-19 20:35:59 +0000, 2016-06-18 20:35:59 +0000, 2016-07-18 20:35:59 +0000]
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 |                                    |
+--------------------------------+------------------------------------+

Creator

Mattt Thompson (@mattt)

License

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

venice's People

Contributors

alexpil avatar amoslanka avatar coneybeare avatar dankimio avatar iamjohnford avatar interstateone avatar kattrali avatar klappradla avatar krzyzak avatar lmarburger avatar mackross avatar mattt avatar mootpointer avatar ohbarye avatar subdigital avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.