klarna 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (95) hide show
  1. data/.gitignore +9 -0
  2. data/.travis.yml +13 -0
  3. data/Gemfile +14 -0
  4. data/Guardfile +16 -0
  5. data/MIT-LICENSE +20 -0
  6. data/README.textile +139 -0
  7. data/Rakefile +22 -0
  8. data/TODO +30 -0
  9. data/examples/Gemfile +8 -0
  10. data/examples/config/initializer.rb +15 -0
  11. data/examples/console.rb +71 -0
  12. data/examples/public/images/klarna.png +0 -0
  13. data/examples/public/images/ruby.png +0 -0
  14. data/examples/views/_address.haml +22 -0
  15. data/examples/views/_articles.haml +21 -0
  16. data/examples/views/checkout_page_example.haml +2 -0
  17. data/examples/views/essential/add_transaction/_form.haml +32 -0
  18. data/examples/views/essential/add_transaction/result.haml +7 -0
  19. data/examples/views/essential/calculate_monthly_cost/_form.haml +16 -0
  20. data/examples/views/essential/calculate_monthly_cost/result.haml +7 -0
  21. data/examples/views/essential/get_addresses/_form.haml +9 -0
  22. data/examples/views/essential/get_addresses/result.haml +8 -0
  23. data/examples/views/index.haml +296 -0
  24. data/examples/views/layout.haml +48 -0
  25. data/examples/views/payment_terms_example.haml +102 -0
  26. data/examples/views/product_page_example.haml +2 -0
  27. data/examples/views/reservation/activate_reservation/_form.haml +54 -0
  28. data/examples/views/reservation/activate_reservation/result.haml +7 -0
  29. data/examples/views/reservation/cancel_reservation/_form.haml +8 -0
  30. data/examples/views/reservation/cancel_reservation/result.haml +7 -0
  31. data/examples/views/reservation/change_reservation/_form.haml +10 -0
  32. data/examples/views/reservation/change_reservation/result.haml +7 -0
  33. data/examples/views/reservation/reserve_amount/_form.haml +58 -0
  34. data/examples/views/reservation/reserve_amount/result.haml +7 -0
  35. data/examples/views/reservation/reserve_ocr_numbers/_form.haml +8 -0
  36. data/examples/views/reservation/reserve_ocr_numbers/result.haml +7 -0
  37. data/examples/views/reservation/split_reservation/_form.haml +14 -0
  38. data/examples/views/reservation/split_reservation/result.haml +7 -0
  39. data/examples/views/special/get_pclasses/_form.haml +8 -0
  40. data/examples/views/special/get_pclasses/result.haml +7 -0
  41. data/examples/views/special/invoice_address/_form.haml +8 -0
  42. data/examples/views/special/invoice_address/result.haml +7 -0
  43. data/examples/views/special/invoice_amount/_form.haml +8 -0
  44. data/examples/views/special/invoice_amount/result.haml +7 -0
  45. data/examples/views/special/is_invoice_paid/_form.haml +8 -0
  46. data/examples/views/special/is_invoice_paid/result.haml +7 -0
  47. data/examples/views/special/update_charge_amount/_form.haml +15 -0
  48. data/examples/views/special/update_charge_amount/result.haml +7 -0
  49. data/examples/views/special/update_goods_quantity/_form.haml +17 -0
  50. data/examples/views/special/update_goods_quantity/result.haml +7 -0
  51. data/examples/views/special/update_order_number/_form.haml +10 -0
  52. data/examples/views/special/update_order_number/result.haml +7 -0
  53. data/examples/views/useful/activate_invoice/_form.haml +9 -0
  54. data/examples/views/useful/activate_invoice/result.haml +7 -0
  55. data/examples/views/useful/credit_invoice/_form.haml +11 -0
  56. data/examples/views/useful/credit_invoice/result.haml +7 -0
  57. data/examples/views/useful/delete_invoice/_form.haml +9 -0
  58. data/examples/views/useful/delete_invoice/result.haml +7 -0
  59. data/examples/views/useful/email_invoice/_form.haml +9 -0
  60. data/examples/views/useful/email_invoice/result.haml +7 -0
  61. data/examples/views/useful/has_account/_form.haml +9 -0
  62. data/examples/views/useful/has_account/result.haml +7 -0
  63. data/examples/views/useful/return_amount/_form.haml +15 -0
  64. data/examples/views/useful/return_amount/result.haml +7 -0
  65. data/examples/views/useful/send_invoice/_form.haml +9 -0
  66. data/examples/views/useful/send_invoice/result.haml +7 -0
  67. data/examples/web.rb +349 -0
  68. data/klarna.gemspec +34 -0
  69. data/lib/klarna.rb +175 -0
  70. data/lib/klarna/api.rb +170 -0
  71. data/lib/klarna/api/client.rb +128 -0
  72. data/lib/klarna/api/constants.rb +638 -0
  73. data/lib/klarna/api/errors.rb +154 -0
  74. data/lib/klarna/api/methods.rb +16 -0
  75. data/lib/klarna/api/methods/cost_calculations.rb +134 -0
  76. data/lib/klarna/api/methods/invoicing.rb +304 -0
  77. data/lib/klarna/api/methods/reservation.rb +149 -0
  78. data/lib/klarna/api/methods/standard.rb +123 -0
  79. data/lib/klarna/version.rb +5 -0
  80. data/test/fixtures/api/companies.yml +97 -0
  81. data/test/fixtures/api/pclasses.yml +37 -0
  82. data/test/fixtures/api/persons.yml +144 -0
  83. data/test/fixtures/api/stores.yml +6 -0
  84. data/test/fixtures/klarna.yml +10 -0
  85. data/test/klarna/api/client_test.rb +272 -0
  86. data/test/klarna/api/errors_test.rb +46 -0
  87. data/test/klarna/api/methods/cost_calculations_test.rb +78 -0
  88. data/test/klarna/api/methods/invoicing_test.rb +409 -0
  89. data/test/klarna/api/methods/reservation_test.rb +66 -0
  90. data/test/klarna/api/methods/standard_test.rb +244 -0
  91. data/test/klarna/api_test.rb +137 -0
  92. data/test/klarna_test.rb +204 -0
  93. data/test/support/assertions_helper.rb +40 -0
  94. data/test/test_helper.rb +55 -0
  95. metadata +312 -0
@@ -0,0 +1,7 @@
1
+ %h2 Add Transaction
2
+
3
+ %h3 Result:
4
+ %p
5
+ = @result.inspect
6
+
7
+ = link_to "Back", :root
@@ -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,7 @@
1
+ %h2 Monthly Cost
2
+
3
+ %h3 Result:
4
+ %p
5
+ = @result.inspect
6
+
7
+ = link_to "Back", :root
@@ -0,0 +1,9 @@
1
+ %h3 Get Addresses
2
+ %p Enter personal number to get customers addresses. (Swedish only)
3
+
4
+ %form{:action => '/essential/get_addresses'}
5
+ %p
6
+ = field "SSN:", :pno, :text, :size => "12", :value => "430415-8399"
7
+ *
8
+ %p
9
+ = submit_button "Get address"
@@ -0,0 +1,8 @@
1
+ %h2 Get Addresses
2
+
3
+ %h3 Result:
4
+ - @result.each do |address|
5
+ %p
6
+ = address.inspect
7
+
8
+ = link_to "Back", :root
@@ -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