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.
- #check_order_status(id) ⇒ Object
-
#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.
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 88 89 90 91 92 93 94 95 96 97 98 |
# File 'lib/klarna/api/methods/reservation.rb', line 62 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.
102 103 104 105 106 107 108 109 110 111 |
# File 'lib/klarna/api/methods/reservation.rb', line 102 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.
135 136 137 138 139 140 141 142 143 144 145 146 147 148 |
# File 'lib/klarna/api/methods/reservation.rb', line 135 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 |
#check_order_status(id) ⇒ Object
49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/klarna/api/methods/reservation.rb', line 49 def check_order_status(id) xmlrpc_params = [ ::Klarna::API::PROTOCOL_VERSION, ::XMLRPC::Client::USER_AGENT, self.store_id.to_i, self.digest(id.to_s), id.to_s, 0 ] self.call(:check_order_status, *xmlrpc_params) end |
#make_reservation_address(params) ⇒ Object Also known as: mk_reservation_address
Create addresses for arguments such as the activate_reservation
function.
166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 |
# File 'lib/klarna/api/methods/reservation.rb', line 166 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.
152 153 154 155 156 157 158 159 160 161 162 |
# File 'lib/klarna/api/methods/reservation.rb', line 152 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.
115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 |
# File 'lib/klarna/api/methods/reservation.rb', line 115 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 |