privat24_api 0.3.0 → 0.4.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a56e4dd019db0597d3f7d57968e8c87ddaf8c8cc09369bcbd4382e2e8d3b0d88
4
- data.tar.gz: fad096935ce7dd9922dc01cad036da1652f3a3258fa3acfdb9aa8ffdff094760
3
+ metadata.gz: abce1d097e78c5a39fa4debf7542fb92c5cfe8ec262b2c6d12a055d0d87fafdc
4
+ data.tar.gz: 760c0df0ce188e4f47a82e594112ac74adca14754669c14e93b9a1ed662158f7
5
5
  SHA512:
6
- metadata.gz: 49d41341a5a4d278bd7a7023db4c65c79f78c2d1494d7fd4cdb7e25d618684f6bddea523e230d9dc823fd52e8cbfbb0042bc1701457bc6dc0f282322a643f597
7
- data.tar.gz: 4f38a9bb2e1273a5722c77a9b87276278ca3a79becf93ba8ac98e55a9364b27e65d3a68b763fe925d42d1dff4362d56f71bb0acce45a386bfdfef7199f283462
6
+ metadata.gz: 4d43174dcae07822e85e437689222a3348c45e467623b47dfb16b5f06d19f0edce67e031e53c0611755552dd15cd4447fc0afab909e909667e90f2b19cfacec0
7
+ data.tar.gz: 12e37e4e370a93bdbe4c72eff28d791931d3c865f332fec9a3eda5c206bd44b676b66c99e0799ba96bf3d52febbd8cf2480f9b57b3173d216dd9739431e19f19
@@ -17,9 +17,5 @@ module Privat24Api
17
17
  def payment
18
18
  Privat24Api::PaymentRequest.new(args)
19
19
  end
20
-
21
- def public
22
- Privat24Api::PublicRequest.new(args)
23
- end
24
20
  end
25
21
  end
@@ -35,13 +35,13 @@ module Privat24Api
35
35
  'send_sms' => 'sendsms'
36
36
  },
37
37
  'public' => {
38
- 'exchange_cash' => 'pubinfo?exchange&coursid=5',
39
- 'exchange_non_cash' => 'pubinfo?exchange&coursid=11',
40
- 'exchange' => 'pubinfo?exchange&coursid=3',
38
+ 'exchange_cash' => 'pubinfo',
39
+ 'exchange_non_cash' => 'pubinfo',
40
+ 'exchange' => 'pubinfo',
41
41
  'exchange_archive' => 'exchange_rates',
42
42
  'list_privat_offices' => 'pboffice',
43
- 'atm' => 'https://api.privatbank.ua/p24api/infrastructure?atm',
44
- 'tso' => 'https://api.privatbank.ua/p24api/infrastructure?tso'
43
+ 'atm' => 'infrastructure',
44
+ 'tso' => 'infrastructure'
45
45
  }
46
46
  }
47
47
  end
@@ -12,7 +12,7 @@ module Privat24Api
12
12
  end
13
13
 
14
14
  def balance
15
- Request.new(card_args).send_data_for(:post, MOD, __method__.to_s) do |data|
15
+ Request.new(card_args).send_data_for(MOD, __method__.to_s) do |data|
16
16
  data.oper('cmt')
17
17
  data.wait('0')
18
18
  data.payment(id: '')
@@ -22,7 +22,7 @@ module Privat24Api
22
22
  end
23
23
 
24
24
  def transaction_details(date_from, date_to)
25
- Request.new(card_args).send_data_for(:post, MOD, __method__.to_s) do |data|
25
+ Request.new(card_args).send_data_for(MOD, __method__.to_s) do |data|
26
26
  data.oper('cmt')
27
27
  data.wait('0')
28
28
  data.test('0')
@@ -13,7 +13,7 @@ module Privat24Api
13
13
 
14
14
  # payment_id - order id of your shop
15
15
  def pay_on_privat_card(payment_id, card, amount, details, currency='UAH')
16
- Request.new(card_args).send_data_for(:post, MOD, __method__.to_s) do |data|
16
+ Request.new(card_args).send_data_for(MOD, __method__.to_s) do |data|
17
17
  data.oper('cmt')
18
18
  data.wait('0')
19
19
  data.test('0')
@@ -28,7 +28,7 @@ module Privat24Api
28
28
 
29
29
  # payment_id - order id of your shop
30
30
  def pay_on_ua_card(payment_id, card, amount, b_name, b_crf, b_bic, details, currency='UAH')
31
- Request.new(card_args).send_data_for(:post, MOD, __method__.to_s) do |data|
31
+ Request.new(card_args).send_data_for(MOD, __method__.to_s) do |data|
32
32
  data.oper('cmt')
33
33
  data.wait('0')
34
34
  data.test('0')
@@ -46,7 +46,7 @@ module Privat24Api
46
46
 
47
47
  # payment_id - order id of your shop
48
48
  def pay_on_visa_card(payment_id, card, amount, b_name, details, currency='UAH')
49
- Request.new(card_args).send_data_for(:post, MOD, __method__.to_s) do |data|
49
+ Request.new(card_args).send_data_for(MOD, __method__.to_s) do |data|
50
50
  data.oper('cmt')
51
51
  data.wait('30')
52
52
  data.test('0')
@@ -61,7 +61,7 @@ module Privat24Api
61
61
  end
62
62
 
63
63
  def check_status_pay(id, ref)
64
- Request.new(card_args).send_data_for(:post, MOD, __method__.to_s) do |data|
64
+ Request.new(card_args).send_data_for(MOD, __method__.to_s) do |data|
65
65
  data.oper('cmt')
66
66
  data.wait('0')
67
67
  data.test('0')
@@ -73,7 +73,7 @@ module Privat24Api
73
73
  end
74
74
 
75
75
  def pay_on_mobile(phone, amount)
76
- Request.new(card_args).send_data_for(:post, MOD, __method__.to_s) do |data|
76
+ Request.new(card_args).send_data_for(MOD, __method__.to_s) do |data|
77
77
  data.oper('cmt')
78
78
  data.wait('0')
79
79
  data.test('0')
@@ -85,7 +85,7 @@ module Privat24Api
85
85
  end
86
86
 
87
87
  def pay_on_mobile_multiple(phones)
88
- Request.new(card_args).send_data_for(:post, MOD, __method__.to_s) do |data|
88
+ Request.new(card_args).send_data_for(MOD, __method__.to_s) do |data|
89
89
  data.oper('cmt')
90
90
  data.wait('0')
91
91
  data.test('0')
@@ -99,7 +99,7 @@ module Privat24Api
99
99
  end
100
100
 
101
101
  def check_status_mobile(id)
102
- Request.new(card_args).send_data_for(:post, MOD, __method__.to_s) do |data|
102
+ Request.new(card_args).send_data_for(MOD, __method__.to_s) do |data|
103
103
  data.oper('cmt')
104
104
  data.wait('0')
105
105
  data.test('0')
@@ -110,7 +110,7 @@ module Privat24Api
110
110
  end
111
111
 
112
112
  def send_sms(phone_from, phone_to, message)
113
- Request.new(card_args).send_data_for(:post, MOD, __method__.to_s) do |data|
113
+ Request.new(card_args).send_data_for(MOD, __method__.to_s) do |data|
114
114
  data.oper('cmt')
115
115
  data.wait('0')
116
116
  data.test('0')
@@ -5,121 +5,38 @@ module Privat24Api
5
5
 
6
6
  MOD = 'public'
7
7
 
8
- attr_reader :card_args
9
-
10
- def initialize(**card_args)
11
- @card_args = card_args
8
+ def exchange_cash(url_attr='?exchange&coursid=5')
9
+ request(__method__.to_s, url_attr)
12
10
  end
13
11
 
14
- # payment_id - order id of your shop
15
- def pay_on_privat_card(payment_id, card, amount, details, currency='UAH')
16
- Request.new(card_args).send_data_for(:get, MOD, __method__.to_s) do |data|
17
- data.oper('cmt')
18
- data.wait('0')
19
- data.test('0')
20
- data.payment(id: payment_id) do
21
- data.prop(name: 'b_card_or_acc', value: card)
22
- data.prop(name: 'amt', value: amount)
23
- data.prop(name: 'ccy', value: currency)
24
- data.prop(name: 'details', value: details)
25
- end
26
- end
12
+ def exchange_non_cash(url_attr='?exchange&coursid=11')
13
+ request(__method__.to_s, url_attr)
27
14
  end
28
15
 
29
- # payment_id - order id of your shop
30
- def pay_on_ua_card(payment_id, card, amount, b_name, b_crf, details, currency='UAH')
31
- Request.new(card_args).send_data_for(:post, MOD, __method__.to_s) do |data|
32
- data.oper('cmt')
33
- data.wait('0')
34
- data.test('0')
35
- data.payment(id: payment_id) do
36
- data.prop(name: 'b_card_or_acc', value: card)
37
- data.prop(name: 'amt', value: amount)
38
- data.prop(name: 'ccy', value: currency)
39
- data.prop(name: 'b_name', value: b_name)
40
- data.prop(name: 'b_crf', value: b_crf)
41
- data.prop(name: 'b_bic', value: b_bic)
42
- data.prop(name: 'details', value: details)
43
- end
44
- end
16
+ def exchange(url_attr='?exchange&coursid=3')
17
+ request(__method__.to_s, url_attr)
45
18
  end
46
19
 
47
- # payment_id - order id of your shop
48
- def pay_on_visa_card(payment_id, card, amount, b_name, b_crf, details, currency='UAH')
49
- Request.new(card_args).send_data_for(:post, MOD, __method__.to_s) do |data|
50
- data.oper('cmt')
51
- data.wait('30')
52
- data.test('0')
53
- data.payment(id: payment_id) do
54
- data.prop(name: 'b_card_or_acc', value: card)
55
- data.prop(name: 'amt', value: amount)
56
- data.prop(name: 'ccy', value: currency)
57
- data.prop(name: 'b_name', value: b_name)
58
- data.prop(name: 'details', value: details)
59
- end
60
- end
20
+ def exchange_archive(url_attr)
21
+ request(__method__.to_s, url_attr)
61
22
  end
62
23
 
63
- def check_status_pay(payment_id, card, amount, b_name, b_crf, details, currency='UAH')
64
- Request.new(card_args).send_data_for(:post, MOD, __method__.to_s) do |data|
65
- data.oper('cmt')
66
- data.wait('0')
67
- data.test('0')
68
- data.payment do
69
- data.prop(name: 'id', value: card)
70
- data.prop(name: 'ref', value: amount)
71
- end
72
- end
24
+ def list_privat_offices(url_attr=nil)
25
+ request(__method__.to_s, url_attr)
73
26
  end
74
27
 
75
- def pay_on_mobile(phone, amount)
76
- Request.new(card_args).send_data_for(:post, MOD, __method__.to_s) do |data|
77
- data.oper('cmt')
78
- data.wait('0')
79
- data.test('0')
80
- data.payment(id: '') do
81
- data.prop(name: 'phone', value: phone)
82
- data.prop(name: 'amt', value: amount)
83
- end
84
- end
28
+ def atm(url_attr='?atm')
29
+ request(__method__.to_s, url_attr)
85
30
  end
86
31
 
87
- def pay_on_mobile(*phones)
88
- Request.new(card_args).send_data_for(:post, MOD, __method__.to_s) do |data|
89
- data.oper('cmt')
90
- data.wait('0')
91
- data.test('0')
92
- phones.each_with_index do |phone, index|
93
- data.payment(id: index) do
94
- data.prop(name: 'phone', value: phone[:number])
95
- data.prop(name: 'amt', value: phone[:amount])
96
- end
97
- end
98
- end
32
+ def tso(url_attr='?tso')
33
+ request(__method__.to_s, url_attr)
99
34
  end
100
35
 
101
- def check_status_mobile(id)
102
- Request.new(card_args).send_data_for(:post, MOD, __method__.to_s) do |data|
103
- data.oper('cmt')
104
- data.wait('0')
105
- data.test('0')
106
- data.payment do
107
- data.prop(name: 'id', value: id)
108
- end
109
- end
110
- end
36
+ private
111
37
 
112
- def send_sms(phone_from, phone_to, message)
113
- Request.new(card_args).send_data_for(:post, MOD, __method__.to_s) do |data|
114
- data.oper('cmt')
115
- data.wait('0')
116
- data.test('0')
117
- data.payment(id: '') do
118
- data.prop(name: 'phone', value: phone_from)
119
- data.prop(name: 'phoneto', value: phone_to)
120
- data.prop(name: 'text', value: message)
121
- end
122
- end
38
+ def request(met, url_attr)
39
+ Request.new.get_public_data_for(MOD, met, url_attr)
123
40
  end
124
41
  end
125
42
  end
@@ -12,7 +12,7 @@ module Privat24Api
12
12
  @merchant_password = card_args[:merchant_password]
13
13
  end
14
14
 
15
- def send_data_for(type, mod, met, url_attr=nil)
15
+ def send_data_for(mod, met)
16
16
  builder = Nokogiri::XML::DocumentFragment.parse ""
17
17
  Nokogiri::XML::Builder.with(builder) do |xml|
18
18
  yield xml
@@ -20,22 +20,25 @@ module Privat24Api
20
20
 
21
21
  @data_value = builder.to_xml
22
22
 
23
- Response.new( send(type, mod, met, url_attr) )
23
+ Response.new(
24
+ RestClient.post(default_url(mod, met), unescape_xml(make_xml), {content_type: 'text/xml'}).body
25
+ )
24
26
  end
25
27
 
26
- private
27
-
28
- def send(type, mod, met, url_attr)
29
- url = url_attr ? make_url(url_attr) : default_url(mod, met)
30
- RestClient.method(type).call(url, unescape_xml(make_xml), {content_type: 'text/xml'}).body
28
+ def get_public_data_for(mod, met, url_attr=nil)
29
+ Response.new(
30
+ RestClient.get(make_url(mod, met, url_attr), {content_type: 'application/x-www-form-urlencoded'}).body
31
+ )
31
32
  end
32
33
 
34
+ private
35
+
33
36
  def default_url(mod, met)
34
- "#{Privat24Api.base_url}#{Privat24Api.end_points[mod][met]}"
37
+ URI::encode("#{Privat24Api.base_url}#{Privat24Api.end_points[mod][met]}")
35
38
  end
36
39
 
37
- def make_url(url_attr)
38
- "#{Privat24Api.base_url}#{Privat24Api.end_points[mod][met] << url_attr}"
40
+ def make_url(mod, met, url_attr)
41
+ URI::encode(default_url(mod, met) << url_attr.to_s)
39
42
  end
40
43
 
41
44
  def unescape_xml(xml)
@@ -1,3 +1,3 @@
1
1
  module Privat24Api
2
- VERSION = "0.3.0"
2
+ VERSION = "0.4.1"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: privat24_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - woodcrust