Class: Vendor::Buy
- Inherits:
-
Object
- Object
- Vendor::Buy
- Defined in:
- lib/project/buy.rb
Instance Attribute Summary collapse
-
#block ⇒ Object
Returns the value of attribute block.
-
#params ⇒ Object
Returns the value of attribute params.
-
#request_operation_queue ⇒ Object
Returns the value of attribute request_operation_queue.
Instance Method Summary collapse
- #close ⇒ Object
- #completeTransaction(transaction) ⇒ Object
- #failedTransaction(transaction) ⇒ Object
-
#finishTransaction(transaction, success: success) ⇒ Object
DELEGATE METHODS.
-
#initialize ⇒ Buy
constructor
A new instance of Buy.
- #paymentQueue(queue, updatedTransactions: transactions) ⇒ Object
-
#purchase(params, &block) ⇒ Object
PUBLIC METHODS.
- #restore(params, &block) ⇒ Object
- #restoreTransaction(transaction) ⇒ Object
Constructor Details
#initialize ⇒ Buy
Returns a new instance of Buy.
5 6 7 |
# File 'lib/project/buy.rb', line 5 def initialize SKPaymentQueue.defaultQueue.addTransactionObserver(self) end |
Instance Attribute Details
#block ⇒ Object
Returns the value of attribute block.
3 4 5 |
# File 'lib/project/buy.rb', line 3 def block @block end |
#params ⇒ Object
Returns the value of attribute params.
3 4 5 |
# File 'lib/project/buy.rb', line 3 def params @params end |
#request_operation_queue ⇒ Object
Returns the value of attribute request_operation_queue.
3 4 5 |
# File 'lib/project/buy.rb', line 3 def request_operation_queue @request_operation_queue end |
Instance Method Details
#close ⇒ Object
9 10 11 |
# File 'lib/project/buy.rb', line 9 def close SKPaymentQueue.defaultQueue.removeTransactionObserver(self) end |
#completeTransaction(transaction) ⇒ Object
61 62 63 |
# File 'lib/project/buy.rb', line 61 def completeTransaction(transaction) finishTransaction(transaction, success:true) end |
#failedTransaction(transaction) ⇒ Object
69 70 71 |
# File 'lib/project/buy.rb', line 69 def failedTransaction(transaction) finishTransaction(transaction, success:false) end |
#finishTransaction(transaction, success: success) ⇒ Object
DELEGATE METHODS
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# 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) ⇒ Object
47 48 49 50 51 52 53 54 55 56 57 58 59 |
# 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) ⇒ Object
PUBLIC METHODS
16 17 18 19 20 |
# 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) ⇒ Object
22 23 24 25 26 |
# File 'lib/project/buy.rb', line 22 def restore(params, &block) @params = params @block = block SKPaymentQueue.defaultQueue.restoreCompletedTransactions end |
#restoreTransaction(transaction) ⇒ Object
65 66 67 |
# File 'lib/project/buy.rb', line 65 def restoreTransaction(transaction) finishTransaction(transaction, success:true) end |