pin-ruby 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +162 -6
- data/lib/pin/api/customers.rb +2 -2
- data/lib/pin/api/refunds.rb +2 -2
- data/lib/pin/api/tokens.rb +1 -1
- data/lib/pin/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 01730b41395bb4905a13620dd2e88fa0f1a303f6
|
4
|
+
data.tar.gz: 9e61e9bdbc7a6814003645521e28efd4c301c40b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 643cb647fbaf356ee77ee02794a5e4a4e0c3be65bec0b8ba20b84fc1aa2356e56d706a4aceb9d88f91813594c6cb8216406ff0e2639eb8b67c5a2f3c24de1107
|
7
|
+
data.tar.gz: cfe17f44af91a1b1c36462eeff55632eac04c09a8195c153c03d36b4e9732188ff9485ccb2b4de1c47d17d71d62c888a9f2b45092eaa0f77daae8c382b87b0ae
|
data/README.md
CHANGED
@@ -1,8 +1,6 @@
|
|
1
|
-
# Pin::Ruby
|
2
|
-
|
3
1
|
A Ruby library for interacting with v1 of the [Pin Payments API](https://pin.net.au/docs/api).
|
4
2
|
|
5
|
-
|
3
|
+
# Installation
|
6
4
|
|
7
5
|
Add this line to your application's Gemfile:
|
8
6
|
|
@@ -45,11 +43,169 @@ When using the Pin library in a non-rails application, you must configure it to
|
|
45
43
|
config.endpoint = 'api.pin.net.au'
|
46
44
|
end
|
47
45
|
|
48
|
-
|
46
|
+
# Usage
|
47
|
+
|
48
|
+
require 'pin/api'
|
49
|
+
|
50
|
+
client = Pin::API::Client.new()
|
51
|
+
|
52
|
+
## Charges
|
53
|
+
|
54
|
+
### List Charges
|
55
|
+
|
56
|
+
Return a paginated list of `Pin::Models::Charge` objects:
|
57
|
+
|
58
|
+
client.charges()
|
59
|
+
|
60
|
+
Optionally pass the `page` parameter to specify a different page of results:
|
61
|
+
|
62
|
+
client.charges(2)
|
63
|
+
|
64
|
+
Will get the second page of charges.
|
65
|
+
|
66
|
+
### Fetch Charge
|
67
|
+
|
68
|
+
Get a specific customer by their token:
|
69
|
+
|
70
|
+
client.charge('ch_1234')
|
71
|
+
|
72
|
+
Returns a `Pin::Models::Charge` object, or raises a `Pin::Error`:
|
73
|
+
|
74
|
+
HTTP Error 404: not_found
|
75
|
+
|
76
|
+
### Search charges
|
77
|
+
|
78
|
+
Search for charges by description, amount and date, as per [Pin's Documentation](https://pin.net.au/docs/api/charges#search-charges):
|
79
|
+
|
80
|
+
client.charge_search({:query => 'Test Transaction'})
|
81
|
+
|
82
|
+
Returns a paginated list of `Pin::Models::Charges`.
|
83
|
+
|
84
|
+
### Create Charge
|
85
|
+
|
86
|
+
Charges a customer or card, and returns the newly created charge object:
|
87
|
+
|
88
|
+
client.create_charge('me@some.net', 'Test Transaction', '1295', 'AUD', request.remote_ip, 'cus_1234')
|
89
|
+
|
90
|
+
The last parameter (`token_or_card`) can be either a customer token, a card token or a card hash.
|
91
|
+
|
92
|
+
Returns a `Pin::Models::Charge` of the charge, or a `Pin::Error`, as per [Pin's Documentation](https://pin.net.au/docs/api/charges#post-charges).
|
93
|
+
|
94
|
+
## Customers
|
95
|
+
|
96
|
+
### List Customers
|
97
|
+
|
98
|
+
Return a paginated list of `Pin::Models::Customer` objects:
|
99
|
+
|
100
|
+
client.customers()
|
101
|
+
|
102
|
+
Optionally pass the `page` parameter to specify a different page of results:
|
103
|
+
|
104
|
+
client.customers(2)
|
105
|
+
|
106
|
+
Will get the second page of customers.
|
107
|
+
|
108
|
+
### Fetch customer
|
109
|
+
|
110
|
+
Get a specific customer by their token:
|
111
|
+
|
112
|
+
client.customer('cus_1234')
|
113
|
+
|
114
|
+
Returns a `Pin::Models::Customer` object, or raises a `Pin::Error`:
|
115
|
+
|
116
|
+
HTTP Error 404: not_found
|
117
|
+
|
118
|
+
### Customer's charges
|
119
|
+
|
120
|
+
Gets a paginated list of charges against a customer:
|
121
|
+
|
122
|
+
client.customer_charges('cus_1234')
|
123
|
+
|
124
|
+
Optionally pass a second parameter `page` to specify a different page of results:
|
125
|
+
|
126
|
+
client.customer_charges('cus_1234', 2)
|
127
|
+
|
128
|
+
Returns a list of `Pin::Models::Charge` object, or raises a `Pin::Error`:
|
129
|
+
|
130
|
+
HTTP Error 404: not_found
|
131
|
+
|
132
|
+
### Create Customer
|
133
|
+
|
134
|
+
Create a new customer with either an existing card token, or a hash of card details):
|
135
|
+
|
136
|
+
client.create_customer('me@some.net', 'card_1234')
|
137
|
+
|
138
|
+
or
|
139
|
+
|
140
|
+
client.create_customer('me@some.net', {:number => '5520000000000000', ... })
|
141
|
+
|
142
|
+
Card hash should be supplied as per [Pin's documentation](https://pin.net.au/docs/api/cards):
|
143
|
+
|
144
|
+
{
|
145
|
+
"token": "card_nytGw7koRg23EEp9NTmz9w",
|
146
|
+
"display_number": "XXXX-XXXX-XXXX-0000",
|
147
|
+
"scheme": "master",
|
148
|
+
"address_line1": "42 Sevenoaks St",
|
149
|
+
"address_line2": null,
|
150
|
+
"address_city": "Lathlain",
|
151
|
+
"address_postcode": "6454",
|
152
|
+
"address_state": "WA",
|
153
|
+
"address_country": "Australia"
|
154
|
+
}
|
155
|
+
|
156
|
+
Returns the newly created customer as a `Pin::Models::Customer` object.
|
157
|
+
|
158
|
+
### Update customer
|
159
|
+
|
160
|
+
Update's a customer's card and/or email address:
|
161
|
+
|
162
|
+
client.update_customer('cus_1234', {:email => 'new@some.net', :card => {:number => '5520000000000000', ... } })
|
163
|
+
|
164
|
+
Returns the updated customer as a `Pin::Models::Customer` object.
|
165
|
+
|
166
|
+
## Refunds
|
167
|
+
|
168
|
+
### List Refunds
|
169
|
+
|
170
|
+
Return a paginated list of `Pin::Models::Refund` objects for the specified charge token:
|
171
|
+
|
172
|
+
client.refunds('ch_1234')
|
173
|
+
|
174
|
+
Optionally pass the `page` parameter to specify a different page of results:
|
175
|
+
|
176
|
+
client.refunds('ch_1234', 2)
|
177
|
+
|
178
|
+
Will get the second page of refunds for the specified charge.
|
179
|
+
|
180
|
+
### Refund a charge
|
181
|
+
|
182
|
+
Refunds the specified amount against an existing charge, and returns the refund object created, or a `Pin::Error`:
|
183
|
+
|
184
|
+
client.create_refund('ch_1234')
|
185
|
+
|
186
|
+
By default `create_refund` refunds the full amount of the original charge. To specify a different amount, pass the amount as cents to the optional second parameter:
|
187
|
+
|
188
|
+
client.create_refund('ch_1234', '1000')
|
189
|
+
|
190
|
+
Returns the refund object created, or a `Pin::Error`.
|
191
|
+
|
192
|
+
## Tokens
|
193
|
+
|
194
|
+
### Create a token for a card
|
195
|
+
|
196
|
+
Takes a card and stores it returning a reusable token for charges.
|
197
|
+
|
198
|
+
client.create_token('5520000000000000', '01', '2015', '123', 'John Appleseed', {
|
199
|
+
:line1 => '1 Main Street',
|
200
|
+
:city => 'Melbourne',
|
201
|
+
:postcode => '3000',
|
202
|
+
:state => 'Victoria',
|
203
|
+
:country => 'Australia'
|
204
|
+
})
|
49
205
|
|
50
|
-
|
206
|
+
Returns a `Pin::Models::Card` containing the non-sensitive card details.
|
51
207
|
|
52
|
-
|
208
|
+
# Contributing
|
53
209
|
|
54
210
|
1. Fork it
|
55
211
|
2. Create your feature branch (`git checkout -b my-new-feature`)
|
data/lib/pin/api/customers.rb
CHANGED
@@ -11,8 +11,8 @@ module Pin::API::Customers
|
|
11
11
|
pin_response(raw_response, Pin::Models::Customer.new(raw_response['response']))
|
12
12
|
end
|
13
13
|
|
14
|
-
def customer_charges(token)
|
15
|
-
raw_response = api_call(:get, "customers/#{token}/charges")
|
14
|
+
def customer_charges(token, page=1)
|
15
|
+
raw_response = api_call(:get, "customers/#{token}/charges", {:page => page})
|
16
16
|
|
17
17
|
pin_response(raw_response, raw_response['response'].map { |e| Pin::Models::Charge.new(e) })
|
18
18
|
end
|
data/lib/pin/api/refunds.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
module Pin::API::Refunds
|
2
2
|
|
3
|
-
def refunds(charge_token,
|
4
|
-
raw_response = api_call(:get, "charges/#{charge_token}/refunds",
|
3
|
+
def refunds(charge_token, page=1)
|
4
|
+
raw_response = api_call(:get, "charges/#{charge_token}/refunds", {:page => page})
|
5
5
|
|
6
6
|
pin_response(raw_response, raw_response['response'].map { |e| Pin::Models::Refund.new(e) })
|
7
7
|
end
|
data/lib/pin/api/tokens.rb
CHANGED
data/lib/pin/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pin-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Shimmins
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-07-
|
11
|
+
date: 2013-07-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json
|