paypal-rest-api 0.3.1 → 0.5.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 +4 -4
- data/README.md +97 -16
- data/VERSION +1 -1
- data/lib/paypal-api/api_collections/authentication.rb +1 -1
- data/lib/paypal-api/api_collections/authorized_payments.rb +1 -1
- data/lib/paypal-api/api_collections/captured_payments.rb +1 -1
- data/lib/paypal-api/api_collections/catalog_products.rb +1 -1
- data/lib/paypal-api/api_collections/disputes.rb +1 -1
- data/lib/paypal-api/api_collections/invoice_templates.rb +1 -1
- data/lib/paypal-api/api_collections/invoices.rb +1 -1
- data/lib/paypal-api/api_collections/orders.rb +1 -1
- data/lib/paypal-api/api_collections/partner_referrals.rb +48 -0
- data/lib/paypal-api/api_collections/payment_experience_web_profiles.rb +94 -0
- data/lib/paypal-api/api_collections/payment_tokens.rb +70 -0
- data/lib/paypal-api/api_collections/payout_items.rb +1 -1
- data/lib/paypal-api/api_collections/payouts.rb +1 -1
- data/lib/paypal-api/api_collections/referenced_payout_items.rb +2 -2
- data/lib/paypal-api/api_collections/referenced_payouts.rb +1 -1
- data/lib/paypal-api/api_collections/refunds.rb +1 -1
- data/lib/paypal-api/api_collections/setup_tokens.rb +47 -0
- data/lib/paypal-api/api_collections/shipment_tracking.rb +1 -1
- data/lib/paypal-api/api_collections/subscription_plans.rb +1 -1
- data/lib/paypal-api/api_collections/subscriptions.rb +1 -1
- data/lib/paypal-api/api_collections/transaction_search.rb +46 -0
- data/lib/paypal-api/api_collections/user_info.rb +1 -1
- data/lib/paypal-api/api_collections/users.rb +2 -2
- data/lib/paypal-api/api_collections/webhook_events.rb +1 -1
- data/lib/paypal-api/api_collections/webhook_lookups.rb +1 -1
- data/lib/paypal-api/api_collections/webhooks.rb +1 -1
- data/lib/paypal-api/client/access_token_methods.rb +36 -0
- data/lib/paypal-api/client/api_methods.rb +140 -0
- data/lib/paypal-api/client/environment_methods.rb +34 -0
- data/lib/paypal-api/client/http_methods.rb +70 -0
- data/lib/paypal-api/client.rb +5 -215
- data/lib/paypal-api/error.rb +3 -1
- data/lib/paypal-api/request.rb +47 -22
- data/lib/paypal-api/request_executor.rb +32 -15
- data/lib/paypal-api/response.rb +68 -0
- data/lib/paypal-api.rb +27 -3
- metadata +12 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dbd16b786c08d41262b404eb893480c37dbd1b4084dcb4f26a5d7f849d187970
|
4
|
+
data.tar.gz: 720a713a163ca01db1e414149673f416e484616d2e86442eb75ac0d17a29620a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d7d63364e602fe0ae3840fefcf68efbd4432243fb337ef8c4a42ec45d8e3744565456696b8f06d04c426520d25c27dd21a0447df9e6ff7017d4c6556453ca568
|
7
|
+
data.tar.gz: 02ebf31571711bb7a0a347b38d8c0c6c116d6ec2bb135912a6ed1da7cc499a469f2cabb3ccd0c9317dbad520e101eabdc3006422fa3498e9df7bb518cc537e8b
|
data/README.md
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
[](https://badge.fury.io/rb/paypal-rest-api)
|
2
|
+
[](https://github.com/aglushkov/paypal-rest-api/actions/workflows/main.yml)
|
3
|
+
[](https://codeclimate.com/github/aglushkov/paypal-rest-api/test_coverage)
|
4
|
+
[](https://codeclimate.com/github/aglushkov/paypal-rest-api/maintainability)
|
5
|
+
|
1
6
|
# PaypalAPI
|
2
7
|
|
3
8
|
## Installation
|
@@ -10,12 +15,13 @@ bundle add paypal-rest-api
|
|
10
15
|
|
11
16
|
- Supported Ruby Versions - *(2.6 .. 3.3), head, jruby-9.4, truffleruby-24*
|
12
17
|
- No dependencies;
|
13
|
-
- Automatic authorization &
|
18
|
+
- Automatic authorization & re-authorization;
|
14
19
|
- Auto-retries (configured);
|
15
20
|
- Automatically added Paypal-Request-Id header for idempotent requests if not
|
16
21
|
provided;
|
17
22
|
- Webhooks Offline verification (needs to download certificate once)
|
18
23
|
- Custom callbacks before/after request
|
24
|
+
- Automatic pagination methods
|
19
25
|
|
20
26
|
## Usage
|
21
27
|
|
@@ -39,7 +45,7 @@ PaypalAPI.live? # => false
|
|
39
45
|
PaypalAPI.api_url # => "https://api-m.sandbox.paypal.com"
|
40
46
|
PaypalAPI.web_url # => "https://sandbox.paypal.com"
|
41
47
|
|
42
|
-
response =
|
48
|
+
response = PaypalAPI::Orders.show(order_id)
|
43
49
|
response = PaypalAPI::Orders.create(body: body)
|
44
50
|
```
|
45
51
|
|
@@ -80,22 +86,42 @@ response = PaypalAPI.put(path, query: query, body: body, headers: headers)
|
|
80
86
|
response = PaypalAPI.delete(path, query: query, body: body, headers: headers)
|
81
87
|
```
|
82
88
|
|
83
|
-
###
|
89
|
+
### Response
|
84
90
|
|
85
|
-
`
|
91
|
+
`Response` object is returned after each `API` request.
|
86
92
|
|
87
|
-
|
93
|
+
#### Original HTTP response data
|
88
94
|
|
89
|
-
|
90
|
-
response.
|
91
|
-
response
|
92
|
-
response.
|
93
|
-
response.
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
response.
|
98
|
-
|
95
|
+
- `response.http_status` - response HTTP status as Integer
|
96
|
+
- `response.http_body` - response body as String
|
97
|
+
- `response.http_headers` - response headers as Hash with String keys
|
98
|
+
- `response.http_response` - original Net::HTTP::Response object
|
99
|
+
- `response.request` - Request object that was used to get this response
|
100
|
+
|
101
|
+
#### Parsed JSON body methods
|
102
|
+
|
103
|
+
- `response.body` - parsed JSON body, keys are Symbols
|
104
|
+
- `response[:field]` - gets `:field` attribute from parsed body,
|
105
|
+
returns nil if response have no such key
|
106
|
+
- `response.fetch(:field)` - gets `:field` attribute from parsed body,
|
107
|
+
raises KeyError if response has no such key
|
108
|
+
|
109
|
+
#### Error check methods
|
110
|
+
|
111
|
+
- `response.success?` - checks HTTP status code is 2xx
|
112
|
+
- `response.failed?` - checks HTTP status code is not 2xx
|
113
|
+
|
114
|
+
#### Using HATEOAS links
|
115
|
+
|
116
|
+
- `response.follow_up_link('approve', query: nil, body: nil, headers: nil)` -
|
117
|
+
Finds HATEOAS link is response with `rel=approve` and requests it. Returns
|
118
|
+
`nil` if no such link were found.
|
119
|
+
|
120
|
+
#### Pagination (see [Automatic Pagination][automatic_pagination] for examples)
|
121
|
+
|
122
|
+
- `response.each_page { |response| ... }` - iterates over each page in response
|
123
|
+
- `response.each_page_item(items_field) { |item| ... }` - iterates over each
|
124
|
+
page item
|
99
125
|
|
100
126
|
## Configuration options
|
101
127
|
|
@@ -130,7 +156,7 @@ Retries happen on any network error, on 409, 429, 5xx response status code.
|
|
130
156
|
|
131
157
|
```ruby
|
132
158
|
client = PaypalAPI::Client.new(
|
133
|
-
retries: {count:
|
159
|
+
retries: {enabled: !Rails.env.test?, count: 5, sleep: [0, 0.25, 0.75, 1.5, 2]}
|
134
160
|
# ...
|
135
161
|
)
|
136
162
|
```
|
@@ -168,6 +194,28 @@ client = PaypalAPI::Client.new(
|
|
168
194
|
)
|
169
195
|
```
|
170
196
|
|
197
|
+
## Automatic pagination
|
198
|
+
|
199
|
+
PayPal provides HATEOAS links in responses. This links can contain items with
|
200
|
+
`rel=next` attribute. We request next pages using this links.
|
201
|
+
|
202
|
+
We have two specific methods:
|
203
|
+
|
204
|
+
- `Response#each_page` - iterates over each page `Response` object
|
205
|
+
- `Response#each_page_item(items_field_name)` - iterates over items on each page
|
206
|
+
|
207
|
+
Example:
|
208
|
+
|
209
|
+
```ruby
|
210
|
+
PaypalAPI::WebhookEvents.list(page_size: 25).each_page do |response|
|
211
|
+
# ...
|
212
|
+
end
|
213
|
+
|
214
|
+
PaypalAPI::WebhookEvents.list(page_size: 25).each_page_item(:events) do |hash|
|
215
|
+
# ...
|
216
|
+
end
|
217
|
+
```
|
218
|
+
|
171
219
|
## Webhoooks verification
|
172
220
|
|
173
221
|
Webhooks can be verified [offline](https://developer.paypal.com/api/rest/webhooks/rest/#link-selfverificationmethod)
|
@@ -351,6 +399,18 @@ All API endpoints accept this parameters:
|
|
351
399
|
- `PaypalAPI::Orders.track`
|
352
400
|
- `PaypalAPI::Orders.update_tracker`
|
353
401
|
|
402
|
+
### Payment Tokens
|
403
|
+
|
404
|
+
- `PaypalAPI::PaymentTokens.create`
|
405
|
+
- `PaypalAPI::PaymentTokens.list`
|
406
|
+
- `PaypalAPI::PaymentTokens.show`
|
407
|
+
- `PaypalAPI::PaymentTokens.delete`
|
408
|
+
|
409
|
+
<!-- -->
|
410
|
+
|
411
|
+
- `PaypalAPI::SetupTokens.create`
|
412
|
+
- `PaypalAPI::SetupTokens.show`
|
413
|
+
|
354
414
|
### Payments
|
355
415
|
|
356
416
|
- `PaypalAPI::AuthorizedPayments.show`
|
@@ -497,6 +557,25 @@ All API endpoints accept this parameters:
|
|
497
557
|
- `PaypalAPI::ReferencedPayoutItems.create`
|
498
558
|
- `PaypalAPI::ReferencedPayoutItems.show`
|
499
559
|
|
560
|
+
### PartnerReferrals
|
561
|
+
|
562
|
+
- `PaypalAPI::PartnerReferrals.create`
|
563
|
+
- `PaypalAPI::PartnerReferrals.show`
|
564
|
+
|
565
|
+
### PaymentExperienceWebProfiles
|
566
|
+
|
567
|
+
- `PaypalAPI::PaymentExperienceWebProfiles.create`
|
568
|
+
- `PaypalAPI::PaymentExperienceWebProfiles.list`
|
569
|
+
- `PaypalAPI::PaymentExperienceWebProfiles.show`
|
570
|
+
- `PaypalAPI::PaymentExperienceWebProfiles.replace`
|
571
|
+
- `PaypalAPI::PaymentExperienceWebProfiles.update`
|
572
|
+
- `PaypalAPI::PaymentExperienceWebProfiles.delete`
|
573
|
+
|
574
|
+
### TransactionSearch
|
575
|
+
|
576
|
+
- `PaypalAPI::TransactionSearch.list_transactions`
|
577
|
+
- `PaypalAPI::TransactionSearch.list_all_balances`
|
578
|
+
|
500
579
|
## Development
|
501
580
|
|
502
581
|
```bash
|
@@ -512,3 +591,5 @@ Bug reports and pull requests are welcome on GitHub at <https://github.com/aglus
|
|
512
591
|
## License
|
513
592
|
|
514
593
|
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
594
|
+
|
595
|
+
[automatic_pagination]: #automatic-pagination
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.5.0
|
@@ -0,0 +1,48 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module PaypalAPI
|
4
|
+
#
|
5
|
+
# Use the Partner Referrals API to add PayPal seller accounts to PayPal
|
6
|
+
# Complete Payments Platform for Marketplaces and Platforms.
|
7
|
+
#
|
8
|
+
# @see https://developer.paypal.com/docs/api/partner-referrals/v2/
|
9
|
+
#
|
10
|
+
class PartnerReferrals < APICollection
|
11
|
+
#
|
12
|
+
# Common methods for PaypalAPI::PartnerReferrals class and client.partner_referrals instance
|
13
|
+
#
|
14
|
+
module APIs
|
15
|
+
# @!macro [new] request
|
16
|
+
# @param query [Hash, nil] Request query parameters
|
17
|
+
# @param body [Hash, nil] Request body parameters
|
18
|
+
# @param headers [Hash, nil] Request headers
|
19
|
+
# @return [Response] Response object
|
20
|
+
|
21
|
+
#
|
22
|
+
# Create partner referral
|
23
|
+
#
|
24
|
+
# @see https://developer.paypal.com/docs/api/partner-referrals/v2/#partner-referrals_create
|
25
|
+
#
|
26
|
+
# @macro request
|
27
|
+
#
|
28
|
+
def create(query: nil, body: nil, headers: nil)
|
29
|
+
client.post("/v2/customer/partner-referrals", query: query, body: body, headers: headers)
|
30
|
+
end
|
31
|
+
|
32
|
+
#
|
33
|
+
# Show referral data
|
34
|
+
#
|
35
|
+
# @see https://developer.paypal.com/docs/api/partner-referrals/v2/#partner-referrals_read
|
36
|
+
#
|
37
|
+
# @param id [String] The ID of the partner-referrals data for which to show details
|
38
|
+
# @macro request
|
39
|
+
#
|
40
|
+
def show(partner_referral_id, query: nil, body: nil, headers: nil)
|
41
|
+
client.get("/v2/customer/partner-referrals/#{encode(partner_referral_id)}", query: query, body: body, headers: headers)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
include APIs
|
46
|
+
extend APIs
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,94 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module PaypalAPI
|
4
|
+
#
|
5
|
+
# Use the Payment Experience API to create seamless payment experience profiles.
|
6
|
+
#
|
7
|
+
# @see https://developer.paypal.com/docs/api/orders/v2/
|
8
|
+
#
|
9
|
+
class PaymentExperienceWebProfiles < APICollection
|
10
|
+
#
|
11
|
+
# Common methods for PaypalAPI::PaymentExperienceWebProfiles class and client.orders instance
|
12
|
+
#
|
13
|
+
module APIs
|
14
|
+
# @!macro [new] request
|
15
|
+
# @param query [Hash, nil] Request query parameters
|
16
|
+
# @param body [Hash, nil] Request body parameters
|
17
|
+
# @param headers [Hash, nil] Request headers
|
18
|
+
# @return [Response] Response object
|
19
|
+
|
20
|
+
#
|
21
|
+
# Create web experience profile
|
22
|
+
#
|
23
|
+
# @see https://developer.paypal.com/docs/api/payment-experience/v1/#web-profile_create
|
24
|
+
#
|
25
|
+
# @macro request
|
26
|
+
#
|
27
|
+
def create(query: nil, body: nil, headers: nil)
|
28
|
+
client.post("/v1/payment-experience/web-profiles", query: query, body: body, headers: headers)
|
29
|
+
end
|
30
|
+
|
31
|
+
#
|
32
|
+
# List web experience profiles
|
33
|
+
#
|
34
|
+
# @see https://developer.paypal.com/docs/api/payment-experience/v1/#web-profile_get-list
|
35
|
+
#
|
36
|
+
# @macro request
|
37
|
+
#
|
38
|
+
def list(query: nil, body: nil, headers: nil)
|
39
|
+
client.get("/v1/payment-experience/web-profiles", query: query, body: body, headers: headers)
|
40
|
+
end
|
41
|
+
|
42
|
+
#
|
43
|
+
# Show web experience profile details by ID
|
44
|
+
#
|
45
|
+
# @see https://developer.paypal.com/docs/api/payment-experience/v1/#web-profile_get
|
46
|
+
#
|
47
|
+
# @param id [String] The ID of the profile for which to show details.
|
48
|
+
# @macro request
|
49
|
+
#
|
50
|
+
def show(id, query: nil, body: nil, headers: nil)
|
51
|
+
client.get("/v1/payment-experience/web-profiles/#{encode(id)}", query: query, body: body, headers: headers)
|
52
|
+
end
|
53
|
+
|
54
|
+
#
|
55
|
+
# Replace web experience profile
|
56
|
+
#
|
57
|
+
# @see https://developer.paypal.com/docs/api/payment-experience/v1/#web-profile_update
|
58
|
+
#
|
59
|
+
# @param id [String] The ID of the profile to replace.
|
60
|
+
# @macro request
|
61
|
+
#
|
62
|
+
def replace(id, query: nil, body: nil, headers: nil)
|
63
|
+
client.put("/v1/payment-experience/web-profiles/#{encode(id)}", query: query, body: body, headers: headers)
|
64
|
+
end
|
65
|
+
|
66
|
+
#
|
67
|
+
# Partially update web experience profile
|
68
|
+
#
|
69
|
+
# @see https://developer.paypal.com/docs/api/payment-experience/v1/#web-profile_partial-update
|
70
|
+
#
|
71
|
+
# @param id [String] The ID of the profile to update.
|
72
|
+
# @macro request
|
73
|
+
#
|
74
|
+
def update(id, query: nil, body: nil, headers: nil)
|
75
|
+
client.patch("/v1/payment-experience/web-profiles/#{encode(id)}", query: query, body: body, headers: headers)
|
76
|
+
end
|
77
|
+
|
78
|
+
#
|
79
|
+
# Delete web experience profile
|
80
|
+
#
|
81
|
+
# @see https://developer.paypal.com/docs/api/payment-experience/v1/#web-profile_delete
|
82
|
+
#
|
83
|
+
# @param id [String] The ID of the profile to delete.
|
84
|
+
# @macro request
|
85
|
+
#
|
86
|
+
def delete(id, query: nil, body: nil, headers: nil)
|
87
|
+
client.delete("/v1/payment-experience/web-profiles/#{encode(id)}", query: query, body: body, headers: headers)
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
include APIs
|
92
|
+
extend APIs
|
93
|
+
end
|
94
|
+
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module PaypalAPI
|
4
|
+
#
|
5
|
+
# Payment Method Tokens
|
6
|
+
#
|
7
|
+
# @see https://developer.paypal.com/docs/api/payment-tokens/v3/
|
8
|
+
#
|
9
|
+
class PaymentTokens < APICollection
|
10
|
+
#
|
11
|
+
# Common methods for PaypalAPI::PaymentTokens class and client.payment_tokens instance
|
12
|
+
#
|
13
|
+
module APIs
|
14
|
+
# @!macro [new] request
|
15
|
+
# @param query [Hash, nil] Request query parameters
|
16
|
+
# @param body [Hash, nil] Request body parameters
|
17
|
+
# @param headers [Hash, nil] Request headers
|
18
|
+
# @return [Response] Response object
|
19
|
+
|
20
|
+
#
|
21
|
+
# Create payment token for a given payment source
|
22
|
+
#
|
23
|
+
# @see https://developer.paypal.com/docs/api/payment-tokens/v3/#payment-tokens_create
|
24
|
+
#
|
25
|
+
# @macro request
|
26
|
+
#
|
27
|
+
def create(query: nil, body: nil, headers: nil)
|
28
|
+
client.post("/v3/vault/payment-tokens", query: query, body: body, headers: headers)
|
29
|
+
end
|
30
|
+
|
31
|
+
#
|
32
|
+
# List all payment tokens
|
33
|
+
#
|
34
|
+
# @see https://developer.paypal.com/docs/api/payment-tokens/v3/#customer_payment-tokens_get
|
35
|
+
#
|
36
|
+
# @macro request
|
37
|
+
#
|
38
|
+
def list(query: nil, body: nil, headers: nil)
|
39
|
+
client.get("/v3/vault/payment-tokens", query: query, body: body, headers: headers)
|
40
|
+
end
|
41
|
+
|
42
|
+
#
|
43
|
+
# Retrieve a payment token
|
44
|
+
#
|
45
|
+
# @see https://developer.paypal.com/docs/api/payment-tokens/v3/#payment-tokens_get
|
46
|
+
#
|
47
|
+
# @param id [String] ID of the payment token.
|
48
|
+
# @macro request
|
49
|
+
#
|
50
|
+
def show(id, query: nil, body: nil, headers: nil)
|
51
|
+
client.get("/v3/vault/payment-tokens/#{encode(id)}", query: query, body: body, headers: headers)
|
52
|
+
end
|
53
|
+
|
54
|
+
#
|
55
|
+
# Delete payment token
|
56
|
+
#
|
57
|
+
# @see https://developer.paypal.com/docs/api/payment-tokens/v3/#payment-tokens_delete
|
58
|
+
#
|
59
|
+
# @param id [String] ID of the payment token
|
60
|
+
# @macro request
|
61
|
+
#
|
62
|
+
def delete(id, query: nil, body: nil, headers: nil)
|
63
|
+
client.delete("/v3/vault/payment-tokens/#{encode(id)}", query: query, body: body, headers: headers)
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
include APIs
|
68
|
+
extend APIs
|
69
|
+
end
|
70
|
+
end
|
@@ -4,11 +4,11 @@ module PaypalAPI
|
|
4
4
|
#
|
5
5
|
# Enables partner merchants and developers to process individual referenced payouts to recipients.
|
6
6
|
#
|
7
|
-
# @
|
7
|
+
# @see https://developer.paypal.com/docs/api/referenced-payouts/v1/
|
8
8
|
#
|
9
9
|
class ReferencedPayoutItems < APICollection
|
10
10
|
#
|
11
|
-
# Common class and instance
|
11
|
+
# Common methods for PaypalAPI::ReferencedPayoutItems class and client.referenced_payout_items instance
|
12
12
|
#
|
13
13
|
module APIs
|
14
14
|
# @!macro [new] request
|
@@ -0,0 +1,47 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module PaypalAPI
|
4
|
+
#
|
5
|
+
# Payment Setup Tokens
|
6
|
+
#
|
7
|
+
# @see https://developer.paypal.com/docs/api/payment-tokens/v3/
|
8
|
+
#
|
9
|
+
class SetupTokens < APICollection
|
10
|
+
#
|
11
|
+
# Common methods for PaypalAPI::SetupTokens class and client.setup_tokens instance
|
12
|
+
#
|
13
|
+
module APIs
|
14
|
+
# @!macro [new] request
|
15
|
+
# @param query [Hash, nil] Request query parameters
|
16
|
+
# @param body [Hash, nil] Request body parameters
|
17
|
+
# @param headers [Hash, nil] Request headers
|
18
|
+
# @return [Response] Response object
|
19
|
+
|
20
|
+
#
|
21
|
+
# Create a setup token
|
22
|
+
#
|
23
|
+
# @see https://developer.paypal.com/docs/api/payment-tokens/v3/#setup-tokens_create
|
24
|
+
#
|
25
|
+
# @macro request
|
26
|
+
#
|
27
|
+
def create(query: nil, body: nil, headers: nil)
|
28
|
+
client.post("/v3/vault/setup-tokens", query: query, body: body, headers: headers)
|
29
|
+
end
|
30
|
+
|
31
|
+
#
|
32
|
+
# Retrieve a setup token
|
33
|
+
#
|
34
|
+
# @see https://developer.paypal.com/docs/api/payment-tokens/v3/#setup-tokens_get
|
35
|
+
#
|
36
|
+
# @param id [String] ID of the setup token.
|
37
|
+
# @macro request
|
38
|
+
#
|
39
|
+
def show(id, query: nil, body: nil, headers: nil)
|
40
|
+
client.get("/v3/vault/setup-tokens/#{encode(id)}", query: query, body: body, headers: headers)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
include APIs
|
45
|
+
extend APIs
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module PaypalAPI
|
4
|
+
#
|
5
|
+
# Use the Transaction Search API to get the history of transactions for a PayPal account.
|
6
|
+
#
|
7
|
+
# @see https://developer.paypal.com/docs/api/transaction-search/v1/
|
8
|
+
#
|
9
|
+
class TransactionSearch < APICollection
|
10
|
+
#
|
11
|
+
# Common methods for PaypalAPI::TransactionSearch class and client.transaction_search instance
|
12
|
+
#
|
13
|
+
module APIs
|
14
|
+
# @!macro [new] request
|
15
|
+
# @param query [Hash, nil] Request query parameters
|
16
|
+
# @param body [Hash, nil] Request body parameters
|
17
|
+
# @param headers [Hash, nil] Request headers
|
18
|
+
# @return [Response] Response object
|
19
|
+
|
20
|
+
#
|
21
|
+
# List transactions
|
22
|
+
#
|
23
|
+
# @see https://developer.paypal.com/docs/api/transaction-search/v1/#search_get
|
24
|
+
#
|
25
|
+
# @macro request
|
26
|
+
#
|
27
|
+
def list_transactions(query: nil, body: nil, headers: nil)
|
28
|
+
client.get("/v1/reporting/transactions", query: query, body: body, headers: headers)
|
29
|
+
end
|
30
|
+
|
31
|
+
#
|
32
|
+
# List all balances
|
33
|
+
#
|
34
|
+
# @see https://developer.paypal.com/docs/api/transaction-search/v1/#balances_get
|
35
|
+
#
|
36
|
+
# @macro request
|
37
|
+
#
|
38
|
+
def list_all_balances(query: nil, body: nil, headers: nil)
|
39
|
+
client.get("/v1/reporting/balances", query: query, body: body, headers: headers)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
include APIs
|
44
|
+
extend APIs
|
45
|
+
end
|
46
|
+
end
|