class StoreKit::Client

Attributes

shared_secret[RW]

Public Class Methods

new(host) click to toggle source
# File lib/storekit/client.rb, line 16
def initialize(host)
  @http = Net::HTTP.new host, 443
  @http.use_ssl = true
  @http.verify_mode = OpenSSL::SSL::VERIFY_PEER
end
production() click to toggle source
# File lib/storekit/client.rb, line 12
def self.production
  new(PRODUCTION_HOST)
end
sandbox() click to toggle source
# File lib/storekit/client.rb, line 8
def self.sandbox
  new(SANDBOX_HOST)
end

Public Instance Methods

verify!(base64_payload) click to toggle source
# File lib/storekit/client.rb, line 22
def verify!(base64_payload)
  payload = {'receipt-data' => base64_payload}
  payload['password'] = shared_secret if shared_secret

  req = Net::HTTP::Post.new '/verifyReceipt'
  req.body = JSON.generate payload
  resp = @http.request(req)

  decoded = JSON.parse resp.body

  if decoded['status'] == 0
    Receipt.new decoded
  else
    raise ValidationError.new decoded['status']
  end
end