Module: Klarna::API::Methods::Reservation
- Included in:
- Klarna::API::Methods
- Defined in:
- lib/klarna/api/methods/reservation.rb
Instance Method Summary collapse
-
#activate_reservation(params) ⇒ Object
Activate purchases which have been previously reserved with the reserve_amount function.
-
#cancel_reservation(params) ⇒ Object
Cancel a reservation.
-
#change_reservation(params) ⇒ Object
Change a reservation.
-
#make_reservation_address(params) ⇒ Object
(also: #mk_reservation_address)
Create addresses for arguments such as the
activate_reservation
function. -
#reserve_amount(params) ⇒ Object
Reserve a purchase amount for a specific customer.
-
#reserve_ocr_numbers(number_of_ocrs) ⇒ Object
Reserves one or more OCR numbers for your store.
-
#split_reservation(params) ⇒ Object
Split a reservation due to for example outstanding articles.
Instance Method Details
#activate_reservation(params) ⇒ Object
Activate purchases which have been previously reserved with the reserve_amount function.
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
# File 'lib/klarna/api/methods/reservation.rb', line 51 def activate_reservation(params) xmlrpc_params = [ ::Klarna::API::PROTOCOL_VERSION, ::XMLRPC::Client::USER_AGENT, params[:reservation_id], params[:ocr] || '', params[:pno], params[:gender] || 0, params[:reference] || '', params[:reference_code] || '', params[:order_id_1], params[:order_id_2], params[:delivery_address], params[:billing_address], params[:client_ip] || '0.0.0.0', params[:flags] || 0, params[:currency], params[:country], params[:language], self.store_id, self.digest(params[:pno], params[:goods_list].map{ |goods| goods[:goods][:artno]+':'+goods[:qty].to_s } ), params[:pno_encoding], (params[:pclass] || ::Klarna::API::DEFAULTS[:PCLASS]), params[:goods_list], params[:comment] || '', params[:shipmentinfo] || { delay_adjust: 1 }, params[:travelinfo] || [], params[:income_expense] || [::Klarna::API::DEFAULTS[:YSALARY]], params[:session_id] || [], params[:extra_info] || [] ] xmlrpc_params = [xmlrpc_params] # Klarna needs all values to be in first param for activate_reservation only self.call(:activate_reservation, *xmlrpc_params) end |
#cancel_reservation(params) ⇒ Object
Cancel a reservation.
91 92 93 94 95 96 97 98 99 100 |
# File 'lib/klarna/api/methods/reservation.rb', line 91 def cancel_reservation(params) xmlrpc_params = [ ::Klarna::API::PROTOCOL_VERSION, ::XMLRPC::Client::USER_AGENT, params[:reservation_id], self.store_id, self.digest(params[:reservation_id]) ] self.call(:cancel_reservation, *xmlrpc_params) end |
#change_reservation(params) ⇒ Object
Change a reservation.
124 125 126 127 128 129 130 131 132 133 134 135 136 137 |
# File 'lib/klarna/api/methods/reservation.rb', line 124 def change_reservation(params) xmlrpc_params = [ ::Klarna::API::PROTOCOL_VERSION, ::XMLRPC::Client::USER_AGENT, params[:reservation_id], params[:new_amount], self.store_id, self.digest(params[:reservation_id], params[:new_amount]) ] self.call(:change_reservation, *xmlrpc_params).tap do |result| result = result.first end end |
#make_reservation_address(params) ⇒ Object Also known as: mk_reservation_address
Create addresses for arguments such as the activate_reservation
function.
155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 |
# File 'lib/klarna/api/methods/reservation.rb', line 155 def make_reservation_address(params) { :email => (params[:email] || ''), :telno => (params[:telno] || ''), :cellno => (params[:cellno] || ''), :fname => (params[:fname] || ''), :lname => (params[:lname] || ''), :company => (params[:company] || ''), :careof => (params[:careof] || ''), :street => (params[:street] || ''), :zip => (params[:zip] || ''), :city => (params[:city] || ''), :country => (::Klarna::API.id_for(:country, params[:country]) || ''), :house_number => (params[:house_number] || ''), :house_extension => (params[:house_extension] || '') }.with_indifferent_access end |
#reserve_amount(params) ⇒ Object
Reserve a purchase amount for a specific customer. The reservation is valid, by default, for 7 days. Pass cellphone no. instead of Pno for SMS payments.
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/klarna/api/methods/reservation.rb', line 11 def reserve_amount(params) xmlrpc_params = [ ::Klarna::API::PROTOCOL_VERSION, ::XMLRPC::Client::USER_AGENT, params[:pno], params[:gender] || 0, params[:amount], params[:reference] || '', params[:reference_code] || '', params[:order_id], params[:order_id], params[:delivery_address], params[:billing_address], params[:client_ip] || '0.0.0.0', params[:flags] || 0, params[:currency], params[:country], params[:language], self.store_id, self.digest(params[:pno], params[:amount]), params[:pno_encoding], (params[:pclass] || ::Klarna::API::DEFAULTS[:PCLASS]), params[:goods_list], params[:comment] || '', params[:shipmentinfo] || { delay_adjust: 1 }, params[:travelinfo] || [], params[:income_expense] || [::Klarna::API::DEFAULTS[:YSALARY]], params[:bankinfo] || [], params[:session_id] || [], params[:extra_info] || [] ] self.call(:reserve_amount, *xmlrpc_params).tap do |result| result = result.first end end |
#reserve_ocr_numbers(number_of_ocrs) ⇒ Object
Reserves one or more OCR numbers for your store.
141 142 143 144 145 146 147 148 149 150 151 |
# File 'lib/klarna/api/methods/reservation.rb', line 141 def reserve_ocr_numbers(number_of_ocrs) # params = [ # ::Klarna::API::PROTOCOL_VERSION, # ::XMLRPC::Client::USER_AGENT, # number_of_ocrs, # self.store_id, # self.digest(number_of_ocrs) # ] # self.call(:reserve_ocr_nums, *params) raise NotImplementedError end |
#split_reservation(params) ⇒ Object
Split a reservation due to for example outstanding articles.
104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 |
# File 'lib/klarna/api/methods/reservation.rb', line 104 def split_reservation(params) xmlrpc_params = [ ::Klarna::API::PROTOCOL_VERSION, ::XMLRPC::Client::USER_AGENT, params[:reservation_id], params[:split_amount], params[:order_id_1], params[:order_id_2], params[:flags].to_i || 0, self.store_id, self.digest(params[:reservation_id], params[:split_amount]) ] self.call(:split_reservation, *xmlrpc_params).tap do |result| result = result.first end end |