paygate-ruby 0.1.2 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 65cf37be0b80974b5bbfea30323cac9a49700b5b019ce61d0c169a0566ca04f0
4
- data.tar.gz: 37865beecc0da514d9c104197af2dcebf6fc85d14b76eed79a68cfb583f1b6ca
3
+ metadata.gz: 53e3be330ee7a0ab9a06e1e1286d594093eb5b06c7d8f9231e4b8c7d1ac0295f
4
+ data.tar.gz: d6200b5886faa14d0248505f9e0b769d4fd5ce92eb43fd253f24a2850f266c71
5
5
  SHA512:
6
- metadata.gz: b3ba8427bdd1e06a0c411ce0cb21d9cd40086402a356a3e488f0c9c2ce34e1476d956fd7ab47807f4a25cc41a1705f71114f9ad762a18268ffd9314ff9438cbf
7
- data.tar.gz: c32240809e74a7c6e5ff98c7b897f8366101ce9a82699451d8bbe5f669366d1d5659dde478bf956c66d29c2b2199152fcc35a1c435e589986d523070c717e1da
6
+ metadata.gz: b142a69391e643ef31a1217a4cb154325d2da83c2fd971aefbd94623d76b09af99e771e047f88f22e51b5b3e69c69d233a724eb3d722c04b1208c1b3dec4638f
7
+ data.tar.gz: 4535297d8c9bfac45e4b04f097a430dabdad7a7672063a5adf554dc242050dbf45fea6da905dbf63ce33cdef409fd81e27352f3aa77e3d54245589488dcf76bc
data/CHANGELOG.md CHANGED
@@ -1,16 +1,20 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 0.1.4 - 2018-04-20
4
+
5
+ - [PR#3](https://github.com/jagdeepsingh/paygate-ruby/pull/3) Make `Paygate` configurable with the help of a block. ([jagdeepsingh](https://github.com/jagdeepsingh))
6
+
3
7
  ## 0.1.2 - 2018-03-16
4
8
 
5
- - Fix Bug - Pass correct value of _amount_ for full refund of a transaction.
9
+ - Fix Bug - Pass correct value of _amount_ for full refund of a transaction. ([jagdeepsingh](https://github.com/jagdeepsingh))
6
10
 
7
11
  ## 0.1.1 - 2018-03-09
8
12
 
9
- - Add raw info to the response of refund transaction.
13
+ - [PR#1](https://github.com/jagdeepsingh/paygate-ruby/pull/1) Add raw info to the response of refund transaction. ([jagdeepsingh](https://github.com/jagdeepsingh))
10
14
 
11
15
  ## 0.1.0 - 2017-11-29
12
16
 
13
- - Add view helper for rendering OpenPayAPI payment form with default values.
14
- - Add Javascript helpers for accessing OpenPayAPI payment form and payment screen.
15
- - Support full refund of a transaction using CancelAPI.
16
- - Support future payments (Profile Pay) for existing customers.
17
+ - Add view helper for rendering OpenPayAPI payment form with default values. ([jagdeepsingh](https://github.com/jagdeepsingh))
18
+ - Add Javascript helpers for accessing OpenPayAPI payment form and payment screen. ([jagdeepsingh](https://github.com/jagdeepsingh))
19
+ - Support full refund of a transaction using CancelAPI. ([jagdeepsingh](https://github.com/jagdeepsingh))
20
+ - Support future payments (Profile Pay) for existing customers. ([jagdeepsingh](https://github.com/jagdeepsingh))
data/README.md CHANGED
@@ -18,6 +18,18 @@ Or install it yourself as:
18
18
 
19
19
  $ gem install paygate-ruby
20
20
 
21
+ ## Configuration
22
+
23
+ You can pass a block to the `configure` method to make changes to the `Paygate` configuration.
24
+
25
+ ```ruby
26
+ Paygate.configure do |config|
27
+ config.mode = :sandbox
28
+ end
29
+ ```
30
+
31
+ Default value for `mode` is `:live`. It uses different API urls in different modes for making payments.
32
+
21
33
  ## Usage
22
34
 
23
35
  To start making the transactions on PayGate, you will need a Member ID and a Secret, for which you can register [here](https://admin.paygate.net/front/regist/registMember.jsp?lang=us).
@@ -246,10 +258,12 @@ Apart from these it also responds to `message` and `body`.
246
258
 
247
259
  #### 2.2 Partial refund
248
260
 
249
- For partial refunds, pass `amount` as an option to `refund_transaction` method:
261
+ For partial refunds, you need to pass `amount` as an option to `refund_transaction` method along with other options.
250
262
 
251
263
  ```ruby
252
- response = member.refund_transaction('testmid_123456.654321', amount: 1000)
264
+ response = member.refund_transaction('testmid_123456.654321',
265
+ amount: 1000,
266
+ order_id: 'ord10001')
253
267
  ```
254
268
 
255
269
  ### 3 Profile Pay
data/lib/paygate-ruby.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require "paygate/version"
2
2
 
3
+ require 'paygate/configuration'
3
4
  require 'paygate/aes'
4
5
  require 'paygate/aes_ctr'
5
6
 
@@ -32,4 +33,16 @@ module Paygate
32
33
  locale.present? ? LOCALES_MAP[locale.to_s] : DEFAULT_LOCALE
33
34
  end
34
35
  module_function :mapped_locale
36
+
37
+ class << self
38
+ attr_writer :configuration
39
+ end
40
+
41
+ def self.configuration
42
+ @configuration ||= Configuration.new
43
+ end
44
+
45
+ def self.configure
46
+ yield configuration
47
+ end
35
48
  end
@@ -0,0 +1,16 @@
1
+ module Paygate
2
+ class Configuration
3
+ MODES = %i(live sandbox).freeze
4
+
5
+ attr_reader :mode
6
+
7
+ def initialize
8
+ @mode = :live
9
+ end
10
+
11
+ def mode=(value)
12
+ fail 'Invalid mode. Value must be one of the following: :live, :sandbox' unless value && MODES.include?(value.to_sym)
13
+ @mode = value.to_sym
14
+ end
15
+ end
16
+ end
@@ -1,7 +1,9 @@
1
1
  module Paygate
2
2
  module FormHelper
3
3
  def paygate_open_pay_api_js_url
4
- 'https://api.paygate.net/ajax/common/OpenPayAPI.js'.freeze
4
+ (Paygate.configuration.mode == :live) ?
5
+ 'https://api.paygate.net/ajax/common/OpenPayAPI.js'.freeze :
6
+ 'https://stgapi.paygate.net/ajax/common/OpenPayAPI.js'.freeze
5
7
  end
6
8
 
7
9
  def paygate_open_pay_api_form(options = {})
@@ -4,7 +4,6 @@ require 'net/http'
4
4
 
5
5
  module Paygate
6
6
  class Transaction
7
- REFUND_API_URL = 'https://service.paygate.net/service/cancelAPI.json'.freeze
8
7
  FULL_AMOUNT_IDENTIFIER = 'F'.freeze
9
8
 
10
9
  attr_reader :tid
@@ -24,10 +23,11 @@ module Paygate
24
23
  params = { callback: 'callback', mid: member.mid, tid: tid_enc }
25
24
  params.merge!(options.slice(:amount))
26
25
  params[:amount] ||= FULL_AMOUNT_IDENTIFIER
26
+ params[:mb_serial_no] = options[:order_id]
27
27
  params.delete_if { |_, v| v.blank? }
28
28
 
29
29
  # Make request
30
- uri = URI(REFUND_API_URL)
30
+ uri = URI(self.class.refund_api_url)
31
31
  uri.query = ::URI.encode_www_form(params)
32
32
  response = ::Net::HTTP.get_response(uri)
33
33
 
@@ -35,5 +35,13 @@ module Paygate
35
35
  r.raw_info = OpenStruct.new(tid: tid, tid_enc: tid_enc, request_url: uri.to_s)
36
36
  r
37
37
  end
38
+
39
+ private
40
+
41
+ def self.refund_api_url
42
+ (Paygate.configuration.mode == :live) ?
43
+ 'https://service.paygate.net/service/cancelAPI.json' :
44
+ 'https://stgsvc.paygate.net/service/cancelAPI.json'
45
+ end
38
46
  end
39
47
  end
@@ -1,3 +1,3 @@
1
1
  module Paygate
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.4"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: paygate-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - jagdeepsingh
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-03-16 00:00:00.000000000 Z
11
+ date: 2018-04-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -58,6 +58,7 @@ files:
58
58
  - lib/paygate-ruby.rb
59
59
  - lib/paygate/aes.rb
60
60
  - lib/paygate/aes_ctr.rb
61
+ - lib/paygate/configuration.rb
61
62
  - lib/paygate/helpers/form_helper.rb
62
63
  - lib/paygate/member.rb
63
64
  - lib/paygate/profile.rb