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,28 @@
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 test api' do
14
+ api_test = Iyzipay::Model::ApiTest.new.retrieve(@options)
15
+ begin
16
+ api_test = JSON.parse(api_test)
17
+ expect(api_test['status']).to eq('success')
18
+ expect(api_test['locale']).to eq('tr')
19
+ expect(api_test['systemTime']).not_to be_nil
20
+ rescue
21
+ $stderr.puts 'oops'
22
+ raise
23
+ end
24
+ end
25
+
26
+ after :each do
27
+ end
28
+ end
@@ -0,0 +1,41 @@
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
+ context 'when create a payment for market place and then approve payment' do
15
+ it 'should approve payment item' do
16
+ sub_merchant = Builder::SubMerchantBuilder.new.create_personal_sub_merchant(@options)
17
+ payment = Builder::PaymentBuilder.new.create_marketplace_payment(@options, sub_merchant['subMerchantKey'])
18
+
19
+ request = {
20
+ locale: Iyzipay::Model::Locale::TR,
21
+ conversationId: '123456789',
22
+ paymentTransactionId: payment['itemTransactions'][0]['paymentTransactionId']
23
+ }
24
+ approval = Iyzipay::Model::Approval.new.create(request, @options)
25
+
26
+ begin
27
+ approval = JSON.parse(approval)
28
+ expect(approval['status']).to eq('success')
29
+ expect(approval['locale']).to eq('tr')
30
+ expect(approval['systemTime']).not_to be_nil
31
+ expect(approval['paymentTransactionId']).to eq(payment['itemTransactions'][0]['paymentTransactionId'])
32
+ rescue
33
+ $stderr.puts 'oops'
34
+ raise
35
+ end
36
+ end
37
+ end
38
+
39
+ after :each do
40
+ end
41
+ end
@@ -0,0 +1,42 @@
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 bin number' do
14
+ request = {
15
+ locale: Iyzipay::Model::Locale::TR,
16
+ conversationId: '123456789',
17
+ binNumber: '554960'
18
+ }
19
+ bin_number = Iyzipay::Model::BinNumber.new.retrieve(request, @options)
20
+ begin
21
+ #$stderr.puts bin_number.inspect
22
+ bin_number = JSON.parse(bin_number)
23
+ expect(bin_number['status']).to eq('success')
24
+ expect(bin_number['locale']).to eq('tr')
25
+ expect(bin_number['systemTime']).not_to be_nil
26
+ expect(bin_number['conversationId']).to eq('123456789')
27
+ expect(bin_number['binNumber']).to eq('554960')
28
+ expect(bin_number['cardType']).to eq('CREDIT_CARD')
29
+ expect(bin_number['cardAssociation']).to eq('MASTER_CARD')
30
+ expect(bin_number['cardFamily']).to eq('Bonus')
31
+ expect(bin_number['bankName']).to eq('Garanti Bankası')
32
+ expect(bin_number['bankCode']).to eq(62)
33
+ expect(bin_number['commercial']).to eq(0)
34
+ rescue
35
+ $stderr.puts 'oops'
36
+ raise
37
+ end
38
+ end
39
+
40
+ after :each do
41
+ end
42
+ end
@@ -0,0 +1,91 @@
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 initialize bkm' do
14
+ buyer = {
15
+ id: 'BY789',
16
+ name: 'John',
17
+ surname: 'Doe',
18
+ gsmNumber: '+905350000000',
19
+ email: 'email@email.com',
20
+ identityNumber: '74300864791',
21
+ lastLoginDate: '2015-10-05 12:43:35',
22
+ registrationDate: '2013-04-21 15:12:09',
23
+ registrationAddress: 'Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1',
24
+ ip: '85.34.78.112',
25
+ city: 'Istanbul',
26
+ country: 'Turkey',
27
+ zipCode: '34732'
28
+ }
29
+ address = {
30
+ contactName: 'Jane Doe',
31
+ city: 'Istanbul',
32
+ country: 'Turkey',
33
+ address: 'Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1',
34
+ zipCode: '34732'
35
+ }
36
+
37
+ item1 = {
38
+ id: 'BI101',
39
+ name: 'Binocular',
40
+ category1: 'Collectibles',
41
+ category2: 'Accessories',
42
+ itemType: Iyzipay::Model::BasketItemType::PHYSICAL,
43
+ price: '0.3'
44
+ }
45
+ item2 = {
46
+ id: 'BI102',
47
+ name: 'Game code',
48
+ category1: 'Game',
49
+ category2: 'Online Game Items',
50
+ itemType: Iyzipay::Model::BasketItemType::VIRTUAL,
51
+ price: '0.5'
52
+ }
53
+ item3 = {
54
+ id: 'BI103',
55
+ name: 'Usb',
56
+ category1: 'Electronics',
57
+ category2: 'Usb / Cable',
58
+ itemType: Iyzipay::Model::BasketItemType::PHYSICAL,
59
+ price: '0.2'
60
+ }
61
+ request = {
62
+ locale: Iyzipay::Model::Locale::TR,
63
+ conversationId: '123456789',
64
+ price: '1',
65
+ basketId: 'B67832',
66
+ paymentGroup: Iyzipay::Model::PaymentGroup::LISTING,
67
+ callbackUrl: 'https://www.merchant.com/callback',
68
+ enabledInstallments: [2, 3, 6, 9],
69
+ buyer: buyer,
70
+ billingAddress: address,
71
+ shippingAddress: address,
72
+ basketItems: [item1, item2, item3]
73
+ }
74
+ bkm_initialize = Iyzipay::Model::BkmInitialize.new.create(request, @options)
75
+
76
+ begin
77
+ bkm_initialize_dict = JSON.parse(bkm_initialize)
78
+
79
+ unless bkm_initialize_dict['htmlContent'].nil?
80
+ expect(Base64.decode64(bkm_initialize_dict['htmlContent'])).not_to be_nil
81
+ end
82
+ rescue
83
+ $stderr.puts 'oops'
84
+ raise
85
+ end
86
+ end
87
+
88
+
89
+ after :each do
90
+ end
91
+ end
@@ -0,0 +1,9 @@
1
+ module Builder
2
+ end
3
+
4
+ require_relative 'builder/payment_builder'
5
+ require_relative 'builder/sub_merchant_builder'
6
+ require_relative 'builder/checkout_form_builder'
7
+ require_relative 'builder/approval_builder'
8
+ require_relative 'builder/card_builder'
9
+ require_relative 'builder/pecco_initialize_builder'
@@ -0,0 +1,18 @@
1
+ # coding: utf-8
2
+
3
+ require_relative '../spec_helper'
4
+
5
+ module Builder
6
+ class ApprovalBuilder
7
+
8
+ def create_approval(options, payment_transaction_id)
9
+ request = {
10
+ locale: Iyzipay::Model::Locale::TR,
11
+ conversationId: '123456789',
12
+ paymentTransactionId: payment_transaction_id
13
+ }
14
+ approval = Iyzipay::Model::Approval.new.create(request, options)
15
+ JSON.parse(approval)
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,27 @@
1
+ # coding: utf-8
2
+
3
+ require_relative '../spec_helper'
4
+
5
+ module Builder
6
+ class CardBuilder
7
+
8
+ def create_card(options)
9
+ card_information = {
10
+ cardAlias: 'card alias',
11
+ cardHolderName: 'John Doe',
12
+ cardNumber: '5528790000000008',
13
+ expireYear: '2030',
14
+ expireMonth: '12'
15
+ }
16
+ request = {
17
+ locale: Iyzipay::Model::Locale::TR,
18
+ conversationId: '123456789',
19
+ email: 'email@email.com',
20
+ externalId: 'external id',
21
+ card: card_information
22
+ }
23
+ card = Iyzipay::Model::Card.new.create(request, options)
24
+ JSON.parse(card)
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,75 @@
1
+ # coding: utf-8
2
+
3
+ require_relative '../spec_helper'
4
+
5
+ module Builder
6
+ class CheckoutFormBuilder
7
+
8
+ def create_checkout_form_initialize(options)
9
+ buyer = {
10
+ id: 'BY789',
11
+ name: 'John',
12
+ surname: 'Doe',
13
+ gsmNumber: '+905350000000',
14
+ email: 'email@email.com',
15
+ identityNumber: '74300864791',
16
+ lastLoginDate: '2015-10-05 12:43:35',
17
+ registrationDate: '2013-04-21 15:12:09',
18
+ registrationAddress: 'Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1',
19
+ ip: '85.34.78.112',
20
+ city: 'Istanbul',
21
+ country: 'Turkey',
22
+ zipCode: '34732'
23
+ }
24
+ address = {
25
+ contactName: 'Jane Doe',
26
+ city: 'Istanbul',
27
+ country: 'Turkey',
28
+ address: 'Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1',
29
+ zipCode: '34732'
30
+ }
31
+
32
+ item1 = {
33
+ id: 'BI101',
34
+ name: 'Binocular',
35
+ category1: 'Collectibles',
36
+ category2: 'Accessories',
37
+ itemType: Iyzipay::Model::BasketItemType::PHYSICAL,
38
+ price: '0.3'
39
+ }
40
+ item2 = {
41
+ id: 'BI102',
42
+ name: 'Game code',
43
+ category1: 'Game',
44
+ category2: 'Online Game Items',
45
+ itemType: Iyzipay::Model::BasketItemType::VIRTUAL,
46
+ price: '0.5'
47
+ }
48
+ item3 = {
49
+ id: 'BI103',
50
+ name: 'Usb',
51
+ category1: 'Electronics',
52
+ category2: 'Usb / Cable',
53
+ itemType: Iyzipay::Model::BasketItemType::PHYSICAL,
54
+ price: '0.2'
55
+ }
56
+ request = {
57
+ locale: Iyzipay::Model::Locale::TR,
58
+ conversationId: '123456789',
59
+ price: '1',
60
+ paidPrice: '1.2',
61
+ currency: Iyzipay::Model::Currency::TRY,
62
+ basketId: 'B67832',
63
+ paymentGroup: Iyzipay::Model::PaymentGroup::LISTING,
64
+ callbackUrl: 'https://www.merchant.com/callback',
65
+ enabledInstallments: [2, 3, 6, 9],
66
+ buyer: buyer,
67
+ billingAddress: address,
68
+ shippingAddress: address,
69
+ basketItems: [item1, item2, item3]
70
+ }
71
+ checkout_form_initialize = Iyzipay::Model::CheckoutFormInitialize.new.create(request, options)
72
+ JSON.parse(checkout_form_initialize)
73
+ end
74
+ end
75
+ end
@@ -0,0 +1,167 @@
1
+ # coding: utf-8
2
+
3
+ require_relative '../spec_helper'
4
+
5
+ module Builder
6
+ class PaymentBuilder
7
+
8
+ def create_marketplace_payment(options, sub_merchant_key)
9
+ payment_card = {
10
+ cardHolderName: 'John Doe',
11
+ cardNumber: '5528790000000008',
12
+ expireYear: '2030',
13
+ expireMonth: '12',
14
+ cvc: '123',
15
+ registerCard: 0
16
+ }
17
+ buyer = {
18
+ id: 'BY789',
19
+ name: 'John',
20
+ surname: 'Doe',
21
+ gsmNumber: '+905350000000',
22
+ email: 'email@email.com',
23
+ identityNumber: '74300864791',
24
+ lastLoginDate: '2015-10-05 12:43:35',
25
+ registrationDate: '2013-04-21 15:12:09',
26
+ registrationAddress: 'Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1',
27
+ ip: '85.34.78.112',
28
+ city: 'Istanbul',
29
+ country: 'Turkey',
30
+ zipCode: '34732'
31
+ }
32
+ address = {
33
+ contactName: 'Jane Doe',
34
+ city: 'Istanbul',
35
+ country: 'Turkey',
36
+ address: 'Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1',
37
+ zipCode: '34732'
38
+ }
39
+
40
+ item1 = {
41
+ id: 'BI101',
42
+ name: 'Binocular',
43
+ category1: 'Collectibles',
44
+ category2: 'Accessories',
45
+ itemType: Iyzipay::Model::BasketItemType::PHYSICAL,
46
+ subMerchantKey: sub_merchant_key,
47
+ subMerchantPrice: '0.27',
48
+ price: '0.3'
49
+ }
50
+ item2 = {
51
+ id: 'BI102',
52
+ name: 'Game code',
53
+ category1: 'Game',
54
+ category2: 'Online Game Items',
55
+ itemType: Iyzipay::Model::BasketItemType::VIRTUAL,
56
+ subMerchantKey: sub_merchant_key,
57
+ subMerchantPrice: '0.42',
58
+ price: '0.5'
59
+ }
60
+ item3 = {
61
+ id: 'BI103',
62
+ name: 'Usb',
63
+ category1: 'Electronics',
64
+ category2: 'Usb / Cable',
65
+ itemType: Iyzipay::Model::BasketItemType::PHYSICAL,
66
+ subMerchantKey: sub_merchant_key,
67
+ subMerchantPrice: '0.18',
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::PRODUCT,
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
+ JSON.parse(payment)
88
+ end
89
+
90
+ def create_standard_listing_payment(options)
91
+ payment_card = {
92
+ cardHolderName: 'John Doe',
93
+ cardNumber: '5528790000000008',
94
+ expireYear: '2030',
95
+ expireMonth: '12',
96
+ cvc: '123',
97
+ registerCard: 0
98
+ }
99
+ buyer = {
100
+ id: 'BY789',
101
+ name: 'John',
102
+ surname: 'Doe',
103
+ gsmNumber: '+905350000000',
104
+ email: 'email@email.com',
105
+ identityNumber: '74300864791',
106
+ lastLoginDate: '2015-10-05 12:43:35',
107
+ registrationDate: '2013-04-21 15:12:09',
108
+ registrationAddress: 'Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1',
109
+ ip: '85.34.78.112',
110
+ city: 'Istanbul',
111
+ country: 'Turkey',
112
+ zipCode: '34732'
113
+ }
114
+ address = {
115
+ contactName: 'Jane Doe',
116
+ city: 'Istanbul',
117
+ country: 'Turkey',
118
+ address: 'Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1',
119
+ zipCode: '34732'
120
+ }
121
+
122
+ item1 = {
123
+ id: 'BI101',
124
+ name: 'Binocular',
125
+ category1: 'Collectibles',
126
+ category2: 'Accessories',
127
+ itemType: Iyzipay::Model::BasketItemType::PHYSICAL,
128
+ price: '0.3'
129
+ }
130
+ item2 = {
131
+ id: 'BI102',
132
+ name: 'Game code',
133
+ category1: 'Game',
134
+ category2: 'Online Game Items',
135
+ itemType: Iyzipay::Model::BasketItemType::VIRTUAL,
136
+ price: '0.5'
137
+ }
138
+ item3 = {
139
+ id: 'BI103',
140
+ name: 'Usb',
141
+ category1: 'Electronics',
142
+ category2: 'Usb / Cable',
143
+ itemType: Iyzipay::Model::BasketItemType::PHYSICAL,
144
+ price: '0.2'
145
+ }
146
+ request = {
147
+ locale: Iyzipay::Model::Locale::TR,
148
+ conversationId: '123456789',
149
+ price: '1',
150
+ paidPrice: '1.1',
151
+ currency: Iyzipay::Model::Currency::TRY,
152
+ installment: 1,
153
+ basketId: 'B67832',
154
+ paymentChannel: Iyzipay::Model::PaymentChannel::WEB,
155
+ paymentGroup: Iyzipay::Model::PaymentGroup::LISTING,
156
+ paymentCard: payment_card,
157
+ buyer: buyer,
158
+ billingAddress: address,
159
+ shippingAddress: address,
160
+ basketItems: [item1, item2, item3]
161
+ }
162
+ payment = Iyzipay::Model::Payment.new.create(request, options)
163
+ JSON.parse(payment)
164
+ end
165
+
166
+ end
167
+ end