tappay 0.5.1 → 1.0.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,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3aec1ab7717bd91767c0795f5eaa38a626443a76
4
- data.tar.gz: 7df14fc88c1ba615910935229add7d09f2919a27
3
+ metadata.gz: dbea2463bcce294e9cd5c09df6f2ad4c68616bde
4
+ data.tar.gz: 7940b43a0be475f917dbee009fe64a5ae6741224
5
5
  SHA512:
6
- metadata.gz: 05f4d338a3f9dad54b960c85159f4273133757f8897cf0416679970fb37eaae2e1b815a9709c8b89057b8b08b24658a39efcc4d870ec92f16eb1df53db046f48
7
- data.tar.gz: ae2a99e689958d7712749b9da4f8ec5fd9cc4e36ce1955e7bb0b449539b3bea745498fd55038c225f10bd143fad003e5585ac5c3f3858abeda3bf837008b1bb4
6
+ metadata.gz: e9607512bffdc66755bff9993b89b3f59655315ade0e5af4fb7f09e7ed5c96fe606ba43fb81c3d68480b1b557c79fd2dee573658b547f1317589008fa1d681c9
7
+ data.tar.gz: 571ead5ac836480ad7dafe7ad515d42aa3ec45b579bfd570ce21213d4661ddeec2a69feacb07fd577ae8cdd4440459865bae07390684e5da256f6a04547afd96
data/README.md CHANGED
@@ -27,7 +27,7 @@ See [TapPay Backend API](https://docs.tappaysdk.com/tutorial/zh/back.html#back).
27
27
  ## Usage
28
28
 
29
29
  You need to setup mode which affects requests sent to sandbox or production server.
30
- The partner_key and merchant_id are optional, thay could also be specified in request params.
30
+ The partner_key and merchant_id are optional, they could also be specified in request params.
31
31
 
32
32
  ```ruby
33
33
  # sandbox or production
@@ -98,6 +98,50 @@ TapPay.refund(params) do |res|
98
98
  res
99
99
  end
100
100
  ```
101
+
102
+ ### Card
103
+ ```ruby
104
+ # bind
105
+ params = {
106
+ currency: 'TWD',
107
+ cardholder: {
108
+ phone_number: "+886923456789",
109
+ name: "Jane Doe",
110
+ email: "Jane@Doe.com",
111
+ zip_code: "12345",
112
+ address: "123 1st Avenue, City, Country",
113
+ national_id: "A123456789"
114
+ }
115
+ }
116
+
117
+ TapPay::Card.bind(params) do |res|
118
+ res
119
+ end
120
+
121
+ # remove
122
+ params = {
123
+ card_key: "your_card_key",
124
+ card_token: "your_card_token"
125
+ }
126
+
127
+ TapPay::Card.remove(params) do |res|
128
+ res
129
+ end
130
+ ```
131
+
132
+ ### Transaction
133
+ ```ruby
134
+ # cap
135
+ TapPay::Transaction.cap(params) do |res|
136
+ res
137
+ end
138
+
139
+ # trade-history
140
+ TapPay::Transaction.trade_history(params) do |res|
141
+ res
142
+ end
143
+ ```
144
+
101
145
  ## License
102
146
 
103
147
  The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
@@ -1,73 +1,66 @@
1
+ require 'forwardable'
1
2
  require "tappay/version"
2
3
 
3
4
  require 'tappay/request'
4
- require 'tappay/api_resource'
5
- require 'tappay/pay_by_prime'
6
- require 'tappay/pay_by_token'
7
- require 'tappay/refund'
5
+ require 'tappay/api_resources'
6
+ require 'tappay/card'
7
+ require 'tappay/payment'
8
+ require 'tappay/transaction'
8
9
 
9
10
  module TapPay
10
- @@mode = :sandbox
11
- @@app_id = ''
12
- @@app_key = ''
13
- @@partner_key = ''
14
- @@merchant_id = ''
11
+ @mode = :sandbox
12
+ @app_id = ''
13
+ @app_key = ''
14
+ @partner_key = ''
15
+ @merchant_id = ''
15
16
 
16
17
  class << self
18
+ extend Forwardable
19
+ def_delegators TapPay::Payment, :pay_by_prime, :pay_by_token
20
+ def_delegators TapPay::Transaction, :refund
21
+
17
22
  def setup
18
23
  yield(self)
19
24
  end
20
25
 
21
26
  def mode=(mode)
22
- @@mode = mode
27
+ @mode = mode
23
28
  end
24
29
 
25
30
  def partner_key=(partner_key)
26
- @@partner_key = partner_key.to_s
31
+ @partner_key = partner_key.to_s
27
32
  end
28
33
 
29
34
  def merchant_id=(merchant_id)
30
- @@merchant_id = merchant_id.to_s
35
+ @merchant_id = merchant_id.to_s
31
36
  end
32
37
 
33
38
  def app_id=(app_id)
34
- @@app_id = app_id
39
+ @app_id = app_id
35
40
  end
36
41
 
37
42
  def app_key=(app_key)
38
- @@app_key = app_key
43
+ @app_key = app_key
39
44
  end
40
45
 
41
46
  def mode
42
- @@mode
47
+ @mode
43
48
  end
44
49
 
45
50
  def partner_key
46
- @@partner_key
51
+ @partner_key
47
52
  end
48
53
 
49
54
  def merchant_id
50
- @@merchant_id
55
+ @merchant_id
51
56
  end
52
57
 
53
58
  def app_id
54
- @@app_id
59
+ @app_id
55
60
  end
56
61
 
57
62
  def app_key
58
- @@app_key
59
- end
60
-
61
- def pay_by_prime(payload, &block)
62
- TapPay::PayByPrime.call(payload, &block)
63
- end
64
-
65
- def pay_by_token(payload, &block)
66
- TapPay::PayByToken.call(payload, &block)
67
- end
68
-
69
- def refund(payload, &block)
70
- TapPay::Refund.call(payload, &block)
63
+ @app_key
71
64
  end
72
65
  end
73
66
  end
@@ -0,0 +1,44 @@
1
+ module TapPay
2
+ module APIResources
3
+ CARD = [
4
+ 'bind'.freeze,
5
+ 'remove'.freeze
6
+ ]
7
+
8
+ PAYMENT = [
9
+ 'pay_by_prime'.freeze,
10
+ 'pay_by_token'.freeze
11
+ ]
12
+
13
+ TRANSACTION = [
14
+ 'cap'.freeze,
15
+ 'query'.freeze,
16
+ 'refund'.freeze,
17
+ 'trade_history'.freeze
18
+ ]
19
+
20
+ def base_url
21
+ if TapPay.mode == :production
22
+ 'https://prod.tappaysdk.com'.freeze
23
+ else
24
+ 'https://sandbox.tappaysdk.com'.freeze
25
+ end
26
+ end
27
+
28
+ def class_name
29
+ self.name.split("::")[-1]
30
+ end
31
+
32
+ def resource_url(resource_name)
33
+ "#{base_url}/tpc/#{class_name.downcase}/#{resource_name.gsub('_', '-')}"
34
+ end
35
+
36
+ def generate_resources
37
+ TapPay::APIResources.const_get(class_name.upcase).each do |resource|
38
+ define_singleton_method(resource) do |params, &block|
39
+ TapPay::Request.post(resource_url(resource), params, &block)
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,7 @@
1
+ module TapPay
2
+ class Card
3
+ extend TapPay::APIResources
4
+
5
+ generate_resources
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ module TapPay
2
+ class Payment
3
+ extend TapPay::APIResources
4
+
5
+ generate_resources
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ module TapPay
2
+ class Transaction
3
+ extend TapPay::APIResources
4
+
5
+ generate_resources
6
+ end
7
+ end
@@ -1,3 +1,3 @@
1
1
  module TapPay
2
- VERSION = "0.5.1"
2
+ VERSION = "1.0.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tappay
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - HzChris
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-01-30 00:00:00.000000000 Z
11
+ date: 2018-06-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -84,11 +84,11 @@ files:
84
84
  - bin/console
85
85
  - bin/setup
86
86
  - lib/tappay.rb
87
- - lib/tappay/api_resource.rb
88
- - lib/tappay/pay_by_prime.rb
89
- - lib/tappay/pay_by_token.rb
90
- - lib/tappay/refund.rb
87
+ - lib/tappay/api_resources.rb
88
+ - lib/tappay/card.rb
89
+ - lib/tappay/payment.rb
91
90
  - lib/tappay/request.rb
91
+ - lib/tappay/transaction.rb
92
92
  - lib/tappay/version.rb
93
93
  - tappay.gemspec
94
94
  homepage: https://github.com/hzchirs/tappay-ruby
@@ -1,23 +0,0 @@
1
- module TapPay
2
- module APIResource
3
- def self.base_url
4
- if TapPay.mode == :production
5
- 'https://prod.tappaysdk.com'
6
- else
7
- 'https://sandbox.tappaysdk.com'
8
- end
9
- end
10
-
11
- def self.pay_by_prime_url
12
- "#{base_url}/tpc/payment/pay-by-prime"
13
- end
14
-
15
- def self.pay_by_token_url
16
- "#{base_url}/tpc/payment/pay-by-token"
17
- end
18
-
19
- def self.refund_url
20
- "#{base_url}/tpc/transaction/refund"
21
- end
22
- end
23
- end
@@ -1,7 +0,0 @@
1
- module TapPay
2
- class PayByPrime
3
- def self.call(params = {}, &block)
4
- TapPay::Request.post(TapPay::APIResource.pay_by_prime_url, params, &block)
5
- end
6
- end
7
- end
@@ -1,7 +0,0 @@
1
- module TapPay
2
- class PayByToken
3
- def self.call(params = {}, &block)
4
- TapPay::Request.post(TapPay::APIResource.pay_by_token_url, params, &block)
5
- end
6
- end
7
- end
@@ -1,7 +0,0 @@
1
- module TapPay
2
- class Refund
3
- def self.call(params = {}, &block)
4
- TapPay::Request.post(TapPay::APIResource.refund_url, params, &block)
5
- end
6
- end
7
- end