yaka 1.0.0 → 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +2 -2
- data/lib/yaka/basic_struct.rb +1 -1
- data/lib/yaka/class_methods.rb +5 -6
- data/lib/yaka/payment.rb +40 -7
- data/lib/yaka/payment_response.rb +6 -6
- data/lib/yaka/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: adbc706650cd04b94a1537131ddac857130956ab301f53202c75257089225550
|
4
|
+
data.tar.gz: f775b38a8ed44a1ccf60845948560c86699e55b822ee49eb8b0aa89837e7160a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e99179ad75402a594290e058d00779520ecaf7f4fa21a24916d5fef18ca3357e89cb47c68add3fc2c72ac39786b4423f12af3905dc6440d7255cad571a37bb6f
|
7
|
+
data.tar.gz: 60fa4d2e27900ab425011c39c7628a35f48ec392edd8492c08fb5817319e8df5354f4aabe88f5a9bf43406d4c58a07f1a059523ba9f0dd8780a31d4b74835e63
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
yaka (1.0.
|
4
|
+
yaka (1.0.1)
|
5
5
|
dry-configurable
|
6
6
|
dry-struct
|
7
7
|
faraday
|
@@ -37,7 +37,7 @@ GEM
|
|
37
37
|
dry-equalizer (~> 0.2)
|
38
38
|
dry-types (~> 1.0)
|
39
39
|
ice_nine (~> 0.11)
|
40
|
-
dry-types (1.0.
|
40
|
+
dry-types (1.0.1)
|
41
41
|
concurrent-ruby (~> 1.0)
|
42
42
|
dry-container (~> 0.3)
|
43
43
|
dry-core (~> 0.4, >= 0.4.4)
|
data/lib/yaka/basic_struct.rb
CHANGED
data/lib/yaka/class_methods.rb
CHANGED
@@ -3,10 +3,6 @@
|
|
3
3
|
module Yaka
|
4
4
|
module ClassMethods
|
5
5
|
def publish_payment(data, token = nil)
|
6
|
-
payment = data.is_a?(Yaka::Payment) ? data : Yaka::Payment.new(data)
|
7
|
-
|
8
|
-
data = payment.to_json
|
9
|
-
|
10
6
|
conn = Faraday.new(url: Yaka::HOST_URL) # create a new Connection with base URL
|
11
7
|
conn.basic_auth(Yaka.config.shop_id, Yaka.config.private_key) # set the Authentication header
|
12
8
|
|
@@ -14,10 +10,13 @@ module Yaka
|
|
14
10
|
req.url Yaka::PAYMENTS_URL
|
15
11
|
req.headers['Content-Type'] = 'application/json'
|
16
12
|
req.headers['Idempotence-Key'] = token
|
17
|
-
req.body = data
|
13
|
+
req.body = data.to_json
|
18
14
|
end
|
19
15
|
|
20
|
-
|
16
|
+
body = JSON.parse(@result.body)
|
17
|
+
raise Yaka::Error, body['description'] if body.dig('code').to_s.include?('error')
|
18
|
+
|
19
|
+
body
|
21
20
|
end
|
22
21
|
|
23
22
|
def yandex_ip?(ip)
|
data/lib/yaka/payment.rb
CHANGED
@@ -3,34 +3,67 @@
|
|
3
3
|
module Yaka
|
4
4
|
class Payment < BasicStruct
|
5
5
|
# This class is used for sending payments to Yandex Kassa.
|
6
|
+
|
7
|
+
# https://kassa.yandex.ru/developers/payments/54fz#54fz-payment-subject
|
8
|
+
# commodity Товар
|
9
|
+
# excise Подакцизный товар
|
10
|
+
# job Работа
|
11
|
+
# service Услуга
|
12
|
+
# gambling_bet Ставка в азартной игре
|
13
|
+
# gambling_prize Выигрыш в азартной игре
|
14
|
+
# lottery Лотерейный билет
|
15
|
+
# lottery_prize Выигрыш в лотерею
|
16
|
+
# intellectual_activity Результаты интеллектуальной деятельности
|
17
|
+
# payment Платеж
|
18
|
+
# agent_commission Агентское вознаграждение
|
19
|
+
# property_right Имущественные права
|
20
|
+
# non_operating_gain Внереализационный доход
|
21
|
+
# insurance_premium Страховой сбор
|
22
|
+
# sales_tax Торговый сбор
|
23
|
+
# resort_fee Курортный сбор
|
24
|
+
# composite Несколько вариантов
|
25
|
+
# another Другое
|
26
|
+
PAYMENT_SUBJECTS = Types::Strict::String.enum(
|
27
|
+
'commodity', 'excise', 'job', 'service', 'gambling_bet',
|
28
|
+
'gambling_prize', 'lottery', 'lottery_prize', 'intellectual_activity',
|
29
|
+
'payment', 'agent_commission', 'property_right', 'non_operating_gain',
|
30
|
+
'insurance_premium', 'sales_tax', 'resort_fee', 'composite', 'another'
|
31
|
+
)
|
32
|
+
|
33
|
+
|
6
34
|
attribute :amount, BasicStruct do
|
7
35
|
attribute :value, Types::String
|
8
36
|
attribute :currency, Types::String
|
9
37
|
end
|
10
38
|
attribute :confirmation, BasicStruct do
|
11
39
|
attribute :type, Types::String.default('redirect')
|
12
|
-
attribute :return_url, Types::Strict::String
|
40
|
+
attribute :return_url, Types::Strict::String.meta(omittable: true)
|
13
41
|
end
|
14
42
|
attribute :capture, Types::Bool.default(true)
|
43
|
+
attribute :save_payment_method, Types::Bool.meta(omittable: true)
|
15
44
|
attribute :description, Types::Strict::String
|
16
45
|
attribute :receipt, BasicStruct.meta(omittable: true) do
|
17
|
-
attribute :items, Types::Array.of(BasicStruct).default([]) do
|
46
|
+
attribute :items, Types::Array.of(BasicStruct).default([].freeze) do
|
18
47
|
attribute :description, Types::String
|
19
48
|
attribute :amount, BasicStruct.meta(omittable: true) do
|
20
49
|
attribute :value, Types::String.meta(omittable: true)
|
21
50
|
attribute :currency, Types::String.meta(omittable: true)
|
22
51
|
end
|
23
52
|
attribute :quantity, Types::Integer
|
24
|
-
attribute :vat_code, Types::
|
25
|
-
attribute :payment_mode, Types::Strict::String.meta(omittable: true)
|
26
|
-
attribute :payment_subject,
|
53
|
+
attribute :vat_code, Types::Integer # https://kassa.yandex.ru/docs/guides/#54fz-vat-codes
|
54
|
+
attribute :payment_mode, Types::Strict::String.meta(omittable: true) # https://kassa.yandex.ru/developers/payments/54fz#54fz-payment-mode
|
55
|
+
attribute :payment_subject, PAYMENT_SUBJECTS.meta(omittable: true)
|
27
56
|
end
|
28
57
|
attribute :phone, Types::String.meta(omittable: true)
|
29
58
|
attribute :email, Types::String.meta(omittable: true)
|
30
|
-
attribute :tax_system_code, Types::String.meta(omittable: true)
|
59
|
+
attribute :tax_system_code, Types::String.meta(omittable: true) # https://kassa.yandex.ru/developers/payments/54fz#54fz-tax-systems
|
31
60
|
end
|
32
|
-
attribute :payment_token, Types::String
|
61
|
+
attribute :payment_token, Types::String.meta(omittable: true)
|
33
62
|
attribute :metadata, Types::Hash
|
34
63
|
attribute :client_ip, Types::String
|
64
|
+
attribute :payment_method_data, BasicStruct.meta(omittable: true) do
|
65
|
+
attribute :type, Types::String
|
66
|
+
attribute :phone, Types::String.meta(omittable: true)
|
67
|
+
end
|
35
68
|
end
|
36
69
|
end
|
@@ -11,20 +11,20 @@ module Yaka
|
|
11
11
|
attribute :value, Types::String
|
12
12
|
attribute :currency, Types::String
|
13
13
|
end
|
14
|
-
attribute :authorization_details, BasicStruct do
|
14
|
+
attribute :authorization_details, BasicStruct.meta(omittable: true) do
|
15
15
|
attribute :rrn, Types::String
|
16
16
|
attribute :auth_code, Types::String
|
17
17
|
end
|
18
|
-
attribute :captured_at, Types::DateTime
|
18
|
+
attribute :captured_at, Types::DateTime.meta(omittable: true)
|
19
19
|
attribute :created_at, Types::DateTime
|
20
20
|
attribute :description, Types::String
|
21
21
|
attribute :metadata, Types::Hash
|
22
22
|
attribute :payment_method, BasicStruct do
|
23
23
|
attribute :id, Types::String
|
24
24
|
attribute :type, Types::String
|
25
|
-
attribute :saved, Types::String
|
26
|
-
attribute :title, Types::String
|
27
|
-
attribute :card, BasicStruct do
|
25
|
+
attribute :saved, Types::String.meta(omittable: true)
|
26
|
+
attribute :title, Types::String.meta(omittable: true)
|
27
|
+
attribute :card, BasicStruct.meta(omittable: true) do
|
28
28
|
attribute :first6, Types::String
|
29
29
|
attribute :last4, Types::String
|
30
30
|
attribute :expiry_month, Types::String
|
@@ -37,7 +37,7 @@ module Yaka
|
|
37
37
|
attribute :gateway_id, Types::String
|
38
38
|
end
|
39
39
|
attribute :refundable, Types::Bool
|
40
|
-
attribute :refunded_amount, BasicStruct do
|
40
|
+
attribute :refunded_amount, BasicStruct.meta(omittable: true) do
|
41
41
|
attribute :value, Types::String
|
42
42
|
attribute :currency, Types::String
|
43
43
|
end
|
data/lib/yaka/version.rb
CHANGED