klarna-xmlrpc 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.travis.yml +13 -0
- data/Gemfile +14 -0
- data/Guardfile +16 -0
- data/MIT-LICENSE +20 -0
- data/README.textile +139 -0
- data/Rakefile +22 -0
- data/TODO +30 -0
- data/examples/Gemfile +8 -0
- data/examples/config/initializer.rb +15 -0
- data/examples/console.rb +71 -0
- data/examples/public/images/klarna.png +0 -0
- data/examples/public/images/ruby.png +0 -0
- data/examples/views/_address.haml +22 -0
- data/examples/views/_articles.haml +21 -0
- data/examples/views/checkout_page_example.haml +2 -0
- data/examples/views/essential/add_transaction/_form.haml +32 -0
- data/examples/views/essential/add_transaction/result.haml +7 -0
- data/examples/views/essential/calculate_monthly_cost/_form.haml +16 -0
- data/examples/views/essential/calculate_monthly_cost/result.haml +7 -0
- data/examples/views/essential/get_addresses/_form.haml +9 -0
- data/examples/views/essential/get_addresses/result.haml +8 -0
- data/examples/views/index.haml +296 -0
- data/examples/views/layout.haml +48 -0
- data/examples/views/payment_terms_example.haml +102 -0
- data/examples/views/product_page_example.haml +2 -0
- data/examples/views/reservation/activate_reservation/_form.haml +54 -0
- data/examples/views/reservation/activate_reservation/result.haml +7 -0
- data/examples/views/reservation/cancel_reservation/_form.haml +8 -0
- data/examples/views/reservation/cancel_reservation/result.haml +7 -0
- data/examples/views/reservation/change_reservation/_form.haml +10 -0
- data/examples/views/reservation/change_reservation/result.haml +7 -0
- data/examples/views/reservation/reserve_amount/_form.haml +58 -0
- data/examples/views/reservation/reserve_amount/result.haml +7 -0
- data/examples/views/reservation/reserve_ocr_numbers/_form.haml +8 -0
- data/examples/views/reservation/reserve_ocr_numbers/result.haml +7 -0
- data/examples/views/reservation/split_reservation/_form.haml +14 -0
- data/examples/views/reservation/split_reservation/result.haml +7 -0
- data/examples/views/special/get_pclasses/_form.haml +8 -0
- data/examples/views/special/get_pclasses/result.haml +7 -0
- data/examples/views/special/invoice_address/_form.haml +8 -0
- data/examples/views/special/invoice_address/result.haml +7 -0
- data/examples/views/special/invoice_amount/_form.haml +8 -0
- data/examples/views/special/invoice_amount/result.haml +7 -0
- data/examples/views/special/is_invoice_paid/_form.haml +8 -0
- data/examples/views/special/is_invoice_paid/result.haml +7 -0
- data/examples/views/special/update_charge_amount/_form.haml +15 -0
- data/examples/views/special/update_charge_amount/result.haml +7 -0
- data/examples/views/special/update_goods_quantity/_form.haml +17 -0
- data/examples/views/special/update_goods_quantity/result.haml +7 -0
- data/examples/views/special/update_order_number/_form.haml +10 -0
- data/examples/views/special/update_order_number/result.haml +7 -0
- data/examples/views/useful/activate_invoice/_form.haml +9 -0
- data/examples/views/useful/activate_invoice/result.haml +7 -0
- data/examples/views/useful/credit_invoice/_form.haml +11 -0
- data/examples/views/useful/credit_invoice/result.haml +7 -0
- data/examples/views/useful/delete_invoice/_form.haml +9 -0
- data/examples/views/useful/delete_invoice/result.haml +7 -0
- data/examples/views/useful/email_invoice/_form.haml +9 -0
- data/examples/views/useful/email_invoice/result.haml +7 -0
- data/examples/views/useful/has_account/_form.haml +9 -0
- data/examples/views/useful/has_account/result.haml +7 -0
- data/examples/views/useful/return_amount/_form.haml +15 -0
- data/examples/views/useful/return_amount/result.haml +7 -0
- data/examples/views/useful/send_invoice/_form.haml +9 -0
- data/examples/views/useful/send_invoice/result.haml +7 -0
- data/examples/web.rb +349 -0
- data/klarna.gemspec +34 -0
- data/lib/klarna.rb +171 -0
- data/lib/klarna/api.rb +187 -0
- data/lib/klarna/api/client.rb +126 -0
- data/lib/klarna/api/constants.rb +647 -0
- data/lib/klarna/api/errors.rb +154 -0
- data/lib/klarna/api/methods.rb +16 -0
- data/lib/klarna/api/methods/cost_calculations.rb +134 -0
- data/lib/klarna/api/methods/invoicing.rb +304 -0
- data/lib/klarna/api/methods/reservation.rb +188 -0
- data/lib/klarna/api/methods/standard.rb +126 -0
- data/lib/klarna/version.rb +5 -0
- data/test/fixtures/api/companies.yml +97 -0
- data/test/fixtures/api/pclasses.yml +37 -0
- data/test/fixtures/api/persons.yml +144 -0
- data/test/fixtures/api/stores.yml +6 -0
- data/test/fixtures/klarna.yml +10 -0
- data/test/klarna/api/client_test.rb +288 -0
- data/test/klarna/api/errors_test.rb +34 -0
- data/test/klarna/api/methods/cost_calculations_test.rb +78 -0
- data/test/klarna/api/methods/invoicing_test.rb +409 -0
- data/test/klarna/api/methods/reservation_test.rb +66 -0
- data/test/klarna/api/methods/standard_test.rb +244 -0
- data/test/klarna/api_test.rb +184 -0
- data/test/klarna_test.rb +204 -0
- data/test/support/assertions_helper.rb +40 -0
- data/test/test_helper.rb +55 -0
- metadata +335 -0
@@ -0,0 +1,16 @@
|
|
1
|
+
%h3 Calculate Monthly Cost
|
2
|
+
%p Calculates the monthly cost given a purchase sum and a account key for low amounts.
|
3
|
+
|
4
|
+
%form{:action => '/essential/calculate_monthly_cost'}
|
5
|
+
%p
|
6
|
+
= field "Sum:", :sum, :text, :size => "4", :value => "49"
|
7
|
+
%p
|
8
|
+
= field "Interest rate:", :interest_rate, :text, :size => "5", :value => "19.5"
|
9
|
+
%p
|
10
|
+
= field "Amount of months:", :months, :text, :size => "2", :value => "24"
|
11
|
+
%p
|
12
|
+
= field "Monthly cost:", :monthly_fee, :text, :size => "5", :value => "29"
|
13
|
+
%p
|
14
|
+
= currency_selector("Currency:")
|
15
|
+
%p
|
16
|
+
= submit_button "Calculate"
|
@@ -0,0 +1,296 @@
|
|
1
|
+
%h1 API Methods
|
2
|
+
%p Here you can test the Klarna XML-RPC API for Ruby.
|
3
|
+
|
4
|
+
:javascript
|
5
|
+
var test_customers = {
|
6
|
+
/* Sweden */
|
7
|
+
'karl': {
|
8
|
+
'pno': '4304158399',
|
9
|
+
'first_name': 'Karl',
|
10
|
+
'last_name': 'Lidin',
|
11
|
+
'street_address': 'Junibackg. 42',
|
12
|
+
'postal_code': '23634',
|
13
|
+
'city': 'Hollviken',
|
14
|
+
'country': 'SE',
|
15
|
+
'currency': 'SEK',
|
16
|
+
'language': 'SV'
|
17
|
+
},
|
18
|
+
/* Sweden */
|
19
|
+
'maud': {
|
20
|
+
'pno': '5311096845',
|
21
|
+
'first_name': 'Maud',
|
22
|
+
'last_name': 'Johansson',
|
23
|
+
'street_address': 'Köpmansgatan 7',
|
24
|
+
'postal_code': '12149',
|
25
|
+
'city': 'Johanneshov',
|
26
|
+
'country': 'SE',
|
27
|
+
'currency': 'SEK',
|
28
|
+
'language': 'SV'
|
29
|
+
},
|
30
|
+
/* Finland */
|
31
|
+
'suvi': {
|
32
|
+
'pno': '2302468989',
|
33
|
+
'first_name': 'Suvi',
|
34
|
+
'last_name': 'Aurinkoinen',
|
35
|
+
'street_address': 'Planeettatie 2',
|
36
|
+
'postal_code': '01450',
|
37
|
+
'city': 'Vantaa',
|
38
|
+
'country': 'FI',
|
39
|
+
'currency': 'EUR',
|
40
|
+
'language': 'FI'
|
41
|
+
},
|
42
|
+
/* Finland */
|
43
|
+
'mikael': {
|
44
|
+
'pno': '010130887T',
|
45
|
+
'first_name': 'Mikael',
|
46
|
+
'last_name': 'Miehinen',
|
47
|
+
'street_address': 'Tikkuritie 11',
|
48
|
+
'postal_code': '01370',
|
49
|
+
'city': 'Vantaa',
|
50
|
+
'country': 'FI',
|
51
|
+
'currency': 'EUR',
|
52
|
+
'language': 'FI'
|
53
|
+
},
|
54
|
+
/* Norway */
|
55
|
+
'petter': {
|
56
|
+
'pno': '18106500157',
|
57
|
+
'first_name': 'Petter',
|
58
|
+
'last_name': 'Testmann',
|
59
|
+
'street_address': 'Hundremeterskogen 100',
|
60
|
+
'postal_code': '0563',
|
61
|
+
'city': 'Oslo',
|
62
|
+
'country': 'NO',
|
63
|
+
'currency': 'NOK',
|
64
|
+
'language': 'NO'
|
65
|
+
},
|
66
|
+
/* Norway */
|
67
|
+
'petra': {
|
68
|
+
'pno': '18106500076',
|
69
|
+
'first_name': 'Petra',
|
70
|
+
'last_name': 'Testdame',
|
71
|
+
'street_address': 'Sofienberggate 56',
|
72
|
+
'postal_code': '0563',
|
73
|
+
'city': 'Oslo',
|
74
|
+
'country': 'NO',
|
75
|
+
'currency': 'NOK',
|
76
|
+
'language': 'NO'
|
77
|
+
},
|
78
|
+
/* Denmark */
|
79
|
+
'rasmus': {
|
80
|
+
'pno': '0505610059',
|
81
|
+
'first_name': 'Rasmus Jens-Peter',
|
82
|
+
'last_name': 'Lybert',
|
83
|
+
'street_address': 'Godthåbvej 8,-2',
|
84
|
+
'postal_code': '3900',
|
85
|
+
'city': 'Godthåb',
|
86
|
+
'country': 'DK',
|
87
|
+
'currency': 'DKK',
|
88
|
+
'language': 'DA'
|
89
|
+
},
|
90
|
+
/* Germany */
|
91
|
+
'uno': {
|
92
|
+
'pno': '070719601',
|
93
|
+
'first_name': 'Uno',
|
94
|
+
'last_name': 'Vier',
|
95
|
+
'street_address': 'Hellersbergstrasse',
|
96
|
+
'postal_code': '41460',
|
97
|
+
'city': 'Neuss',
|
98
|
+
'country': 'DE',
|
99
|
+
'currency': 'EUR',
|
100
|
+
'language': 'DE'
|
101
|
+
}
|
102
|
+
}
|
103
|
+
var test_companies = {
|
104
|
+
/* Sweden */
|
105
|
+
'kalle_anka': {
|
106
|
+
'pno': '27968880',
|
107
|
+
'first_name': '',
|
108
|
+
'last_name': 'Kalle Anka AB',
|
109
|
+
'street_address': 'Storgatan 1',
|
110
|
+
'postal_code': '12345',
|
111
|
+
'city': 'Ankeborg',
|
112
|
+
'country': 'SE',
|
113
|
+
'currency': 'SEK',
|
114
|
+
'language': 'SV'
|
115
|
+
},
|
116
|
+
/* Sweden */
|
117
|
+
'bjornligan': {
|
118
|
+
'pno': '6720217931',
|
119
|
+
'first_name': '',
|
120
|
+
'last_name': 'Björnligan AB',
|
121
|
+
'street_address': 'Fulgatan 1',
|
122
|
+
'postal_code': '12345',
|
123
|
+
'city': 'Ankeborg',
|
124
|
+
'country': 'SE',
|
125
|
+
'currency': 'SEK',
|
126
|
+
'language': 'SV'
|
127
|
+
},
|
128
|
+
/* Finland */
|
129
|
+
'porin': {
|
130
|
+
'pno': '10891871',
|
131
|
+
'first_name': '',
|
132
|
+
'last_name': 'Porin Mies-Laulu r.y.',
|
133
|
+
'street_address': 'Vapaudenkatu 10',
|
134
|
+
'postal_code': '28100',
|
135
|
+
'city': 'Pori',
|
136
|
+
'country': 'FI',
|
137
|
+
'currency': 'EUR',
|
138
|
+
'language': 'FI'
|
139
|
+
},
|
140
|
+
/* Finland */
|
141
|
+
'mankalan': {
|
142
|
+
'pno': '07527622',
|
143
|
+
'first_name': '',
|
144
|
+
'last_name': 'Mankalan Perhekodit Oy',
|
145
|
+
'street_address': 'Porrassalmenkatu 19 B',
|
146
|
+
'postal_code': '50100',
|
147
|
+
'city': 'Parikkala',
|
148
|
+
'country': 'FI',
|
149
|
+
'currency': 'EUR',
|
150
|
+
'language': 'FI'
|
151
|
+
},
|
152
|
+
/* Denmark */
|
153
|
+
'onbase': {
|
154
|
+
'pno': '27968880',
|
155
|
+
'first_name': '',
|
156
|
+
'last_name': 'Onbase ApS',
|
157
|
+
'street_address': 'Centrumgaden 37',
|
158
|
+
'postal_code': '2750',
|
159
|
+
'city': 'Ballerup',
|
160
|
+
'country': 'DK',
|
161
|
+
'currency': 'DKK',
|
162
|
+
'language': 'DA'
|
163
|
+
}
|
164
|
+
};
|
165
|
+
|
166
|
+
function loadFormValues(values) {
|
167
|
+
document.add_transaction.pno.value = values['pno'];
|
168
|
+
document.add_transaction.first_name.value = values['first_name'];
|
169
|
+
document.add_transaction.last_name.value = values['last_name'];
|
170
|
+
document.add_transaction.street_address.value = values['street_address'];
|
171
|
+
document.add_transaction.postal_code.value = values['postal_code'];
|
172
|
+
document.add_transaction.city.value = values['city'];
|
173
|
+
document.add_transaction.country.value = values['country'];
|
174
|
+
document.add_transaction.currency.value = values['currency'];
|
175
|
+
document.add_transaction.lang.value = values['language'];
|
176
|
+
|
177
|
+
document.reserve_amount.pno.value = values['pno'];
|
178
|
+
document.reserve_amount.delivery_first_name.value = values['first_name'];
|
179
|
+
document.reserve_amount.delivery_last_name.value = values['last_name'];
|
180
|
+
document.reserve_amount.delivery_street_address.value = values['street_address'];
|
181
|
+
document.reserve_amount.delivery_postal_code.value = values['postal_code'];
|
182
|
+
document.reserve_amount.delivery_city.value = values['city'];
|
183
|
+
document.reserve_amount.delivery_country.value = values['country'];
|
184
|
+
document.reserve_amount.invoice_first_name.value = values['first_name'];
|
185
|
+
document.reserve_amount.invoice_last_name.value = values['last_name'];
|
186
|
+
document.reserve_amount.invoice_street_address.value = values['street_address'];
|
187
|
+
document.reserve_amount.invoice_postal_code.value = values['postal_code'];
|
188
|
+
document.reserve_amount.invoice_city.value = values['city'];
|
189
|
+
document.reserve_amount.invoice_country.value = values['country'];
|
190
|
+
document.reserve_amount.country.value = values['country'];
|
191
|
+
document.reserve_amount.currency.value = values['currency'];
|
192
|
+
document.reserve_amount.lang.value = values['language'];
|
193
|
+
document.reserve_amount.pno_encoding.value = values['pno_encoding'] || values['country'];
|
194
|
+
|
195
|
+
document.active_reservation.pno.value = values['pno'];
|
196
|
+
document.active_reservation.delivery_first_name.value = values['first_name'];
|
197
|
+
document.active_reservation.delivery_last_name.value = values['last_name'];
|
198
|
+
document.active_reservation.delivery_street_address.value = values['street_address'];
|
199
|
+
document.active_reservation.delivery_postal_code.value = values['postal_code'];
|
200
|
+
document.active_reservation.delivery_city.value = values['city'];
|
201
|
+
document.active_reservation.delivery_country.value = values['country'];
|
202
|
+
document.active_reservation.invoice_first_name.value = values['first_name'];
|
203
|
+
document.active_reservation.invoice_last_name.value = values['last_name'];
|
204
|
+
document.active_reservation.invoice_street_address.value = values['street_address'];
|
205
|
+
document.active_reservation.invoice_postal_code.value = values['postal_code'];
|
206
|
+
document.active_reservation.invoice_city.value = values['city'];
|
207
|
+
document.active_reservation.invoice_country.value = values['country'];
|
208
|
+
document.active_reservation.country.value = values['country'];
|
209
|
+
document.active_reservation.currency.value = values['currency'];
|
210
|
+
document.active_reservation.lang.value = values['language'];
|
211
|
+
document.active_reservation.pno_encoding.value = values['pno_encoding'] || values['country'];
|
212
|
+
}
|
213
|
+
|
214
|
+
function setFormValues(name) {
|
215
|
+
var values = test_customers[name] || test_companies[name];
|
216
|
+
loadFormValues(values);
|
217
|
+
}
|
218
|
+
|
219
|
+
%h2 Test persons
|
220
|
+
%strong Sweden:
|
221
|
+
= button("Karl", "setFormValues('karl')")
|
222
|
+
= button("Maud", "setFormValues('maud')")
|
223
|
+
= button("Kalle Anka AB", "setFormValues('kalle_anka')")
|
224
|
+
= button("Björnligan AB", "setFormValues('bjornligan')")
|
225
|
+
%br
|
226
|
+
%strong Finland:
|
227
|
+
= button("Suvi", "setFormValues('suvi')")
|
228
|
+
= button("Mikael", "setFormValues('mikael')")
|
229
|
+
= button("Porin", "setFormValues('porin')")
|
230
|
+
= button("Mankalan", "setFormValues('mankalan')")
|
231
|
+
%br
|
232
|
+
%strong Denmark:
|
233
|
+
= button("Rasmus", "setFormValues('rasmus')")
|
234
|
+
= button("Onbase", "setFormValues('onbase')")
|
235
|
+
%br
|
236
|
+
%strong Norway:
|
237
|
+
= button("Petter", "setFormValues('petter')")
|
238
|
+
= button("Petra", "setFormValues('petra')")
|
239
|
+
%br
|
240
|
+
%strong Germany:
|
241
|
+
= button("Uno", "setFormValues('uno')")
|
242
|
+
|
243
|
+
%h2 A. Essential
|
244
|
+
%section
|
245
|
+
= partial(:essential, :get_addresses, :form)
|
246
|
+
%hr
|
247
|
+
= partial(:essential, :calculate_monthly_cost, :form)
|
248
|
+
%hr
|
249
|
+
= partial(:essential, :add_transaction, :form)
|
250
|
+
|
251
|
+
%h2 B. Invoicing
|
252
|
+
%section
|
253
|
+
= partial(:useful, :activate_invoice, :form)
|
254
|
+
%hr
|
255
|
+
= partial(:useful, :credit_invoice, :form)
|
256
|
+
%hr
|
257
|
+
= partial(:useful, :return_amount, :form)
|
258
|
+
%hr
|
259
|
+
= partial(:useful, :delete_invoice, :form)
|
260
|
+
%hr
|
261
|
+
= partial(:useful, :email_invoice, :form)
|
262
|
+
%hr
|
263
|
+
= partial(:useful, :send_invoice, :form)
|
264
|
+
%hr
|
265
|
+
= partial(:useful, :has_account, :form)
|
266
|
+
|
267
|
+
%h2 C. Special
|
268
|
+
%section
|
269
|
+
= partial(:special, :update_goods_quantity, :form)
|
270
|
+
%hr
|
271
|
+
= partial(:special, :update_charge_amount, :form)
|
272
|
+
%hr
|
273
|
+
= partial(:special, :update_order_number, :form)
|
274
|
+
%hr
|
275
|
+
= partial(:special, :invoice_address, :form)
|
276
|
+
%hr
|
277
|
+
= partial(:special, :invoice_amount, :form)
|
278
|
+
%hr
|
279
|
+
= partial(:special, :is_invoice_paid, :form)
|
280
|
+
%hr
|
281
|
+
= partial(:special, :get_pclasses, :form)
|
282
|
+
%hr
|
283
|
+
|
284
|
+
%h2 D. Reservation
|
285
|
+
%section
|
286
|
+
= partial(:reservation, :reserve_amount, :form)
|
287
|
+
%hr
|
288
|
+
= partial(:reservation, :activate_reservation, :form)
|
289
|
+
%hr
|
290
|
+
= partial(:reservation, :cancel_reservation, :form)
|
291
|
+
%hr
|
292
|
+
= partial(:reservation, :change_reservation, :form)
|
293
|
+
%hr
|
294
|
+
= partial(:reservation, :split_reservation, :form)
|
295
|
+
%hr
|
296
|
+
= partial(:reservation, :reserve_ocr_numbers, :form)
|
@@ -0,0 +1,48 @@
|
|
1
|
+
!!! 5
|
2
|
+
%html
|
3
|
+
%head
|
4
|
+
%title Klarna API Test (Ruby)
|
5
|
+
%meta{:'http-equiv' => 'Content-Type', :content => 'text/html; charset=utf-8'}
|
6
|
+
%style
|
7
|
+
:sass
|
8
|
+
body
|
9
|
+
padding: 0.3em 0.5em
|
10
|
+
font:
|
11
|
+
family: helvetica
|
12
|
+
size: 90%
|
13
|
+
h2
|
14
|
+
border-bottom: 1px solid #ccc
|
15
|
+
padding-bottom: 0.2em
|
16
|
+
margin:
|
17
|
+
top: 1.5em
|
18
|
+
bottom: 1em
|
19
|
+
form
|
20
|
+
font-size: 80%
|
21
|
+
label
|
22
|
+
font-weight: bold
|
23
|
+
hr
|
24
|
+
border: none
|
25
|
+
border-bottom: 1px dotted #ccc
|
26
|
+
section
|
27
|
+
padding-left: 2em
|
28
|
+
th
|
29
|
+
text-align: left
|
30
|
+
%body
|
31
|
+
%header
|
32
|
+
#logo
|
33
|
+
%img{:src => "/images/klarna.png"}
|
34
|
+
%img{:src => "/images/ruby.png"}
|
35
|
+
|
36
|
+
%nav
|
37
|
+
%p
|
38
|
+
%strong Examples:
|
39
|
+
= link_to "API Methods", :root
|
40
|
+
= "|"
|
41
|
+
= link_to "Product Page", :product_page_example
|
42
|
+
= "|"
|
43
|
+
= link_to "Checkout Page", :checkout_page_example
|
44
|
+
= "|"
|
45
|
+
= link_to "Payment Terms", :payment_terms_example
|
46
|
+
|
47
|
+
#content
|
48
|
+
= yield
|
@@ -0,0 +1,102 @@
|
|
1
|
+
%h1 Invoice & Part-payment Terms
|
2
|
+
%p It is very important that invoice and part payment terms are correctly shown in the webshop. Both invoice and part payment terms has to be shown in your terms and condition page.
|
3
|
+
|
4
|
+
%h2 Sweden
|
5
|
+
%p
|
6
|
+
Invoice terms:
|
7
|
+
= link_to "https://online.klarna.com/villkor.yaws?eid=2&charge=5", "https://online.klarna.com/villkor.yaws?eid=2&charge=5"
|
8
|
+
*
|
9
|
+
%p
|
10
|
+
Account information:
|
11
|
+
= link_to "https://online.klarna.com/account_se.yaws?eid=2", "https://online.klarna.com/account_se.yaws?eid=2"
|
12
|
+
**
|
13
|
+
%p
|
14
|
+
Account terms:
|
15
|
+
= link_to "http://klarna.se/kontovillkor.pdf", "http://klarna.se/kontovillkor.pdf"
|
16
|
+
%p
|
17
|
+
Mobile terms:
|
18
|
+
= link_to "https://online.klarna.com/mobile_terms_se.yaws", "https://online.klarna.com/mobile_terms_se.yaws"
|
19
|
+
%p
|
20
|
+
Homepage:
|
21
|
+
= link_to "http://klarna.se", "http://klarna.se"
|
22
|
+
%p
|
23
|
+
Lowest amount to pay:
|
24
|
+
%strong 50 SEK/month
|
25
|
+
|
26
|
+
%h2 Norway
|
27
|
+
%p
|
28
|
+
Invoice terms:
|
29
|
+
= link_to "https://online.klarna.com/villkor_no.yaws?eid=2&charge=5", "https://online.klarna.com/villkor_no.yaws?eid=2&charge=5"
|
30
|
+
*
|
31
|
+
%p
|
32
|
+
Account information:
|
33
|
+
= link_to "https://online.klarna.com/account_no.yaws?eid=2", "https://online.klarna.com/account_no.yaws?eid=2"
|
34
|
+
**
|
35
|
+
%p
|
36
|
+
Account terms:
|
37
|
+
= link_to "http://klarna.no/kontovilkar.pdf", "http://klarna.no/kontovilkar.pdf"
|
38
|
+
%p
|
39
|
+
Homepage:
|
40
|
+
= link_to "http://klarna.no", "http://klarna.no"
|
41
|
+
%p
|
42
|
+
Lowest amount to pay:
|
43
|
+
%strong 95 NOK/month
|
44
|
+
|
45
|
+
|
46
|
+
%h2 Finland
|
47
|
+
%p
|
48
|
+
Invoice terms:
|
49
|
+
= link_to "https://online.klarna.com/villkor_fi.yaws?eid=2&charge=5", "https://online.klarna.com/villkor_fi.yaws?eid=2&charge=5"
|
50
|
+
*
|
51
|
+
%p
|
52
|
+
Account information:
|
53
|
+
= link_to "https://online.klarna.com/account_fi.yaws?eid=2", "https://online.klarna.com/account_fi.yaws?eid=2"
|
54
|
+
**
|
55
|
+
%p
|
56
|
+
Account terms:
|
57
|
+
= link_to "http://klarna.com/klarna-tiliehdot.pdf", "http://klarna.com/klarna-tiliehdot.pdf"
|
58
|
+
%p
|
59
|
+
Homepage:
|
60
|
+
= link_to "http://klarna.fi", "http://klarna.fi"
|
61
|
+
%p
|
62
|
+
Lowest amount to pay:
|
63
|
+
%strong 8,95 EUR/month
|
64
|
+
|
65
|
+
|
66
|
+
%h2 Denmark
|
67
|
+
%p
|
68
|
+
Invoice terms:
|
69
|
+
= link_to "https://online.klarna.com/villkor_dk.yaws?eid=2&charge=5", "https://online.klarna.com/villkor_dk.yaws?eid=2&charge=5"
|
70
|
+
*
|
71
|
+
%p
|
72
|
+
Account information:
|
73
|
+
= link_to "https://online.klarna.com/account_dk.yaws?eid=2", "https://online.klarna.com/account_dk.yaws?eid=2"
|
74
|
+
**
|
75
|
+
%p
|
76
|
+
Account terms:
|
77
|
+
= link_to "http://klarna.dk/kontovilkar.pdf", "http://klarna.dk/kontovilkar.pdf"
|
78
|
+
%p
|
79
|
+
Homepage:
|
80
|
+
= link_to "http://klarna.dk", "http://klarna.dk"
|
81
|
+
%p
|
82
|
+
Lowest amount to pay:
|
83
|
+
%strong 89 DKK/month
|
84
|
+
|
85
|
+
%h2 Germany
|
86
|
+
%p
|
87
|
+
Invoice terms:
|
88
|
+
= link_to "https://online.klarna.com/villkor_de.yaws?eid=2&charge=5", "https://online.klarna.com/villkor_de.yaws?eid=2&charge=5"
|
89
|
+
*
|
90
|
+
%p
|
91
|
+
Account information:
|
92
|
+
= link_to "https://online.klarna.com/account_de.yaws?eid=2", "https://online.klarna.com/account_de.yaws?eid=2"
|
93
|
+
**
|
94
|
+
%p
|
95
|
+
Account terms
|
96
|
+
= link_to "http://klarna.se/pdf/Vertragsbedingungen.pdf", "http://klarna.se/pdf/Vertragsbedingungen.pdf"
|
97
|
+
%p
|
98
|
+
Homepage:
|
99
|
+
= link_to "http://klarna.de", "http://klarna.de"
|
100
|
+
%p
|
101
|
+
Lowest amount to pay:
|
102
|
+
%strong 6,95 EUR/month
|