Skip to content

Latest commit

 

History

History
108 lines (74 loc) · 3 KB

README.md

File metadata and controls

108 lines (74 loc) · 3 KB

Vendor

Installation

Add this line to your application's Gemfile:

gem 'rm_vendor'

And then execute:

$ bundle

Require in your rakefile:

require 'vendor'

Install pod dependencies:

$ rake pod:install

USAGE

Initialize.

Initialize your products with your In App Purchase ID. Vendor will check if the product exists and return it's attributes:

@products = Vendor::Products.new([{:name => "first_item", :id => "com.your.first_item.id"}, {:name => "second_item", :id => "com.your.second_item.id"}]) do |products|
  products.map{ |product| NSLog "Product exists?: #{product.success}" }
  products.map{ |product| NSLog "Product error: #{product.error}" }
  products.map{ |product| NSLog "Product response: #{product.response}" }
end

You don't need to pass along a block though. If you're sure your product exists, then you can just do this:

@products = Vendor::Products.new([{:name => "first_item", :id => "com.your.first_item.id"}, {:name => "second_item", :id => "com.your.second_item.id"}])

If you want to initialize your product with data such as price and description, you can do that as well:

@products = Vendor::Products.new([{:name => "first_item", :id => "com.your.first_item.id", :price => "0.99", :title ="Title of my first item", :description => "My first items description"}])

Get product info.

After you've initialized your product, you get its information:

@product[:first_item].price
@product[:first_item].title
@product[:first_item].description
@product[:first_item].bought?

Purchase product.

To purchase a product, simply do:

@product[:first_item].purchase do |product|
  p "Purchase successful: #{product.success}"
  p "Purchase transaction: #{product.transaction}"
end

And to restore it:

@product[:first_item].restore do |product|
  p "Restore successful: #{product.success}"
  p "Restore transaction: #{product.transaction}"
end

Subscriptions.

Vendor also works with subscriptions. To initialize a subscription:

@subscription_products = Vendor::Products.new([{:name => "subscription", :id => "com.your.subscription.id", :secret => "abcdefg12345", :subscription => true}]) do |subscriptions|
  subscriptions.map{ |subscription| NSLog "Subscription exists?: #{subscription.success}" }
  subscriptions.map{ |subscription| NSLog "Subscription error: #{subscription.error}" }
  subscriptions.map{ |subscription| NSLog "Subscription response: #{subscription.response}" }
end

To purchase a subscription:

@subscription_products[:subscription].purchase do |subscription|
  p "Subscription successful: #{subscription.success}"
  p "Subscription transaction: #{subscription.transaction}"
end

To see wether product is registered as a subscription and if user is currently subscribed:

@subscription_products[:subscription].subscribed?
@subscription_products[:subscription].subscription?

Example App.

You can find an example app inside this gem (inside the app folder).