Class: Honeycrisp::Client
- Inherits:
-
Object
- Object
- Honeycrisp::Client
- Defined in:
- lib/honeycrisp/client.rb
Constant Summary collapse
- HTTP_HEADERS =
{ 'Accept' => 'application/json', 'Content-Type' => 'application/json', 'Accept-Charset' => 'utf-8', 'User-Agent' => "honeycrisp/#{Honeycrisp::VERSION}" \ " (#{RUBY_ENGINE}/#{RUBY_PLATFORM}" \ " #{RUBY_VERSION}-p#{RUBY_PATCHLEVEL})" }
Instance Attribute Summary collapse
-
#shared_secret ⇒ Object
readonly
Returns the value of attribute shared_secret.
-
#use_sandbox ⇒ Object
readonly
Returns the value of attribute use_sandbox.
Instance Method Summary collapse
- #host ⇒ Object
-
#initialize(*args) ⇒ Client
constructor
A new instance of Client.
- #validate_receipt(base64_receipt) ⇒ Object
Constructor Details
#initialize(*args) ⇒ Client
Returns a new instance of Client.
18 19 20 21 22 23 24 25 |
# File 'lib/honeycrisp/client.rb', line 18 def initialize(*args) = args.last.is_a?(Hash) ? args.pop : {} @shared_secret = args[0] || Honeycrisp.shared_secret @use_sandbox = .fetch(:use_sandbox, Honeycrisp.use_sandbox) raise ArgumentError, 'Shared secret is required' if @shared_secret.nil? end |
Instance Attribute Details
#shared_secret ⇒ Object (readonly)
Returns the value of attribute shared_secret.
16 17 18 |
# File 'lib/honeycrisp/client.rb', line 16 def shared_secret @shared_secret end |
#use_sandbox ⇒ Object (readonly)
Returns the value of attribute use_sandbox.
16 17 18 |
# File 'lib/honeycrisp/client.rb', line 16 def use_sandbox @use_sandbox end |
Instance Method Details
#host ⇒ Object
27 28 29 |
# File 'lib/honeycrisp/client.rb', line 27 def host use_sandbox ? 'https://sandbox.itunes.apple.com' : 'https://buy.itunes.apple.com' end |
#validate_receipt(base64_receipt) ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/honeycrisp/client.rb', line 31 def validate_receipt(base64_receipt) connection.response :logger, ::Logger.new($stdout) if ENV['HONEYCRISP_DEBUG'] == 'true' params = { 'receipt-data' => base64_receipt, 'password' => shared_secret } response = connection.post do |request| request.url '/verifyReceipt' request.headers.merge!(HTTP_HEADERS) request.body = MultiJson.dump(params) end Honeycrisp::Receipt.new(MultiJson.load(response.body)) end |