Class: Paydunya::Checkout::Invoice
- Defined in:
- lib/paydunya/checkout/redirect_invoice.rb
Direct Known Subclasses
Instance Attribute Summary collapse
-
#callback_url ⇒ Object
Returns the value of attribute callback_url.
-
#cancel_url ⇒ Object
Returns the value of attribute cancel_url.
-
#currency ⇒ Object
Returns the value of attribute currency.
-
#custom_data ⇒ Object
Returns the value of attribute custom_data.
-
#customer ⇒ Object
Returns the value of attribute customer.
-
#description ⇒ Object
Returns the value of attribute description.
-
#invoice_url ⇒ Object
Returns the value of attribute invoice_url.
-
#items ⇒ Object
Returns the value of attribute items.
-
#receipt_url ⇒ Object
Returns the value of attribute receipt_url.
-
#return_url ⇒ Object
Returns the value of attribute return_url.
-
#store ⇒ Object
Returns the value of attribute store.
-
#taxes ⇒ Object
Returns the value of attribute taxes.
-
#token ⇒ Object
Returns the value of attribute token.
-
#total_amount ⇒ Object
Returns the value of attribute total_amount.
Attributes inherited from Core
#response_code, #response_text, #result, #status, #transaction_id
Instance Method Summary collapse
- #add_channel(channel) ⇒ Object
- #add_channels(channels) ⇒ Object
- #add_custom_data(key, value) ⇒ Object
-
#add_item(name, quantity, unit_price, total_price, description = '') ⇒ Object
Adds invoice items to the @items hash, the idea is to allow this function to be used in a loop.
-
#add_tax(name, amount) ⇒ Object
Adds invoice tax to the @taxes hash, the idea is to allow this function to be used in a loop.
- #confirm(token) ⇒ Object
- #create ⇒ Object
- #get_custom_data(key) ⇒ Object
- #get_customer_info(key) ⇒ Object
- #get_items ⇒ Object
- #get_taxes ⇒ Object
-
#initialize ⇒ Invoice
constructor
A new instance of Invoice.
Methods inherited from Core
Methods included from Utilities
#connection, #send_get_request, #send_post_request
Constructor Details
#initialize ⇒ Invoice
Returns a new instance of Invoice.
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/paydunya/checkout/redirect_invoice.rb', line 7 def initialize super @items = {} @taxes = {} @channels = [] @custom_data = {} @customer = {} @total_amount = 0.0 @currency = 'fcfa' @store = Paydunya::Checkout::Store @return_url = @store.return_url @cancel_url = @store.cancel_url @callback_url = @store.callback_url @token = '' end |
Instance Attribute Details
#callback_url ⇒ Object
Returns the value of attribute callback_url.
4 5 6 |
# File 'lib/paydunya/checkout/redirect_invoice.rb', line 4 def callback_url @callback_url end |
#cancel_url ⇒ Object
Returns the value of attribute cancel_url.
4 5 6 |
# File 'lib/paydunya/checkout/redirect_invoice.rb', line 4 def cancel_url @cancel_url end |
#currency ⇒ Object
Returns the value of attribute currency.
4 5 6 |
# File 'lib/paydunya/checkout/redirect_invoice.rb', line 4 def currency @currency end |
#custom_data ⇒ Object
Returns the value of attribute custom_data.
4 5 6 |
# File 'lib/paydunya/checkout/redirect_invoice.rb', line 4 def custom_data @custom_data end |
#customer ⇒ Object
Returns the value of attribute customer.
4 5 6 |
# File 'lib/paydunya/checkout/redirect_invoice.rb', line 4 def customer @customer end |
#description ⇒ Object
Returns the value of attribute description.
4 5 6 |
# File 'lib/paydunya/checkout/redirect_invoice.rb', line 4 def description @description end |
#invoice_url ⇒ Object
Returns the value of attribute invoice_url.
4 5 6 |
# File 'lib/paydunya/checkout/redirect_invoice.rb', line 4 def invoice_url @invoice_url end |
#items ⇒ Object
Returns the value of attribute items.
4 5 6 |
# File 'lib/paydunya/checkout/redirect_invoice.rb', line 4 def items @items end |
#receipt_url ⇒ Object
Returns the value of attribute receipt_url.
4 5 6 |
# File 'lib/paydunya/checkout/redirect_invoice.rb', line 4 def receipt_url @receipt_url end |
#return_url ⇒ Object
Returns the value of attribute return_url.
4 5 6 |
# File 'lib/paydunya/checkout/redirect_invoice.rb', line 4 def return_url @return_url end |
#store ⇒ Object
Returns the value of attribute store.
4 5 6 |
# File 'lib/paydunya/checkout/redirect_invoice.rb', line 4 def store @store end |
#taxes ⇒ Object
Returns the value of attribute taxes.
4 5 6 |
# File 'lib/paydunya/checkout/redirect_invoice.rb', line 4 def taxes @taxes end |
#token ⇒ Object
Returns the value of attribute token.
4 5 6 |
# File 'lib/paydunya/checkout/redirect_invoice.rb', line 4 def token @token end |
#total_amount ⇒ Object
Returns the value of attribute total_amount.
4 5 6 |
# File 'lib/paydunya/checkout/redirect_invoice.rb', line 4 def total_amount @total_amount end |
Instance Method Details
#add_channel(channel) ⇒ Object
46 47 48 |
# File 'lib/paydunya/checkout/redirect_invoice.rb', line 46 def add_channel(channel) @channels << channel end |
#add_channels(channels) ⇒ Object
50 51 52 53 54 55 |
# File 'lib/paydunya/checkout/redirect_invoice.rb', line 50 def add_channels(channels) @channels = [] channels.each do |channel| @channels << channel end end |
#add_custom_data(key, value) ⇒ Object
57 58 59 |
# File 'lib/paydunya/checkout/redirect_invoice.rb', line 57 def add_custom_data(key, value) @custom_data[key.to_s] = value end |
#add_item(name, quantity, unit_price, total_price, description = '') ⇒ Object
Adds invoice items to the @items hash, the idea is to allow this function to be used in a loop
24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/paydunya/checkout/redirect_invoice.rb', line 24 def add_item(name, quantity, unit_price, total_price, description = '') @items.merge!({ "item_#{@items.size}": { name: name, quantity: quantity, unit_price: unit_price, total_price: total_price, description: description } }) end |
#add_tax(name, amount) ⇒ Object
Adds invoice tax to the @taxes hash, the idea is to allow this function to be used in a loop
37 38 39 40 41 42 43 44 |
# File 'lib/paydunya/checkout/redirect_invoice.rb', line 37 def add_tax(name, amount) @taxes.merge!({ "tax_#{@taxes.size}": { name: name, amount: amount } }) end |
#confirm(token) ⇒ Object
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 |
# File 'lib/paydunya/checkout/redirect_invoice.rb', line 81 def confirm(token) result = send_get_request("#{Paydunya::Setup.checkout_confirm_base_url}#{token}") unless result.size > 0 @response_text = 'Invoice Not Found' @response_code = 1002 @status = Paydunya::FAIL return false end if result['status'] == 'completed' rebuild_invoice(result) @response_text = result['response_text'] true else @status = result['status'] @items = result['invoice']['items'] @taxes = result['invoice']['taxes'] @description = result['invoice']['description'] @custom_data = result['custom_data'] @total_amount = result['invoice']['total_amount'] @response_text = "Invoice status is #{result['status'].upcase}" false end end |
#create ⇒ Object
106 107 108 109 |
# File 'lib/paydunya/checkout/redirect_invoice.rb', line 106 def create result = send_post_request(Paydunya::Setup.checkout_base_url, build_invoice_payload) create_response(result) end |
#get_custom_data(key) ⇒ Object
76 77 78 79 |
# File 'lib/paydunya/checkout/redirect_invoice.rb', line 76 def get_custom_data(key) warn "[DEPRECATION] `get_custom_data(key)` is deprecated. Please use `custom_data['some_key]` instead." @custom_data[key.to_s] end |
#get_customer_info(key) ⇒ Object
71 72 73 74 |
# File 'lib/paydunya/checkout/redirect_invoice.rb', line 71 def get_customer_info(key) warn "[DEPRECATION] `get_customer_info(key)` is deprecated. Please use `customer['some_key]` instead." @customer[key.to_s] end |
#get_items ⇒ Object
61 62 63 64 |
# File 'lib/paydunya/checkout/redirect_invoice.rb', line 61 def get_items warn '[DEPRECATION] `get_items` is deprecated. Please use `items` instead.' @items end |
#get_taxes ⇒ Object
66 67 68 69 |
# File 'lib/paydunya/checkout/redirect_invoice.rb', line 66 def get_taxes warn '[DEPRECATION] `get_taxes` is deprecated. Please use `taxes` instead.' @taxes end |