iyzipay-subscriptions 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (114) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +12 -0
  3. data/.rspec +2 -0
  4. data/.ruby-gemset +1 -0
  5. data/.travis.yml +17 -0
  6. data/Gemfile +6 -0
  7. data/LICENSE +21 -0
  8. data/README.md +183 -0
  9. data/Rakefile +5 -0
  10. data/VERSION +1 -0
  11. data/contributors +2 -0
  12. data/examples/options.rb +4 -0
  13. data/examples/plan.rb +36 -0
  14. data/examples/product.rb +32 -0
  15. data/examples/subscription.rb +33 -0
  16. data/examples/subscription_checkout_form_initialize.rb +39 -0
  17. data/examples/subscription_initialize.rb +47 -0
  18. data/gemfiles/Gemfile.nokogiri-1.6.8.1 +7 -0
  19. data/iyzipay.gemspec +24 -0
  20. data/lib/iyzipay.rb +16 -0
  21. data/lib/iyzipay/http_client.rb +39 -0
  22. data/lib/iyzipay/iyzipay_resource.rb +60 -0
  23. data/lib/iyzipay/iyzipay_resource_v2.rb +39 -0
  24. data/lib/iyzipay/model.rb +63 -0
  25. data/lib/iyzipay/model/address.rb +17 -0
  26. data/lib/iyzipay/model/api_test.rb +10 -0
  27. data/lib/iyzipay/model/approval.rb +17 -0
  28. data/lib/iyzipay/model/basic_bkm.rb +17 -0
  29. data/lib/iyzipay/model/basic_bkm_initialize.rb +24 -0
  30. data/lib/iyzipay/model/basic_payment.rb +27 -0
  31. data/lib/iyzipay/model/basic_payment_post_auth.rb +20 -0
  32. data/lib/iyzipay/model/basic_payment_pre_auth.rb +27 -0
  33. data/lib/iyzipay/model/basic_threeds_initialize.rb +27 -0
  34. data/lib/iyzipay/model/basic_threeds_initialize_pre_auth.rb +27 -0
  35. data/lib/iyzipay/model/basic_threeds_payment.rb +18 -0
  36. data/lib/iyzipay/model/basket.rb +26 -0
  37. data/lib/iyzipay/model/basket_item_type.rb +8 -0
  38. data/lib/iyzipay/model/bin_number.rb +17 -0
  39. data/lib/iyzipay/model/bkm.rb +17 -0
  40. data/lib/iyzipay/model/bkm_initialize.rb +26 -0
  41. data/lib/iyzipay/model/bounced_bank_transfer_list.rb +17 -0
  42. data/lib/iyzipay/model/buyer.rb +25 -0
  43. data/lib/iyzipay/model/cancel.rb +20 -0
  44. data/lib/iyzipay/model/card.rb +36 -0
  45. data/lib/iyzipay/model/card_information.rb +17 -0
  46. data/lib/iyzipay/model/card_list.rb +17 -0
  47. data/lib/iyzipay/model/checkout_form.rb +17 -0
  48. data/lib/iyzipay/model/checkout_form_initialize.rb +31 -0
  49. data/lib/iyzipay/model/checkout_form_initialize_pre_auth.rb +30 -0
  50. data/lib/iyzipay/model/cross_booking_from_sub_merchant.rb +20 -0
  51. data/lib/iyzipay/model/cross_booking_to_sub_merchant.rb +20 -0
  52. data/lib/iyzipay/model/currency.rb +11 -0
  53. data/lib/iyzipay/model/disapproval.rb +17 -0
  54. data/lib/iyzipay/model/installment_details.rb +19 -0
  55. data/lib/iyzipay/model/installment_info.rb +18 -0
  56. data/lib/iyzipay/model/installment_prices.rb +19 -0
  57. data/lib/iyzipay/model/locale.rb +8 -0
  58. data/lib/iyzipay/model/pay_with_iyzico_initialize.rb +31 -0
  59. data/lib/iyzipay/model/pay_with_iyzico_retrieve.rb +17 -0
  60. data/lib/iyzipay/model/payment.rb +47 -0
  61. data/lib/iyzipay/model/payment_card.rb +22 -0
  62. data/lib/iyzipay/model/payment_channel.rb +14 -0
  63. data/lib/iyzipay/model/payment_group.rb +9 -0
  64. data/lib/iyzipay/model/payment_post_auth.rb +20 -0
  65. data/lib/iyzipay/model/payment_pre_auth.rb +47 -0
  66. data/lib/iyzipay/model/payout_completed_transaction_list.rb +17 -0
  67. data/lib/iyzipay/model/pecco_initialize.rb +27 -0
  68. data/lib/iyzipay/model/pecco_payment.rb +17 -0
  69. data/lib/iyzipay/model/refund.rb +22 -0
  70. data/lib/iyzipay/model/refund_charged_from_merchant.rb +20 -0
  71. data/lib/iyzipay/model/refund_reason.rb +10 -0
  72. data/lib/iyzipay/model/refund_to_balance.rb +18 -0
  73. data/lib/iyzipay/model/settlement_to_balance.rb +19 -0
  74. data/lib/iyzipay/model/sub_merchant.rb +72 -0
  75. data/lib/iyzipay/model/sub_merchant_type.rb +9 -0
  76. data/lib/iyzipay/model/threeds_initialize.rb +32 -0
  77. data/lib/iyzipay/model/threeds_initialize_pre_auth.rb +32 -0
  78. data/lib/iyzipay/model/threeds_payment.rb +34 -0
  79. data/lib/iyzipay/model/v2/checkout_form.rb +20 -0
  80. data/lib/iyzipay/model/v2/checkout_form_initialize.rb +21 -0
  81. data/lib/iyzipay/model/v2/plan.rb +33 -0
  82. data/lib/iyzipay/model/v2/product.rb +39 -0
  83. data/lib/iyzipay/model/v2/subscription.rb +60 -0
  84. data/lib/iyzipay/model/v2/subscription_initialize.rb +21 -0
  85. data/lib/iyzipay/options.rb +7 -0
  86. data/lib/iyzipay/pki_builder.rb +101 -0
  87. data/spec/api_test_spec.rb +28 -0
  88. data/spec/approval_spec.rb +41 -0
  89. data/spec/bin_number_spec.rb +42 -0
  90. data/spec/bkm_spec.rb +91 -0
  91. data/spec/builder.rb +9 -0
  92. data/spec/builder/approval_builder.rb +18 -0
  93. data/spec/builder/card_builder.rb +27 -0
  94. data/spec/builder/checkout_form_builder.rb +75 -0
  95. data/spec/builder/payment_builder.rb +167 -0
  96. data/spec/builder/pecco_initialize_builder.rb +74 -0
  97. data/spec/builder/sub_merchant_builder.rb +91 -0
  98. data/spec/cancel_spec.rb +72 -0
  99. data/spec/card_storage_spec.rb +153 -0
  100. data/spec/checkout_form_spec.rb +113 -0
  101. data/spec/disapproval_spec.rb +47 -0
  102. data/spec/installment_spec.rb +46 -0
  103. data/spec/pay_with_iyzico_spec.rb +109 -0
  104. data/spec/payment_spec.rb +320 -0
  105. data/spec/pecco_spec.rb +116 -0
  106. data/spec/refund_spec.rb +76 -0
  107. data/spec/refund_to_balance_spec.rb +37 -0
  108. data/spec/retrieve_transactions_spec.rb +55 -0
  109. data/spec/settlement_to_balance_spec.rb +40 -0
  110. data/spec/spec_helper.rb +81 -0
  111. data/spec/spec_options.rb +5 -0
  112. data/spec/sub_merchant_spec.rb +227 -0
  113. data/spec/threeds_payment_spec.rb +229 -0
  114. metadata +226 -0
@@ -0,0 +1,47 @@
1
+ # coding: utf-8
2
+
3
+ require_relative 'spec_helper'
4
+ require_relative 'builder'
5
+
6
+ RSpec.describe 'Iyzipay' do
7
+ before :all do
8
+ @options = Iyzipay::Options.new
9
+ @options.api_key = SpecOptions::API_KEY
10
+ @options.secret_key = SpecOptions::SECRET_KEY
11
+ @options.base_url = SpecOptions::BASE_URL
12
+ end
13
+
14
+ it 'should disapprove payment item' do
15
+ # create sub merchant
16
+ sub_merchant = Builder::SubMerchantBuilder.new.create_personal_sub_merchant(@options)
17
+
18
+ # create payment
19
+ payment = Builder::PaymentBuilder.new.create_marketplace_payment(@options, sub_merchant['subMerchantKey'])
20
+
21
+ # approve payment
22
+ Builder::ApprovalBuilder.new.create_approval(@options, payment['itemTransactions'][0]['paymentTransactionId'])
23
+
24
+ # disapprove payment
25
+ request = {
26
+ locale: Iyzipay::Model::Locale::TR,
27
+ conversationId: '123456789',
28
+ paymentTransactionId: payment['itemTransactions'][0]['paymentTransactionId']
29
+ }
30
+ disapproval = Iyzipay::Model::Disapproval.new.create(request, @options)
31
+ begin
32
+ $stdout.puts disapproval.inspect
33
+ disapproval = JSON.parse(disapproval)
34
+ expect(disapproval['status']).to eq('success')
35
+ expect(disapproval['locale']).to eq('tr')
36
+ expect(disapproval['systemTime']).not_to be_nil
37
+ expect(disapproval['conversationId']).to eq('123456789')
38
+ expect(disapproval['paymentTransactionId']).to eq(payment['itemTransactions'][0]['paymentTransactionId'])
39
+ rescue
40
+ $stderr.puts 'oops'
41
+ raise
42
+ end
43
+ end
44
+
45
+ after :each do
46
+ end
47
+ end
@@ -0,0 +1,46 @@
1
+ # coding: utf-8
2
+
3
+ require_relative 'spec_helper'
4
+
5
+ RSpec.describe 'Iyzipay' do
6
+ before :all do
7
+ @options = Iyzipay::Options.new
8
+ @options.api_key = SpecOptions::API_KEY
9
+ @options.secret_key = SpecOptions::SECRET_KEY
10
+ @options.base_url = SpecOptions::BASE_URL
11
+ end
12
+
13
+ it 'should retrieve installment' do
14
+ request = {
15
+ locale: Iyzipay::Model::Locale::TR,
16
+ conversationId: '123456789',
17
+ binNumber: '554960',
18
+ price: '100'
19
+ }
20
+ installment_info = Iyzipay::Model::InstallmentInfo.new.retrieve(request, @options)
21
+ installment_info = JSON.parse(installment_info)
22
+ expect(installment_info['status']).to eq('success')
23
+ expect(installment_info['locale']).to eq('tr')
24
+ expect(installment_info['systemTime']).not_to be_nil
25
+ expect(installment_info['conversationId']).to eq('123456789')
26
+ expect(installment_info['installmentDetails']).not_to be_nil
27
+ expect(installment_info['installmentDetails'][0]['binNumber']).to eq('554960')
28
+ expect(installment_info['installmentDetails'][0]['price']).to eq(100)
29
+ expect(installment_info['installmentDetails'][0]['cardType']).to eq('CREDIT_CARD')
30
+ expect(installment_info['installmentDetails'][0]['cardAssociation']).to eq('MASTER_CARD')
31
+ expect(installment_info['installmentDetails'][0]['cardFamilyName']).to eq('Bonus')
32
+ expect(installment_info['installmentDetails'][0]['installmentPrices']).not_to be_nil
33
+ expect(installment_info['installmentDetails'][0]['installmentPrices'][0]['installmentPrice']).not_to be_nil
34
+ expect(installment_info['installmentDetails'][0]['installmentPrices'][0]['totalPrice']).not_to be_nil
35
+ expect(installment_info['installmentDetails'][0]['installmentPrices'][0]['installmentNumber']).not_to be_nil
36
+ begin
37
+ $stdout.puts installment_info.inspect
38
+ rescue
39
+ $stderr.puts 'oops'
40
+ raise
41
+ end
42
+ end
43
+
44
+ after :each do
45
+ end
46
+ end
@@ -0,0 +1,109 @@
1
+ # coding: utf-8
2
+ require_relative 'spec_helper'
3
+
4
+ RSpec.describe 'Iyzipay' do
5
+ before :all do
6
+ @options = Iyzipay::Options.new
7
+ @options.api_key = SpecOptions::API_KEY
8
+ @options.secret_key = SpecOptions::SECRET_KEY
9
+ @options.base_url = SpecOptions::BASE_URL
10
+ end
11
+
12
+ it 'should initialize pay-with-iyzico link' do
13
+ buyer = {
14
+ id: 'BY789',
15
+ name: 'John',
16
+ surname: 'Doe',
17
+ gsmNumber: '+905350000000',
18
+ email: 'email@email.com',
19
+ identityNumber: '74300864791',
20
+ lastLoginDate: '2015-10-05 12:43:35',
21
+ registrationDate: '2013-04-21 15:12:09',
22
+ registrationAddress: 'Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1',
23
+ ip: '85.34.78.112',
24
+ city: 'Istanbul',
25
+ country: 'Turkey',
26
+ zipCode: '34732'
27
+ }
28
+ address = {
29
+ contactName: 'Jane Doe',
30
+ city: 'Istanbul',
31
+ country: 'Turkey',
32
+ address: 'Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1',
33
+ zipCode: '34732'
34
+ }
35
+
36
+ item1 = {
37
+ id: 'BI101',
38
+ name: 'Binocular',
39
+ category1: 'Collectibles',
40
+ category2: 'Accessories',
41
+ itemType: Iyzipay::Model::BasketItemType::PHYSICAL,
42
+ price: '0.3'
43
+ }
44
+ item2 = {
45
+ id: 'BI102',
46
+ name: 'Game code',
47
+ category1: 'Game',
48
+ category2: 'Online Game Items',
49
+ itemType: Iyzipay::Model::BasketItemType::VIRTUAL,
50
+ price: '0.5'
51
+ }
52
+ item3 = {
53
+ id: 'BI103',
54
+ name: 'Usb',
55
+ category1: 'Electronics',
56
+ category2: 'Usb / Cable',
57
+ itemType: Iyzipay::Model::BasketItemType::PHYSICAL,
58
+ price: '0.2'
59
+ }
60
+ request = {
61
+ locale: Iyzipay::Model::Locale::TR,
62
+ conversationId: '123456789',
63
+ price: '1',
64
+ paidPrice: '1.2',
65
+ currency: Iyzipay::Model::Currency::TRY,
66
+ basketId: 'B67832',
67
+ paymentGroup: Iyzipay::Model::PaymentGroup::LISTING,
68
+ callbackUrl: 'https://www.merchant.com/callback',
69
+ enabledInstallments: [2, 3, 6, 9],
70
+ buyer: buyer,
71
+ billingAddress: address,
72
+ shippingAddress: address,
73
+ basketItems: [item1, item2, item3]
74
+ }
75
+ pay_with_iyzico_initialize = Iyzipay::Model::PayWithIyzicoInitialize.new.create(request, @options)
76
+
77
+ begin
78
+ $stdout.puts pay_with_iyzico_initialize.inspect
79
+ pay_with_iyzico_initialize = JSON.parse(pay_with_iyzico_initialize)
80
+ expect(pay_with_iyzico_initialize['status']).not_to be_nil
81
+ expect(pay_with_iyzico_initialize['locale']).not_to be_nil
82
+ expect(pay_with_iyzico_initialize['systemTime']).not_to be_nil
83
+ expect(pay_with_iyzico_initialize['token']).not_to be_nil
84
+ expect(pay_with_iyzico_initialize['payWithIyzicoPageUrl']).not_to be_nil
85
+ rescue
86
+ $stderr.puts 'oops'
87
+ raise
88
+ end
89
+ end
90
+
91
+ it 'should retrieve checkout form result' do
92
+ # This test needs manual on sandbox environment. So it does not contain any assertions.
93
+ request = {
94
+ locale: Iyzipay::Model::Locale::TR,
95
+ conversationId: '123456789',
96
+ token: '408c1036-1f89-41cd-8e87-4c4d8e83501c'
97
+ }
98
+ pay_with_iyzico_retrieve_result = Iyzipay::Model::PayWithIyzicoRetrieve.new.retrieve(request, @options)
99
+ begin
100
+ $stdout.puts pay_with_iyzico_retrieve_result.inspect
101
+ rescue
102
+ $stderr.puts 'oops'
103
+ raise
104
+ end
105
+ end
106
+
107
+ after :each do
108
+ end
109
+ end
@@ -0,0 +1,320 @@
1
+ # coding: utf-8
2
+
3
+ require_relative 'spec_helper'
4
+ require_relative 'builder'
5
+
6
+ RSpec.describe 'Iyzipay' do
7
+ before :all do
8
+ @options = Iyzipay::Options.new
9
+ @options.api_key = SpecOptions::API_KEY
10
+ @options.secret_key = SpecOptions::SECRET_KEY
11
+ @options.base_url = SpecOptions::BASE_URL
12
+ end
13
+
14
+ it 'should create listing payment' do
15
+ payment_card = {
16
+ cardHolderName: 'John Doe',
17
+ cardNumber: '5528790000000008',
18
+ expireYear: '2030',
19
+ expireMonth: '12',
20
+ cvc: '123',
21
+ registerCard: 0
22
+ }
23
+ buyer = {
24
+ id: 'BY789',
25
+ name: 'John',
26
+ surname: 'Doe',
27
+ gsmNumber: '+905350000000',
28
+ email: 'email@email.com',
29
+ identityNumber: '74300864791',
30
+ lastLoginDate: '2015-10-05 12:43:35',
31
+ registrationDate: '2013-04-21 15:12:09',
32
+ registrationAddress: 'Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1',
33
+ ip: '85.34.78.112',
34
+ city: 'Istanbul',
35
+ country: 'Turkey',
36
+ zipCode: '34732'
37
+ }
38
+ address = {
39
+ contactName: 'Jane Doe',
40
+ city: 'Istanbul',
41
+ country: 'Turkey',
42
+ address: 'Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1',
43
+ zipCode: '34732'
44
+ }
45
+
46
+ item1 = {
47
+ id: 'BI101',
48
+ name: 'Binocular',
49
+ category1: 'Collectibles',
50
+ category2: 'Accessories',
51
+ itemType: Iyzipay::Model::BasketItemType::PHYSICAL,
52
+ price: '0.3'
53
+ }
54
+ item2 = {
55
+ id: 'BI102',
56
+ name: 'Game code',
57
+ category1: 'Game',
58
+ category2: 'Online Game Items',
59
+ itemType: Iyzipay::Model::BasketItemType::VIRTUAL,
60
+ price: '0.5'
61
+ }
62
+ item3 = {
63
+ id: 'BI103',
64
+ name: 'Usb',
65
+ category1: 'Electronics',
66
+ category2: 'Usb / Cable',
67
+ itemType: Iyzipay::Model::BasketItemType::PHYSICAL,
68
+ price: '0.2'
69
+ }
70
+ request = {
71
+ locale: Iyzipay::Model::Locale::TR,
72
+ conversationId: '123456789',
73
+ price: '1',
74
+ paidPrice: '1.1',
75
+ currency: Iyzipay::Model::Currency::TRY,
76
+ installment: 1,
77
+ basketId: 'B67832',
78
+ paymentChannel: Iyzipay::Model::PaymentChannel::WEB,
79
+ paymentGroup: Iyzipay::Model::PaymentGroup::LISTING,
80
+ paymentCard: payment_card,
81
+ buyer: buyer,
82
+ billingAddress: address,
83
+ shippingAddress: address,
84
+ basketItems: [item1, item2, item3]
85
+ }
86
+ payment = Iyzipay::Model::Payment.new.create(request, @options)
87
+ begin
88
+ $stdout.puts payment.inspect
89
+ payment = JSON.parse(payment)
90
+ expect(payment['status']).to eq('success')
91
+ expect(payment['locale']).to eq('tr')
92
+ expect(payment['systemTime']).not_to be_nil
93
+ expect(payment['conversationId']).to eq('123456789')
94
+ expect(payment['price']).to eq(1)
95
+ expect(payment['paidPrice']).to eq(1.1)
96
+ expect(payment['installment']).to eq(1)
97
+ rescue
98
+ $stderr.puts 'oops'
99
+ raise
100
+ end
101
+ end
102
+
103
+ it 'should create marketplace payment' do
104
+ # create sub merchant
105
+ sub_merchant = Builder::SubMerchantBuilder.new.create_personal_sub_merchant(@options)
106
+
107
+ payment_card = {
108
+ cardHolderName: 'John Doe',
109
+ cardNumber: '5528790000000008',
110
+ expireYear: '2030',
111
+ expireMonth: '12',
112
+ cvc: '123',
113
+ registerCard: 0
114
+ }
115
+ buyer = {
116
+ id: 'BY789',
117
+ name: 'John',
118
+ surname: 'Doe',
119
+ gsmNumber: '+905350000000',
120
+ email: 'email@email.com',
121
+ identityNumber: '74300864791',
122
+ lastLoginDate: '2015-10-05 12:43:35',
123
+ registrationDate: '2013-04-21 15:12:09',
124
+ registrationAddress: 'Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1',
125
+ ip: '85.34.78.112',
126
+ city: 'Istanbul',
127
+ country: 'Turkey',
128
+ zipCode: '34732'
129
+ }
130
+ address = {
131
+ contactName: 'Jane Doe',
132
+ city: 'Istanbul',
133
+ country: 'Turkey',
134
+ address: 'Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1',
135
+ zipCode: '34732'
136
+ }
137
+
138
+ item1 = {
139
+ id: 'BI101',
140
+ name: 'Binocular',
141
+ category1: 'Collectibles',
142
+ category2: 'Accessories',
143
+ itemType: Iyzipay::Model::BasketItemType::PHYSICAL,
144
+ price: '0.3',
145
+ subMerchantKey: sub_merchant['subMerchantKey'],
146
+ subMerchantPrice: '0.27'
147
+ }
148
+ item2 = {
149
+ id: 'BI102',
150
+ name: 'Game code',
151
+ category1: 'Game',
152
+ category2: 'Online Game Items',
153
+ itemType: Iyzipay::Model::BasketItemType::VIRTUAL,
154
+ price: '0.5',
155
+ subMerchantKey: sub_merchant['subMerchantKey'],
156
+ subMerchantPrice: '0.42'
157
+ }
158
+ item3 = {
159
+ id: 'BI103',
160
+ name: 'Usb',
161
+ category1: 'Electronics',
162
+ category2: 'Usb / Cable',
163
+ itemType: Iyzipay::Model::BasketItemType::PHYSICAL,
164
+ price: '0.2',
165
+ subMerchantKey: sub_merchant['subMerchantKey'],
166
+ subMerchantPrice: '0.18'
167
+ }
168
+ request = {
169
+ locale: Iyzipay::Model::Locale::TR,
170
+ conversationId: '123456789',
171
+ price: '1',
172
+ paidPrice: '1.1',
173
+ currency: Iyzipay::Model::Currency::TRY,
174
+ installment: 1,
175
+ basketId: 'B67832',
176
+ paymentChannel: Iyzipay::Model::PaymentChannel::WEB,
177
+ paymentGroup: Iyzipay::Model::PaymentGroup::PRODUCT,
178
+ paymentCard: payment_card,
179
+ buyer: buyer,
180
+ billingAddress: address,
181
+ shippingAddress: address,
182
+ basketItems: [item1, item2, item3]
183
+ }
184
+ payment = Iyzipay::Model::Payment.new.create(request, @options)
185
+ begin
186
+ $stdout.puts payment.inspect
187
+ payment = JSON.parse(payment)
188
+ expect(payment['status']).to eq('success')
189
+ expect(payment['locale']).to eq('tr')
190
+ expect(payment['systemTime']).not_to be_nil
191
+ expect(payment['conversationId']).to eq('123456789')
192
+ expect(payment['price']).to eq(1)
193
+ expect(payment['paidPrice']).to eq(1.1)
194
+ expect(payment['installment']).to eq(1)
195
+ rescue
196
+ $stderr.puts 'oops'
197
+ raise
198
+ end
199
+ end
200
+
201
+ it 'should create payment with registered card' do
202
+ # create card
203
+ card = Builder::CardBuilder.new.create_card(@options)
204
+
205
+ payment_card = {
206
+ cardUserKey: card['cardUserKey'],
207
+ cardToken: card['cardToken']
208
+ }
209
+ buyer = {
210
+ id: 'BY789',
211
+ name: 'John',
212
+ surname: 'Doe',
213
+ gsmNumber: '+905350000000',
214
+ email: 'email@email.com',
215
+ identityNumber: '74300864791',
216
+ lastLoginDate: '2015-10-05 12:43:35',
217
+ registrationDate: '2013-04-21 15:12:09',
218
+ registrationAddress: 'Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1',
219
+ ip: '85.34.78.112',
220
+ city: 'Istanbul',
221
+ country: 'Turkey',
222
+ zipCode: '34732'
223
+ }
224
+ address = {
225
+ contactName: 'Jane Doe',
226
+ city: 'Istanbul',
227
+ country: 'Turkey',
228
+ address: 'Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1',
229
+ zipCode: '34732'
230
+ }
231
+
232
+ item1 = {
233
+ id: 'BI101',
234
+ name: 'Binocular',
235
+ category1: 'Collectibles',
236
+ category2: 'Accessories',
237
+ itemType: Iyzipay::Model::BasketItemType::PHYSICAL,
238
+ price: '0.3'
239
+ }
240
+ item2 = {
241
+ id: 'BI102',
242
+ name: 'Game code',
243
+ category1: 'Game',
244
+ category2: 'Online Game Items',
245
+ itemType: Iyzipay::Model::BasketItemType::VIRTUAL,
246
+ price: '0.5'
247
+ }
248
+ item3 = {
249
+ id: 'BI103',
250
+ name: 'Usb',
251
+ category1: 'Electronics',
252
+ category2: 'Usb / Cable',
253
+ itemType: Iyzipay::Model::BasketItemType::PHYSICAL,
254
+ price: '0.2'
255
+ }
256
+ request = {
257
+ locale: Iyzipay::Model::Locale::TR,
258
+ conversationId: '123456789',
259
+ price: '1',
260
+ paidPrice: '1.1',
261
+ currency: Iyzipay::Model::Currency::TRY,
262
+ installment: 1,
263
+ basketId: 'B67832',
264
+ paymentChannel: Iyzipay::Model::PaymentChannel::WEB,
265
+ paymentGroup: Iyzipay::Model::PaymentGroup::LISTING,
266
+ paymentCard: payment_card,
267
+ buyer: buyer,
268
+ billingAddress: address,
269
+ shippingAddress: address,
270
+ basketItems: [item1, item2, item3]
271
+ }
272
+ payment = Iyzipay::Model::Payment.new.create(request, @options)
273
+ begin
274
+ $stdout.puts payment.inspect
275
+ payment = JSON.parse(payment)
276
+ expect(payment['status']).to eq('success')
277
+ expect(payment['locale']).to eq('tr')
278
+ expect(payment['systemTime']).not_to be_nil
279
+ expect(payment['conversationId']).to eq('123456789')
280
+ expect(payment['price']).to eq(1)
281
+ expect(payment['paidPrice']).to eq(1.1)
282
+ expect(payment['installment']).to eq(1)
283
+ rescue
284
+ $stderr.puts 'oops'
285
+ raise
286
+ end
287
+ end
288
+
289
+ it 'should retrieve payment' do
290
+ # create payment
291
+ payment = Builder::PaymentBuilder.new.create_standard_listing_payment(@options)
292
+
293
+ request = {
294
+ locale: Iyzipay::Model::Locale::TR,
295
+ conversationId: '123456789',
296
+ paymentId: payment['paymentId'],
297
+ paymentConversationId: '123456789'
298
+ }
299
+
300
+ retrieved_payment = Iyzipay::Model::Payment.new.retrieve(request, @options)
301
+ begin
302
+ $stdout.puts retrieved_payment.inspect
303
+ retrieved_payment = JSON.parse(retrieved_payment)
304
+ expect(retrieved_payment['status']).to eq('success')
305
+ expect(retrieved_payment['locale']).to eq('tr')
306
+ expect(retrieved_payment['systemTime']).not_to be_nil
307
+ expect(retrieved_payment['conversationId']).to eq('123456789')
308
+ expect(retrieved_payment['price']).to eq(1)
309
+ expect(retrieved_payment['paidPrice']).to eq(1.1)
310
+ expect(retrieved_payment['installment']).to eq(1)
311
+ expect(retrieved_payment['paymentId']).to eq(payment['paymentId'])
312
+ rescue
313
+ $stderr.puts 'oops'
314
+ raise
315
+ end
316
+ end
317
+
318
+ after :each do
319
+ end
320
+ end