paygate-ruby 0.1.2 → 0.1.4

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: 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