class Vendor::Buy
Attributes
block[RW]
params[RW]
request_operation_queue[RW]
Public Class Methods
new()
click to toggle source
# File lib/project/buy.rb, line 5 def initialize SKPaymentQueue.defaultQueue.addTransactionObserver(self) end
Public Instance Methods
close()
click to toggle source
# File lib/project/buy.rb, line 9 def close SKPaymentQueue.defaultQueue.removeTransactionObserver(self) end
completeTransaction(transaction)
click to toggle source
# File lib/project/buy.rb, line 61 def completeTransaction(transaction) finishTransaction(transaction, success:true) end
failedTransaction(transaction)
click to toggle source
# File lib/project/buy.rb, line 69 def failedTransaction(transaction) finishTransaction(transaction, success:false) end
finishTransaction(transaction, success:success)
click to toggle source
DELEGATE METHODS
# File lib/project/buy.rb, line 31 def finishTransaction(transaction, success:success) SKPaymentQueue.defaultQueue.finishTransaction(transaction) return if @params.nil? password = @params.secret=="no_secret" ? nil : @params.secret if success && !App.osx? # If successfull and ios # Verify transaction receipt Vendor::Receipt.new(transaction.transactionReceipt, @params) do |block| valid_receipt = block[:success] && block[:object][:status]==0 @block.call({success: valid_receipt, transaction: transaction}.to_object) unless @block.blank? end else @block.call({success: success, transaction: transaction}.to_object) unless @block.blank? end end
paymentQueue(queue, updatedTransactions:transactions)
click to toggle source
# File lib/project/buy.rb, line 47 def paymentQueue(queue, updatedTransactions:transactions) transactions.each do |transaction| case transaction.transactionState when 1 #SKPaymentTransactionStatePurchased completeTransaction(transaction) when 2 #SKPaymentTransactionStateFailed failedTransaction(transaction) when 3 #SKPaymentTransactionStateRestored restoreTransaction(transaction) else end end end
purchase(params, &block)
click to toggle source
PUBLIC METHODS
# File lib/project/buy.rb, line 16 def purchase(params, &block) @params = params @block = block SKPaymentQueue.defaultQueue.addPayment(SKPayment.paymentWithProduct(@params.sk_product)) end
restore(params, &block)
click to toggle source
# File lib/project/buy.rb, line 22 def restore(params, &block) @params = params @block = block SKPaymentQueue.defaultQueue.restoreCompletedTransactions end
restoreTransaction(transaction)
click to toggle source
# File lib/project/buy.rb, line 65 def restoreTransaction(transaction) finishTransaction(transaction, success:true) end