moka-payment 0.0.9 → 0.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/.gitignore +1 -1
- data/Gemfile +3 -5
- data/Rakefile +2 -2
- data/{bin/sinatra.rb → examples/payments/3d_secure_payment.rb} +13 -12
- data/examples/payments/capture_payment.rb +28 -0
- data/examples/payments/direct_payment.rb +44 -0
- data/lib/moka/add/customer.rb +1 -1
- data/lib/moka/configuration.rb +1 -1
- data/lib/moka/dealer.rb +3 -2
- data/lib/moka/get/payment_list.rb +0 -1
- data/lib/moka/payment.rb +88 -37
- data/lib/moka/payment/capture.rb +44 -32
- data/lib/moka/payment/direct.rb +72 -34
- data/lib/moka/payment/direct3d.rb +83 -57
- data/lib/moka/update/customer.rb +1 -1
- data/lib/moka/version.rb +1 -1
- data/moka.gemspec +29 -0
- metadata +8 -20
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 50460327b06a75dcdd12654e7d35bc21f80b9ec4c907c04584276cb8d8fb5c4c
|
4
|
+
data.tar.gz: 1b52022c7b95c3a1558f6bf4e7ffe08a0011bba6b82e91484681ffc1812c32a5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1a8fce886c89b10314fcf5a2bb01eeddd31d7ca2c242a0f50b31e423f99b413ffbbf30d323926e0341ebce166c1bb35f53ab87956443937e4f0032fb2533d6e1
|
7
|
+
data.tar.gz: ffb56eac68de010a69bbe19acac1456dfa026f5c8a68fe462d205c3b82e6599ba809338799d6288705042967df87fcf72b64ad999991b4e90f854de6ecb5ada6
|
data/.gitignore
CHANGED
data/Gemfile
CHANGED
@@ -1,7 +1,5 @@
|
|
1
1
|
source "https://rubygems.org"
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
gem 'json', '~> 2.1'
|
7
|
-
gem 'sinatra'
|
3
|
+
git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
|
4
|
+
|
5
|
+
gemspec
|
data/Rakefile
CHANGED
@@ -1,28 +1,25 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
$: << '
|
4
|
-
require 'bundler/setup'
|
5
|
-
Bundler.require
|
3
|
+
$: << File.expand_path('./lib')
|
6
4
|
require 'moka'
|
7
5
|
require 'sinatra'
|
8
6
|
|
9
|
-
|
10
7
|
get '/' do
|
11
|
-
Moka.configure do |config|
|
8
|
+
Moka.configure env: :test do |config|
|
12
9
|
config.dealer_code = ENV['MOKA_DEALER_CODE']
|
13
10
|
config.username = ENV['MOKA_USERNAME']
|
14
11
|
config.password = ENV['MOKA_PASSWORD']
|
15
12
|
end
|
16
13
|
|
17
|
-
|
14
|
+
direct_payment = Moka::Payment::Direct3D.details do |detail|
|
18
15
|
detail.card_holder_full_name = "Ali Yılmaz"
|
19
16
|
detail.card_number = "5269552233334444"
|
20
17
|
detail.exp_month = "12"
|
21
18
|
detail.exp_year = "2022"
|
22
|
-
detail.cvc_number = "
|
19
|
+
detail.cvc_number = "000"
|
23
20
|
detail.amount = 35.5
|
24
21
|
detail.currency = "TL"
|
25
|
-
detail.redirect_url = "https://
|
22
|
+
detail.redirect_url = "https://7b9fd81b.ngrok.io/payment?MyTrxId=1A2B3CD456"
|
26
23
|
detail.installment_number = "1"
|
27
24
|
detail.client_ip = "195.155.96.234"
|
28
25
|
detail.other_trx_code = "123456"
|
@@ -37,10 +34,14 @@ get '/' do
|
|
37
34
|
detail.buyer_gsm_number = "1111111111"
|
38
35
|
detail.buyer_address = "New York City"
|
39
36
|
end
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
37
|
+
|
38
|
+
direct_payment.pay
|
39
|
+
puts direct_payment.response
|
40
|
+
|
41
|
+
if direct_payment.success?
|
42
|
+
redirect direct_payment.verify_payment_url
|
43
|
+
else
|
44
|
+
"Payment Declined"
|
44
45
|
end
|
45
46
|
end
|
46
47
|
|
@@ -0,0 +1,28 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
$: << File.expand_path('./lib')
|
4
|
+
require 'moka'
|
5
|
+
|
6
|
+
Moka.configure env: :test do |config|
|
7
|
+
config.dealer_code = ENV['MOKA_DEALER_CODE']
|
8
|
+
config.username = ENV['MOKA_USERNAME']
|
9
|
+
config.password = ENV['MOKA_PASSWORD']
|
10
|
+
end
|
11
|
+
|
12
|
+
capture_payment = Moka::Payment::Capture.details do |detail|
|
13
|
+
detail.virtual_pos_order_id = "Your-Virtual-Pos-Order-ID"
|
14
|
+
detail.other_trx_code = ""
|
15
|
+
detail.amount = 35.5
|
16
|
+
detail.client_ip = "195.155.96.234"
|
17
|
+
end
|
18
|
+
|
19
|
+
capture_payment.capture
|
20
|
+
puts capture_payment.response
|
21
|
+
|
22
|
+
if capture_payment.success?
|
23
|
+
puts "Captured Succesfully"
|
24
|
+
else
|
25
|
+
puts "Capture Declined"
|
26
|
+
end
|
27
|
+
puts capture_payment.error
|
28
|
+
pp capture_payment.request_details
|
@@ -0,0 +1,44 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
$: << File.expand_path('./lib')
|
4
|
+
require 'moka'
|
5
|
+
|
6
|
+
Moka.configure env: :test do |config|
|
7
|
+
config.dealer_code = ENV['MOKA_DEALER_CODE']
|
8
|
+
config.username = ENV['MOKA_USERNAME']
|
9
|
+
config.password = ENV['MOKA_PASSWORD']
|
10
|
+
end
|
11
|
+
|
12
|
+
direct_payment = Moka::Payment::Direct.details do |detail|
|
13
|
+
detail.card_holder_full_name = "Ali Yılmaz"
|
14
|
+
detail.card_number = "5269552233334444"
|
15
|
+
detail.exp_month = "12"
|
16
|
+
detail.exp_year = "2022"
|
17
|
+
detail.cvc_number = "123"
|
18
|
+
detail.amount = 35.5
|
19
|
+
detail.currency = "TL"
|
20
|
+
detail.installment_number = "1"
|
21
|
+
detail.client_ip = "195.155.96.234"
|
22
|
+
detail.other_trx_code = "123456"
|
23
|
+
detail.is_pre_auth = 0
|
24
|
+
detail.is_pool_payment = 0
|
25
|
+
detail.integrator_id = 1
|
26
|
+
detail.software = "OpenCart"
|
27
|
+
detail.sub_merchant_name = "Company"
|
28
|
+
detail.description = "Test Description"
|
29
|
+
detail.buyer_full_name = "Elif Yetimoğlu"
|
30
|
+
detail.buyer_email = "test@test.com"
|
31
|
+
detail.buyer_gsm_number = "1111111111"
|
32
|
+
detail.buyer_address = "New York City"
|
33
|
+
end
|
34
|
+
|
35
|
+
direct_payment.pay
|
36
|
+
puts direct_payment.response
|
37
|
+
|
38
|
+
if direct_payment.success?
|
39
|
+
puts "Paid Succesfully"
|
40
|
+
else
|
41
|
+
puts "Payment Declined"
|
42
|
+
end
|
43
|
+
puts direct_payment.error
|
44
|
+
pp direct_payment.request_details
|
data/lib/moka/add/customer.rb
CHANGED
data/lib/moka/configuration.rb
CHANGED
@@ -3,7 +3,7 @@ require 'moka/request'
|
|
3
3
|
|
4
4
|
module Moka
|
5
5
|
module Configuration
|
6
|
-
def configure(options = { env: ENV['RACK_ENV'] })
|
6
|
+
def configure(options = { env: ENV['RACK_ENV'] })
|
7
7
|
@config = Moka::Dealer.new
|
8
8
|
@config.env = options[:env] ? options[:env].to_s : 'production'
|
9
9
|
Moka::Request::set_env
|
data/lib/moka/dealer.rb
CHANGED
@@ -13,10 +13,11 @@ module Moka
|
|
13
13
|
end
|
14
14
|
|
15
15
|
def get_check_key
|
16
|
+
required_params = [ @dealer_code, @username, @password ]
|
17
|
+
raise Moka::Error::NullRequiredParameter if required_params.any? { |params| params.nil? }
|
16
18
|
return @check_key = Moka::Request.get_check_key(
|
17
19
|
@dealer_code, @username, @password
|
18
|
-
).body
|
19
|
-
raise "Error" # Hamsi gonderilmelidi ona uygun xeta yarad
|
20
|
+
).body
|
20
21
|
end
|
21
22
|
end
|
22
23
|
end
|
data/lib/moka/payment.rb
CHANGED
@@ -2,74 +2,125 @@ require 'moka/request'
|
|
2
2
|
require 'moka/configuration'
|
3
3
|
require 'moka/error'
|
4
4
|
|
5
|
-
module Moka
|
6
|
-
|
7
|
-
|
5
|
+
module Moka::Payment
|
6
|
+
def self.included(base)
|
7
|
+
base.class_eval do
|
8
8
|
attr_accessor :dealer_code, :username, :password, :check_key,
|
9
9
|
:card_holder_full_name, :card_number, :exp_month, :exp_year,
|
10
10
|
:cvc_number, :card_token, :amount, :currency, :redirect_url, :redirect_type,
|
11
11
|
:client_ip, :other_trx_code, :is_pre_auth, :is_pool_payment,
|
12
12
|
:integrator_id, :software, :description, :sub_merchant_name, :installment_number,
|
13
|
-
:buyer_full_name, :buyer_email, :buyer_gsm_number, :buyer_address
|
13
|
+
:buyer_full_name, :buyer_email, :buyer_gsm_number, :buyer_address, :virtual_pos_order_id
|
14
|
+
|
14
15
|
|
15
16
|
def initialize(details = {})
|
16
17
|
@dealer_code = Moka.config.dealer_code
|
17
18
|
@username = Moka.config.username
|
18
19
|
@password = Moka.config.password
|
19
20
|
@check_key = Moka.config.check_key
|
21
|
+
@card_number = details[:card_number]
|
22
|
+
@card_holder_full_name = details[:card_holder_full_name]
|
23
|
+
@exp_month = details[:exp_month]
|
24
|
+
@exp_year = details[:exp_year]
|
25
|
+
@cvc_number = details[:cvc_number]
|
26
|
+
@card_token = details[:card_token]
|
27
|
+
@amount = details[:amount]
|
28
|
+
@currency = details[:currency] || "USD"
|
29
|
+
@redirect_url = details[:redirect_url]
|
30
|
+
@redirect_type = details[:redirect_type]
|
31
|
+
@installment_number = details[:installment_number] || 1
|
32
|
+
@client_ip = details[:client_ip]
|
33
|
+
@other_trx_code = details[:other_trx_code]
|
34
|
+
@is_pre_auth = details[:is_pre_auth] || 0
|
35
|
+
@is_pool_payment = details[:is_pool_payment]
|
36
|
+
@integrator_id = details[:installment_number]
|
37
|
+
@software = details[:software]
|
38
|
+
@sub_merchant_name = details[:sub_merchant_name]
|
39
|
+
@description = details[:description]
|
40
|
+
@virtual_pos_order_id = details[:virtual_pos_order_id]
|
41
|
+
@buyer_full_name = details[:buyer_full_name]
|
42
|
+
@buyer_email = details[:buyer_email]
|
43
|
+
@buyer_gsm_number = details[:buyer_gsm_number]
|
44
|
+
@buyer_address = details[:buyer_address]
|
20
45
|
end
|
21
46
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
@dealer_code, @username, @password, @check_key,
|
29
|
-
@card_holder_full_name, @card_token, @amount
|
30
|
-
]
|
31
|
-
|
32
|
-
unless @card_token
|
33
|
-
non_blank_details.delete(@card_token)
|
34
|
-
non_blank_details.push(@card_number, @exp_month, @exp_year, @cvc_number)
|
47
|
+
if base.to_s == "Moka::Payment::Capture"
|
48
|
+
def capture
|
49
|
+
@@response = Moka::Request.capture(@@payment_details)
|
50
|
+
@@error = Moka::Error::RequestError.new
|
51
|
+
@@error.message = @@response["ResultCode"] unless @@response["Data"]
|
52
|
+
return @@response
|
35
53
|
end
|
54
|
+
else
|
55
|
+
def pay
|
56
|
+
raise Moka::Error::NullRedirectUrl if self.class.to_s == "Moka::Payment::Direct3D" && @@payment_details.redirect_url.nil?
|
36
57
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
58
|
+
required_params = [
|
59
|
+
@dealer_code, @username, @password, @check_key,
|
60
|
+
@card_holder_full_name, @card_token, @amount
|
61
|
+
]
|
62
|
+
|
63
|
+
unless @card_token
|
64
|
+
required_params.delete(@card_token)
|
65
|
+
required_params.push(@card_number, @exp_month, @exp_year, @cvc_number)
|
66
|
+
end
|
42
67
|
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
68
|
+
if self.class == Moka::Payment::Direct3D
|
69
|
+
required_params.push(@redirect_url)
|
70
|
+
else
|
71
|
+
@@payment_details.redirect_url = nil
|
72
|
+
end
|
73
|
+
|
74
|
+
raise Moka::Error::NullPaymentInformation if required_params.any? {|param| param.nil?}
|
75
|
+
@@response = Moka::Request.direct_payment(@@payment_details)
|
76
|
+
@@error = Moka::Error::RequestError.new
|
77
|
+
@@error.message = @@response["ResultCode"] unless @@response["Data"]
|
78
|
+
return @@response
|
79
|
+
end
|
48
80
|
end
|
49
81
|
|
50
|
-
def self.details
|
51
|
-
@@payment_details =
|
82
|
+
def self.details
|
83
|
+
@@payment_details = self.new
|
52
84
|
yield @@payment_details if block_given?
|
53
85
|
return @@payment_details
|
54
86
|
end
|
55
87
|
|
56
88
|
def response
|
57
|
-
|
89
|
+
@@response
|
58
90
|
end
|
59
91
|
|
60
92
|
def request_details
|
61
93
|
@@payment_details
|
62
94
|
end
|
63
95
|
|
64
|
-
def
|
65
|
-
|
66
|
-
return true if @response["Data"]["IsSuccessful"]
|
67
|
-
end
|
68
|
-
return false
|
96
|
+
def error
|
97
|
+
@@error
|
69
98
|
end
|
70
99
|
|
71
|
-
|
72
|
-
|
100
|
+
if base.to_s == "Moka::Payment::Direct3D"
|
101
|
+
def success?
|
102
|
+
return true if @@response["ResultCode"] == "Success"
|
103
|
+
return false
|
104
|
+
end
|
105
|
+
|
106
|
+
def verify_payment_url
|
107
|
+
return @@response["Data"] if @@response["Data"]
|
108
|
+
return false
|
109
|
+
end
|
110
|
+
|
111
|
+
def self.paid_successfully?(params)
|
112
|
+
unless params["isSuccessful"] == "False"
|
113
|
+
return params
|
114
|
+
end
|
115
|
+
return false
|
116
|
+
end
|
117
|
+
else
|
118
|
+
def success?
|
119
|
+
if @@response["Data"]
|
120
|
+
return true if @@response["Data"]["IsSuccessful"]
|
121
|
+
end
|
122
|
+
return false
|
123
|
+
end
|
73
124
|
end
|
74
125
|
end
|
75
126
|
end
|
data/lib/moka/payment/capture.rb
CHANGED
@@ -1,35 +1,47 @@
|
|
1
1
|
require 'moka/payment'
|
2
|
-
require 'moka/request'
|
3
2
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
3
|
+
class Moka::Payment::Capture
|
4
|
+
include Moka::Payment
|
5
|
+
# Capture İşlemi (Ön Provizyonu Satışa Dönüştürme)
|
6
|
+
#
|
7
|
+
# Servis Adresi: /PaymentDealer/DoCapture
|
8
|
+
#
|
9
|
+
# PaymentDealerAuthentication
|
10
|
+
#
|
11
|
+
# dealer_code: (string) Moka sistemi tarafından verilen bayi kodu
|
12
|
+
# username: (string) Moka sistemi tarafından verilen Api kullanıcı adı
|
13
|
+
# password: (string) Moka sistemi tarafından verilen Api şifresi
|
14
|
+
#
|
15
|
+
# PaymentDealerRequest
|
16
|
+
# virtual_pos_order_id: (string) Ön Provizyon alma işlemi sonucunda dönen işlem numarası bilgisidir.
|
17
|
+
# 3D ödemelerde trxCode ismiyle dönülen numaradır.
|
18
|
+
# Key: trxCode Value : ORDER-17131QQFG04026575
|
19
|
+
# other_trx_code: (string) Ön Provizyon işlemi gönderirken bayinin, kendine ait verdiği Unique işlem numarasıdır.
|
20
|
+
# VirtualPosOrderId verilmişse bu numarayı boş gönderebilirsiniz. Ya da kendi Unique numaranızı
|
21
|
+
# kullanmak istiyorsanız VirtualPosOrderId alanını boş gönderebilirsiniz.
|
22
|
+
# amount: (float) Ön Provizyon kapatma tutarı (Kuruş kısmı nokta ile yazılır. Örn: 27.50) Bu tutar alınan provizyona eşit ya da küçük olabilir
|
23
|
+
# client_ip: (string) Ön Provizyonu kapatan uygulamanın (desktop/web) çalıştırıldığı bilgisayarın IP bilgisi
|
24
|
+
#
|
25
|
+
# Kullanıla bilir methodlar.
|
26
|
+
#
|
27
|
+
# def capture
|
28
|
+
# Capture işlemini sunucuya gönderir.
|
29
|
+
# end
|
30
|
+
#
|
31
|
+
# def success?
|
32
|
+
# "Data" içinde yer alan "IsSuccessful" (true/false) alanı kontrol edilerek işlemin durumu kontrol edilir.
|
33
|
+
# "IsSuccessful" içindeki boolean değer döner.
|
34
|
+
# end
|
35
|
+
#
|
36
|
+
# def request_details
|
37
|
+
# Sunucuye gönderilmiş nesnenin kopyası döner.
|
38
|
+
# end
|
39
|
+
#
|
40
|
+
# def response
|
41
|
+
# Sunucudan alınan raw nesne döner.
|
42
|
+
# end
|
43
|
+
#
|
44
|
+
# def error
|
45
|
+
# Sunucudan alıan hata döner.
|
46
|
+
# end
|
35
47
|
end
|
data/lib/moka/payment/direct.rb
CHANGED
@@ -1,38 +1,76 @@
|
|
1
1
|
require 'moka/payment'
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
3
|
+
class Moka::Payment::Direct
|
4
|
+
include Moka::Payment
|
5
|
+
# 3D Secure Olmadan Ödeme (Non-3D Ödeme)
|
6
|
+
#
|
7
|
+
# Servis Adresi: /PaymentDealer/DoDirectPayment
|
8
|
+
#
|
9
|
+
# PaymentDealerAuthentication
|
10
|
+
#
|
11
|
+
# dealer_code: (string) Moka sistemi tarafından verilen bayi kodu
|
12
|
+
# username: (string) Moka sistemi tarafından verilen Api kullanıcı adı
|
13
|
+
# password: (string) Moka sistemi tarafından verilen Api şifresi
|
14
|
+
#
|
15
|
+
# PaymentDealerRequest
|
16
|
+
#
|
17
|
+
# card_holder_full_name: (string) Kart sahibinin adı soyadı
|
18
|
+
# card_number: (string) Kart numarası
|
19
|
+
# exp_month: (string) Son kullanma tarihi ay bilgisi (MM)
|
20
|
+
# exp_year: (string) Son kullanma tarihi yıl bilgisi (YYYY)
|
21
|
+
# cvc_number: (string) Kart güvenlik numarası
|
22
|
+
# card_token: (string) Moka üzerinde Kart saklama özelliği kullanılıyorsa, Kartın Token’ ı
|
23
|
+
# verilerek çekim yapılabilir. Token verilmişse, kart numarası ve diğer
|
24
|
+
# kart bilgilerinin (son kul. tarihi, cvc) verilmesine gerek yoktur.
|
25
|
+
# amount: (float) Ödeme tutarı (Kuruş kısmı nokta ile yazılır. Örn: 27.50)
|
26
|
+
# currency: (string) Para birimi. Opsiyonel alandır, hiç gönderilmezse veya boş gönderilirse,
|
27
|
+
# default’ u TL dir, Diğer değerler : USD, EUR, GBP
|
28
|
+
# installment_number: (integer) Taksit Sayısı. Opsiyonel alandır, hiç gönderilmezse, boş gönderilirse, 0 veya
|
29
|
+
# 1 gönderilirse Peşin satış demektir, Taksit için 2 ile 12 arasında bir değer gönderilmelidir.
|
30
|
+
# client_ip: (string) Kart numarasının alındığı uygulamanın (desktop/web) çalıştırıldığı bilgisayarın IP bilgisi
|
31
|
+
# other_trx_code: (string) Mütabakat sağlamak için kendi Unique Transaction (İşlem) Kodunuzu bu alanda gönderebilirsiniz.
|
32
|
+
# (Boş da gönderilebilir). Not : Bayi ödeme detay listesi alırken bu kodunuzu kullanarak Ödeme durumunu öğrenebilirsiniz.
|
33
|
+
# is_pre_auth: (integer) 0 : Doğrudan Çekim İşlemi
|
34
|
+
# 1 : Ön Provizyon Alma İşlemi (Bir süre sonra DoCapture servisi ile ödemeye dönüştürülmeli)
|
35
|
+
# is_pool_payment: (integer) Para kredi kartından çekilecek fakat havuzda bekletilecek. Bayi, müşteri hizmet veya ürünü
|
36
|
+
# teslim aldıktan sonra ödemeyi onaylayacak ve bu işlemle ilgili ödeme onaydan sonra bayinin
|
37
|
+
# ekstresine yansıyacak (opsiyonel). Havuz sisteminde bir ödeme göndermek için bu alanı 1 yapınız.
|
38
|
+
# integrator_id: (integer) Hazır ETicaret paketlerine Moka entegrasyonu yapan Sistem Entegratörü Firmanın ID si – (Entegratör firma değilseniz bu alanı göndermeyiniz !)
|
39
|
+
# software: (string) Moka ödeme sistemiyle entegre çalışan, bu servisi çağırdığınız E-ticaret paketinin veya yazılımınızın ismi. (Max 30 karakter)
|
40
|
+
# sub_merchant_name: (string) Ekstrede görünmesini istediğiniz isim – Mokaya önceden bildirilmeli
|
41
|
+
# description: (string) Açıklama alanıdır. Ödemeye ilişkin bir açıklama yazmak istenirse bu alana yazılabilir.(200 karaktere kadar yazılabilir.)
|
42
|
+
#
|
43
|
+
# BuyerInformation (Array)(opsiyonel)
|
44
|
+
#
|
45
|
+
# Bayimizden Ürün/Hizmet satın alan müşterisi ile ilgili alanlardır.
|
46
|
+
# Bu alanların gönderilmesi zorunlu olmamasına karşın, Moka ile paylaşılması,
|
47
|
+
# ileride ödemeyle ilgili oluşabilecek sorunlara karşı, hem bayimizin hem de Moka' nın menfaatinedir.
|
48
|
+
#
|
49
|
+
# buyer_full_name: (string) Opsiyonel alandır.Alıcının adı ve soyadıdır.
|
50
|
+
# buyer_email: (string) Opsiyonel alandır.Alıcının eposta adresidir.
|
51
|
+
# buyer_gsm_number: (string) Opsiyonel alandır.Alıcının cep telefonu numarasıdır.
|
52
|
+
# buyer_address: (string) Opsiyonel alandır.Alıcının adresidir.
|
31
53
|
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
54
|
+
# Kullanıla bilir methodlar.
|
55
|
+
#
|
56
|
+
# def pay
|
57
|
+
# Ödeme işlemini sunucuya gönderir.
|
58
|
+
# end
|
59
|
+
#
|
60
|
+
# def success?
|
61
|
+
# "Data" içinde yer alan "IsSuccessful" (true/false) alanı kontrol edilerek işlemin durumu kontrol edilir.
|
62
|
+
# "IsSuccessful" içindeki boolean değer döner.
|
63
|
+
# end
|
64
|
+
#
|
65
|
+
# def request_details
|
66
|
+
# Sunucuye gönderilmiş nesnenin kopyası döner.
|
67
|
+
# end
|
68
|
+
#
|
69
|
+
# def response
|
70
|
+
# Sunucudan alınan raw nesne döner.
|
71
|
+
# end
|
72
|
+
#
|
73
|
+
# def error
|
74
|
+
# Sunucudan alıan hata döner.
|
75
|
+
# end
|
38
76
|
end
|
@@ -1,61 +1,87 @@
|
|
1
1
|
require 'moka/payment'
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
3
|
+
class Moka::Payment::Direct3D
|
4
|
+
include Moka::Payment
|
5
|
+
# 3D Secure ile Ödeme
|
6
|
+
#
|
7
|
+
# Servis Adresi: /PaymentDealer/DoDirectPaymentThreeD
|
8
|
+
#
|
9
|
+
# PaymentDealerAuthentication
|
10
|
+
#
|
11
|
+
# dealer_code: (string) Moka sistemi tarafından verilen bayi kodu
|
12
|
+
# username: (string) Moka sistemi tarafından verilen Api kullanıcı adı
|
13
|
+
# password: (string) Moka sistemi tarafından verilen Api şifresi
|
14
|
+
#
|
15
|
+
# PaymentDealerRequest
|
16
|
+
#
|
17
|
+
# card_holder_full_name: (string) Kart sahibinin adı soyadı
|
18
|
+
# card_number: (string) Kart numarası
|
19
|
+
# exp_month: (string) Son kullanma tarihi ay bilgisi (MM)
|
20
|
+
# exp_year: (string) Son kullanma tarihi yıl bilgisi (YYYY)
|
21
|
+
# cvc_number: (string) Kart güvenlik numarası
|
22
|
+
# card_token: (string) Moka üzerinde Kart saklama özelliği kullanılıyorsa, Kartın Token’ ı
|
23
|
+
# verilerek çekim yapılabilir. Token verilmişse, kart numarası ve diğer
|
24
|
+
# kart bilgilerinin (son kul. tarihi, cvc) verilmesine gerek yoktur.
|
25
|
+
# amount: (float) Ödeme tutarı (Kuruş kısmı nokta ile yazılır. Örn: 27.50)
|
26
|
+
# currency: (string) Para birimi. Opsiyonel alandır, hiç gönderilmezse veya boş gönderilirse,
|
27
|
+
# default’ u TL dir, Diğer değerler : USD, EUR, GBP
|
28
|
+
# redirect_url: (string) 3D işlemi sonucunda, başarılı ya da başarısız işlem sonucunun döndürüldüğü ve
|
29
|
+
# kullanıcının yönlendirildiği bayi web sayfası. Bu URL’ yi verirken, sonuna parametre olarak
|
30
|
+
# kendi işlem ID’ nizi yazarsanız, hangi işleminizin sonucunu aldığınızı belirlemiş olursunuz.
|
31
|
+
# Örnek : https://www.mysite.com/PayResult?MyTrxId=1A2B3C4DF5R
|
32
|
+
# Önemli Not : URL sonuna yazdığınız kendinize ait işlem kodunun, güvenliğiniz için, tahmin edilemez bir kod olmasını tercih ediniz.
|
33
|
+
# redirect_type: (integer) Opsiyonel alandır. Default değeri 0 (sıfır) dır. Ödeme işleminin sonucu servisi çağıran web sitesinde ana sayfaya y
|
34
|
+
# önlendirme yapar. IFrame içerisinden bu servis çağrılmışsa ve sonuç IFrame içine redirect yapılsın isteniyorsa, bu alana 1 yazılmalıdır.
|
35
|
+
# installment_number: (integer) Taksit Sayısı. Opsiyonel alandır, hiç gönderilmezse, boş gönderilirse, 0 veya
|
36
|
+
# 1 gönderilirse Peşin satış demektir, Taksit için 2 ile 12 arasında bir değer gönderilmelidir.
|
37
|
+
# client_ip: (string) Kart numarasının alındığı uygulamanın (desktop/web) çalıştırıldığı bilgisayarın IP bilgisi
|
38
|
+
# other_trx_code: (string) Mütabakat sağlamak için kendi Unique Transaction (İşlem) Kodunuzu bu alanda gönderebilirsiniz.
|
39
|
+
# (Boş da gönderilebilir). Not : Bayi ödeme detay listesi alırken bu kodunuzu kullanarak Ödeme durumunu öğrenebilirsiniz.
|
40
|
+
# is_pre_auth: (integer) 0 : Doğrudan Çekim İşlemi
|
41
|
+
# 1 : Ön Provizyon Alma İşlemi (Bir süre sonra DoCapture servisi ile ödemeye dönüştürülmeli)
|
42
|
+
# is_pool_payment: (integer) Para kredi kartından çekilecek fakat havuzda bekletilecek. Bayi, müşteri hizmet veya ürünü
|
43
|
+
# teslim aldıktan sonra ödemeyi onaylayacak ve bu işlemle ilgili ödeme onaydan sonra bayinin
|
44
|
+
# ekstresine yansıyacak (opsiyonel). Havuz sisteminde bir ödeme göndermek için bu alanı 1 yapınız.
|
45
|
+
# integrator_id: (integer) Hazır ETicaret paketlerine Moka entegrasyonu yapan Sistem Entegratörü Firmanın ID si – (Entegratör firma değilseniz bu alanı göndermeyiniz !)
|
46
|
+
# software: (string) Moka ödeme sistemiyle entegre çalışan, bu servisi çağırdığınız E-ticaret paketinin veya yazılımınızın ismi. (Max 30 karakter)
|
47
|
+
# sub_merchant_name: (string) Ekstrede görünmesini istediğiniz isim – Mokaya önceden bildirilmeli
|
48
|
+
# description: (string) Açıklama alanıdır. Ödemeye ilişkin bir açıklama yazmak istenirse bu alana yazılabilir.(200 karaktere kadar yazılabilir.)
|
49
|
+
#
|
50
|
+
# BuyerInformation (Array)(opsiyonel)
|
51
|
+
#
|
52
|
+
# Bayimizden Ürün/Hizmet satın alan müşterisi ile ilgili alanlardır.
|
53
|
+
# Bu alanların gönderilmesi zorunlu olmamasına karşın, Moka ile paylaşılması,
|
54
|
+
# ileride ödemeyle ilgili oluşabilecek sorunlara karşı, hem bayimizin hem de Moka' nın menfaatinedir.
|
55
|
+
#
|
56
|
+
# buyer_full_name: (string) Opsiyonel alandır.Alıcının adı ve soyadıdır.
|
57
|
+
# buyer_email: (string) Opsiyonel alandır.Alıcının eposta adresidir.
|
58
|
+
# buyer_gsm_number: (string) Opsiyonel alandır.Alıcının cep telefonu numarasıdır.
|
59
|
+
# buyer_address: (string) Opsiyonel alandır.Alıcının adresidir.
|
33
60
|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
end
|
61
|
+
# Kullanıla bilir methodlar.
|
62
|
+
#
|
63
|
+
# def pay
|
64
|
+
# Ödeme işlemini sunucuya gönderir.
|
65
|
+
# end
|
66
|
+
#
|
67
|
+
# def success?
|
68
|
+
# "Data" içinde yer alan "IsSuccessful" (true/false) alanı kontrol edilerek işlemin durumu kontrol edilir.
|
69
|
+
# "IsSuccessful" içindeki boolean değer döner.
|
70
|
+
# end
|
71
|
+
#
|
72
|
+
# def request_details
|
73
|
+
# Sunucuye gönderilmiş nesnenin kopyası döner.
|
74
|
+
# end
|
75
|
+
#
|
76
|
+
# def response
|
77
|
+
# Sunucudan alınan raw nesne döner.
|
78
|
+
# end
|
79
|
+
#
|
80
|
+
# def error
|
81
|
+
# Sunucudan alıan hata döner.
|
82
|
+
# end
|
83
|
+
#
|
84
|
+
# def self.paid_successfully?(params)
|
85
|
+
# 3D Onaylama sonucu sizin URL’ nize post atılarak dönen değerler kontrol edirir
|
86
|
+
# end
|
61
87
|
end
|
data/lib/moka/update/customer.rb
CHANGED
data/lib/moka/version.rb
CHANGED
data/moka.gemspec
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
|
2
|
+
lib = File.expand_path("../lib", __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require "moka/version"
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "moka-payment"
|
8
|
+
spec.version = Moka::VERSION
|
9
|
+
spec.authors = ["Farhad"]
|
10
|
+
spec.email = ["farhad9801@gmail.com"]
|
11
|
+
|
12
|
+
spec.summary = %q{Ruby gem for Moka payment system}
|
13
|
+
spec.homepage = "https://github.com/0x2C6/moka-payment"
|
14
|
+
spec.license = "MIT"
|
15
|
+
|
16
|
+
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
17
|
+
f.match(%r{^(test|spec|features)/})
|
18
|
+
end
|
19
|
+
spec.bindir = "exe"
|
20
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
21
|
+
spec.require_paths = ["lib"]
|
22
|
+
|
23
|
+
spec.add_development_dependency "bundler", "~> 1.16"
|
24
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
25
|
+
spec.add_development_dependency "minitest", "~> 5.0"
|
26
|
+
|
27
|
+
spec.add_dependency 'rest-client', '~> 2.0', '>= 2.0.2'
|
28
|
+
spec.add_dependency 'json', '~> 2.1'
|
29
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: moka-payment
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Farhad
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-01-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -62,7 +62,7 @@ dependencies:
|
|
62
62
|
- - ">="
|
63
63
|
- !ruby/object:Gem::Version
|
64
64
|
version: 2.0.2
|
65
|
-
type: :
|
65
|
+
type: :runtime
|
66
66
|
prerelease: false
|
67
67
|
version_requirements: !ruby/object:Gem::Requirement
|
68
68
|
requirements:
|
@@ -79,27 +79,13 @@ dependencies:
|
|
79
79
|
- - "~>"
|
80
80
|
- !ruby/object:Gem::Version
|
81
81
|
version: '2.1'
|
82
|
-
type: :
|
82
|
+
type: :runtime
|
83
83
|
prerelease: false
|
84
84
|
version_requirements: !ruby/object:Gem::Requirement
|
85
85
|
requirements:
|
86
86
|
- - "~>"
|
87
87
|
- !ruby/object:Gem::Version
|
88
88
|
version: '2.1'
|
89
|
-
- !ruby/object:Gem::Dependency
|
90
|
-
name: minitest-hooks
|
91
|
-
requirement: !ruby/object:Gem::Requirement
|
92
|
-
requirements:
|
93
|
-
- - "~>"
|
94
|
-
- !ruby/object:Gem::Version
|
95
|
-
version: '1.5'
|
96
|
-
type: :development
|
97
|
-
prerelease: false
|
98
|
-
version_requirements: !ruby/object:Gem::Requirement
|
99
|
-
requirements:
|
100
|
-
- - "~>"
|
101
|
-
- !ruby/object:Gem::Version
|
102
|
-
version: '1.5'
|
103
89
|
description:
|
104
90
|
email:
|
105
91
|
- farhad9801@gmail.com
|
@@ -115,7 +101,9 @@ files:
|
|
115
101
|
- Rakefile
|
116
102
|
- bin/console
|
117
103
|
- bin/setup
|
118
|
-
-
|
104
|
+
- examples/payments/3d_secure_payment.rb
|
105
|
+
- examples/payments/capture_payment.rb
|
106
|
+
- examples/payments/direct_payment.rb
|
119
107
|
- lib/moka.rb
|
120
108
|
- lib/moka/add/customer.rb
|
121
109
|
- lib/moka/configuration.rb
|
@@ -154,7 +142,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
154
142
|
version: '0'
|
155
143
|
requirements: []
|
156
144
|
rubyforge_project:
|
157
|
-
rubygems_version:
|
145
|
+
rubygems_version: 3.0.0.beta3
|
158
146
|
signing_key:
|
159
147
|
specification_version: 4
|
160
148
|
summary: Ruby gem for Moka payment system
|