assist-ruby-sdk 0.1.1 → 0.2.0

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,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- MWJjZDNmYThjNTYwOGUzY2M2NzU3ZDIwY2ZmMjI2MDZlOTIzOTkyMw==
5
- data.tar.gz: !binary |-
6
- NDFjNGNkMGNjY2FhNzZkOWNkZTc3Zjk1NmZmYjZjNmIzYWRlYjMwZg==
2
+ SHA1:
3
+ metadata.gz: 6af43a889ea408444610358d9ad2cf24444fcabd
4
+ data.tar.gz: 50e7f7db96d1c542a780f308ed41f0e7392404a7
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- YmNkMGY0M2UwZTZkMTRkZGEyMGEzMTMxMDc0ZTYxYjcyODM5MzgyZTdjNTRj
10
- OTM4YjMxMWY4ZDgxYWYxMjY2MzE5NDg2OTU4NTg4NWMyNWJhYTQzN2RmMGI3
11
- NTQxMjNhODdiNDU5MDIxOTc1ZjliNThmYTM2NDEzYTI5MGQ1YWU=
12
- data.tar.gz: !binary |-
13
- MjM2NjVlNWJiMDA1N2U4Njg4MmMxY2I5ZTI2YmU3ZmVkNDFjMjM3MDBhM2M0
14
- NzkyMzgzYjVlNDg5ZDkxN2FkYWIyY2IxNDViM2E3OWE1Y2FlZDg0YTgwYjA2
15
- MDdlYjY0ZGMxZTIyMzEyODU5YzUyZWE5NzExNGQyMjY0NzU0MGM=
6
+ metadata.gz: 0d5c68068aa5a46d7ff0372c36fd73ccf115c68c1bf479b9a35616670acf41d2d50aa8f31086a3d8be7ebbca2a3ef5dc5d66b6212f73a302c5fdecd397500721
7
+ data.tar.gz: c75bc7f1e4fb0da329dcc9674a9159f8202e170500a01958c9c19cac6821f66253ac0886b6953fe8adc827f496cb61372e493ff0b10da7638639f120d1d7e761
data/README.md CHANGED
@@ -120,8 +120,7 @@ See "Receiving status by order number" and "OrderState field values" in the docu
120
120
  ### Canceling payment
121
121
 
122
122
  ```ruby
123
- # `billnumber` - number of payment in Assist
124
- billnumber = "5775486652369300"
123
+ billnumber = "5775486652369300" # number of payment in Assist
125
124
  result = Assist.cancel_order(billnumber)
126
125
 
127
126
  # with additional parameters
@@ -132,15 +131,37 @@ result = Assist.cancel_order(billnumber, extra_params)
132
131
  result.request_params # => {merchant_id: '111111', login: 'login',
133
132
  # password: 'password', ...}
134
133
 
135
- # response
134
+ # response parameters
136
135
  result.result # => {:ordernumber=>"999", :responsecode=>"AS000",
137
- # :recommendation=>nil, :orderdate=>"28.09.2016 23:31:00",
136
+ # :orderstate=>"Canceled", :orderdate=>"28.09.2016 23:31:00",
138
137
  # :amount=>"111.00", :currency=>"RUB", :billnumber=>"5775486652369300",
139
138
  # ...
140
139
  # }
141
140
 
142
141
  # raw http response returned from Assist server (in XML format)
143
- order_status.original_response # => #<Net::HTTPOK 200 OK readbody=true>
142
+ result.original_response # => #<Net::HTTPOK 200 OK readbody=true>
143
+ ```
144
+
145
+ ### Delayed (double-stage) payment
146
+
147
+ When the double-stage operation mode is used the customer's account is withdrawn
148
+ only after the payment has been confirmed by the merchant. In order to use this mode you need to send the parameter Delay=1 in the authorization request.
149
+
150
+ ```ruby
151
+ # authorization url
152
+ url = Assist.payment_url(order_number, order_amount, delay: 1)
153
+
154
+ # Confirm order
155
+ billnumber = "5775486652369300" # number of payment in Assist
156
+ extra_params = {} # additional parameters
157
+ result = Assist.confirm_order(billnumber, extra_params)
158
+
159
+ # response parameters
160
+ result.result # => {:ordernumber=>"999", :responsecode=>"AS000",
161
+ # :orderstate=>"Approved", :orderdate=>"28.09.2016 23:31:00",
162
+ # :amount=>"111.00", :currency=>"RUB", :billnumber=>"5775486652369300",
163
+ # ...
164
+ # }
144
165
  ```
145
166
 
146
167
  ## API Errors
@@ -1,14 +1,19 @@
1
1
  require 'assist/web_services/order_status'
2
2
  require 'assist/web_services/cancel_order'
3
+ require 'assist/web_services/confirm_order'
3
4
 
4
5
  module Assist
5
6
  module ApiMethods
6
7
  def order_status(*args)
7
- WebServices::OrderStatus.new(*args)
8
+ WebServices::OrderStatus.new(*args).perform
8
9
  end
9
10
 
10
11
  def cancel_order(*args)
11
- WebServices::CancelOrder.new(*args)
12
+ WebServices::CancelOrder.new(*args).perform
13
+ end
14
+
15
+ def confirm_order(*args)
16
+ WebServices::ConfirmOrder.new(*args).perform
12
17
  end
13
18
  end
14
19
  end
@@ -12,7 +12,7 @@ module Assist
12
12
  PERMITTED_EXTRA_PARAMS = %w(
13
13
  OrderCurrency Language OrderComment Lastname Firstname Middlename
14
14
  Email Address HomePhone WorkPhone MobilePhone Fax Country State City
15
- Zip MobileDevice URL_RETURN URL_RETURN_OK URL_RETURN_NO
15
+ Zip MobileDevice Delay URL_RETURN URL_RETURN_OK URL_RETURN_NO
16
16
  CardPayment YMPayment WMPayment QIWIPayment
17
17
  QIWIMtsPayment QIWIMegafonPayment QIWIBeelinePayment QIWITele2Payment
18
18
  ).map(&normalize_block).freeze
@@ -50,11 +50,13 @@ module Assist
50
50
 
51
51
  def default_params
52
52
  attrs = {merchant_id: Assist.config.merchant_id}
53
+
53
54
  {
54
55
  return_url: :url_return,
55
56
  success_url: :url_return_ok,
56
57
  fail_url: :url_return_no
57
- }.each do |key, value|
58
+ }
59
+ .each do |key, value|
58
60
  attrs[value] = Assist.config[key] if Assist.config[key]
59
61
  end
60
62
 
@@ -1,3 +1,3 @@
1
1
  module Assist
2
- VERSION = "0.1.1"
2
+ VERSION = "0.2.0"
3
3
  end
@@ -16,6 +16,11 @@ module Assist
16
16
  @params = default_params.merge(extra_params)
17
17
  end
18
18
 
19
+ def perform
20
+ response
21
+ self
22
+ end
23
+
19
24
  def result
20
25
  @result ||= parse_result
21
26
  end
@@ -0,0 +1,25 @@
1
+ require 'assist/web_services/base'
2
+
3
+ module Assist
4
+ module WebServices
5
+ class ConfirmOrder < Base
6
+ SERVICE_PATH = "/charge/charge.cfm".freeze
7
+
8
+ PERMITTED_EXTRA_PARAMS = %w(
9
+ Amount Currency Language ClientIP
10
+ ).map(&normalize_block).freeze
11
+
12
+ def initialize(billnumber, extra_params = {})
13
+ super(extra_params)
14
+ @params[:billnumber] = billnumber
15
+ end
16
+
17
+ private
18
+
19
+ def parse_result
20
+ last_result = response_xml.elements.each("result/orders/order") {}.last
21
+ Hash[last_result.elements.map { |e| [normalize(e.name), e.text] }]
22
+ end
23
+ end
24
+ end
25
+ end
metadata CHANGED
@@ -1,69 +1,69 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: assist-ruby-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anton Chumakov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-10-03 00:00:00.000000000 Z
11
+ date: 2016-10-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.12'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.12'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
33
  version: '10.0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ~>
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '10.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ~>
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
47
  version: '3.0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ~>
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: webmock
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ~>
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
61
  version: '2.1'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ~>
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '2.1'
69
69
  description: The Assist Ruby SDK provides Ruby APIs to create, process and manage
@@ -76,9 +76,9 @@ executables:
76
76
  extensions: []
77
77
  extra_rdoc_files: []
78
78
  files:
79
- - .gitignore
80
- - .rspec
81
- - .travis.yml
79
+ - ".gitignore"
80
+ - ".rspec"
81
+ - ".travis.yml"
82
82
  - CODE_OF_CONDUCT.md
83
83
  - Gemfile
84
84
  - LICENSE.txt
@@ -99,6 +99,7 @@ files:
99
99
  - lib/assist/version.rb
100
100
  - lib/assist/web_services/base.rb
101
101
  - lib/assist/web_services/cancel_order.rb
102
+ - lib/assist/web_services/confirm_order.rb
102
103
  - lib/assist/web_services/order_status.rb
103
104
  homepage: https://github.com/chumakoff/assist-ecommerce-sdk-ruby
104
105
  licenses:
@@ -110,18 +111,19 @@ require_paths:
110
111
  - lib
111
112
  required_ruby_version: !ruby/object:Gem::Requirement
112
113
  requirements:
113
- - - ! '>='
114
+ - - ">="
114
115
  - !ruby/object:Gem::Version
115
116
  version: '0'
116
117
  required_rubygems_version: !ruby/object:Gem::Requirement
117
118
  requirements:
118
- - - ! '>='
119
+ - - ">="
119
120
  - !ruby/object:Gem::Version
120
121
  version: '0'
121
122
  requirements: []
122
123
  rubyforge_project:
123
- rubygems_version: 2.4.3
124
+ rubygems_version: 2.4.6
124
125
  signing_key:
125
126
  specification_version: 4
126
127
  summary: Assist Online Payment System SDK for Ruby.
127
128
  test_files: []
129
+ has_rdoc: