solidgate-ruby-sdk 0.1.17 → 0.2.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/AGENTS.md +6 -3
- data/CHANGELOG.md +23 -1
- data/Gemfile.lock +1 -1
- data/README.md +28 -0
- data/docs/payment-integration-guide.md +266 -0
- data/lib/solidgate/client.rb +14 -0
- data/lib/solidgate/version.rb +1 -1
- metadata +3 -3
- data/solidgate.gemspec +0 -43
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 0cc47da7070971ded0369dbc9c2585f4a5a35990cd71dee534abaa417eb1926f
|
|
4
|
+
data.tar.gz: c83e001aaf639127e66217c80afa0b7c7da03e852e16518fa167a15697bc1802
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 32cf87089a35994c5a93c701c4652ee7e534f2ec492a79df05089cb8dd67646ee9b46cc5b584ffe821de2ed6c56bddc3393075c22da7dc5d4359ea36481493e8
|
|
7
|
+
data.tar.gz: 6e2b585477f4c0d7a654ad05bf42ce1c59a9e3f47a49998f5c3ba5a119f6caa7d22f8af1176478a07a011f4548e0d1a6dfa7fde5cdf59e5fc5507c70c788f0ec
|
data/AGENTS.md
CHANGED
|
@@ -5,6 +5,9 @@
|
|
|
5
5
|
Solidgate Ruby SDK is an unofficial Ruby library for integrating with the Solidgate payment gateway API.
|
|
6
6
|
It provides a clean, object-oriented interface for payment processing, subscription management, and webhook handling.
|
|
7
7
|
|
|
8
|
+
## Integration Documentation
|
|
9
|
+
- Payment integration guide for humans and LLM agents: `docs/payment-integration-guide.md`
|
|
10
|
+
|
|
8
11
|
## Project Structure
|
|
9
12
|
|
|
10
13
|
### Core Components
|
|
@@ -32,9 +35,9 @@ It provides a clean, object-oriented interface for payment processing, subscript
|
|
|
32
35
|
- Handles authentication via HMAC-SHA512 signatures
|
|
33
36
|
- Provides methods for all Solidgate API endpoints:
|
|
34
37
|
- Payment operations: `create_payment`, `get_payment`, `capture_payment`, `void_payment`, `refund_payment`, `settle_payment`
|
|
35
|
-
- Subscription operations: `create_subscription`, `subscription_status`, `switch_subscription_product`, `update_subscription_pause`, `create_subscription_pause`, `delete_subscription_pause`, `cancel_subscription`, `restore_subscription`
|
|
38
|
+
- Subscription operations: `create_subscription`, `subscription_status`, `switch_subscription_product`, `update_subscription_pause`, `create_subscription_pause`, `delete_subscription_pause`, `cancel_subscription`, `restore_subscription`, `update_subscription_payment_method`
|
|
36
39
|
- Product operations: `create_product`, `update_product`, `create_price`, `products`, `product_prices`, `update_product_price`
|
|
37
|
-
- Utility methods: `generate_intent`, `generate_signature`, `refund`, `order_status`
|
|
40
|
+
- Utility methods: `generate_intent`, `generate_signature`, `refund`, `alt_refund`, `order_status`, `apm_order_status`, `make_card_recurring`, `make_apm_recurring`
|
|
38
41
|
- Private methods for HTTP operations: `get`, `post`, `patch`, `delete`, `request`
|
|
39
42
|
- Encryption: `encrypt_payload` for payment intent generation (AES-256-CBC)
|
|
40
43
|
|
|
@@ -62,7 +65,7 @@ It provides a clean, object-oriented interface for payment processing, subscript
|
|
|
62
65
|
- `Solidgate::ValidationError` - Parameter validation (includes errors hash)
|
|
63
66
|
|
|
64
67
|
#### `lib/solidgate/version.rb`
|
|
65
|
-
- Version constant: `Solidgate::VERSION = "0.
|
|
68
|
+
- Version constant: `Solidgate::VERSION = "0.2.0"`
|
|
66
69
|
|
|
67
70
|
### Test Structure
|
|
68
71
|
|
data/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.2.0] - 2026-05-05
|
|
11
|
+
### Added
|
|
12
|
+
- `apm_order_status` endpoint for checking alternative payment method order status.
|
|
13
|
+
- Spec coverage for previously untested client methods added in this worktree.
|
|
14
|
+
|
|
15
|
+
### Fixed
|
|
16
|
+
- Recurring payment spec coverage bug affecting the recurring endpoint test suite.
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
- Documentation updates and version bump for the `0.2.0` release.
|
|
20
|
+
|
|
10
21
|
## [0.1.17] - 2026-03-03
|
|
11
22
|
### Added
|
|
12
23
|
- `update_product` endpoint (`Solidgate::Client#update_product`) to modify product attributes.
|
|
@@ -18,6 +29,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
18
29
|
### Added
|
|
19
30
|
- `alt_refund` endpoint to create refunds using an alternative payment method (`Solidgate::Client#alt_refund`).
|
|
20
31
|
|
|
32
|
+
## [0.1.15] - 2026-02-20
|
|
33
|
+
### Added
|
|
34
|
+
- `make_apm_recurring` endpoint to create recurring alternative payment method charges (`Solidgate::Client#make_apm_recurring`).
|
|
35
|
+
|
|
36
|
+
## [0.1.14] - 2026-02-17
|
|
37
|
+
### Added
|
|
38
|
+
- `make_card_recurring` endpoint to create recurring card charges (`Solidgate::Client#make_card_recurring`).
|
|
39
|
+
|
|
21
40
|
## [0.1.13] - 2026-02-13
|
|
22
41
|
### Added
|
|
23
42
|
- `order_status` endpoint to check order/payment status on `pay.solidgate.com` (`Solidgate::Client#order_status`).
|
|
@@ -75,9 +94,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
75
94
|
- Thread-safe configuration
|
|
76
95
|
- Comprehensive documentation and examples
|
|
77
96
|
|
|
78
|
-
[Unreleased]: https://github.com/carrfane/solidgate-ruby-sdk/compare/v0.
|
|
97
|
+
[Unreleased]: https://github.com/carrfane/solidgate-ruby-sdk/compare/v0.2.0...HEAD
|
|
98
|
+
[0.2.0]: https://github.com/carrfane/solidgate-ruby-sdk/compare/v0.1.17...v0.2.0
|
|
79
99
|
[0.1.17]: https://github.com/carrfane/solidgate-ruby-sdk/releases/tag/v0.1.17
|
|
80
100
|
[0.1.16]: https://github.com/carrfane/solidgate-ruby-sdk/releases/tag/v0.1.16
|
|
101
|
+
[0.1.15]: https://github.com/carrfane/solidgate-ruby-sdk/compare/v0.1.14...v0.1.15
|
|
102
|
+
[0.1.14]: https://github.com/carrfane/solidgate-ruby-sdk/compare/v0.1.13...v0.1.14
|
|
81
103
|
[0.1.13]: https://github.com/carrfane/solidgate-ruby-sdk/releases/tag/v0.1.13
|
|
82
104
|
[0.1.12]: https://github.com/carrfane/solidgate-ruby-sdk/releases/tag/v0.1.12
|
|
83
105
|
[0.1.11]: https://github.com/carrfane/solidgate-ruby-sdk/releases/tag/v0.1.11
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
|
@@ -4,6 +4,10 @@
|
|
|
4
4
|
|
|
5
5
|
A Ruby (unofficial) SDK for integrating with the Solidgate payment gateway API.
|
|
6
6
|
|
|
7
|
+
## Additional Documentation
|
|
8
|
+
|
|
9
|
+
- Integration guide for payments (humans and LLM agents): `docs/payment-integration-guide.md`
|
|
10
|
+
|
|
7
11
|
## Installation
|
|
8
12
|
|
|
9
13
|
Add this line to your application's Gemfile:
|
|
@@ -112,8 +116,32 @@ client.refund_payment('payment_id_123', amount: 500, reason: 'Customer requested
|
|
|
112
116
|
# Refund by order ID (pay.solidgate.com)
|
|
113
117
|
client.refund(order_id: 'order_123', amount: 1000)
|
|
114
118
|
|
|
119
|
+
# Refund an alternative payment method order (gate.solidgate.com)
|
|
120
|
+
client.alt_refund(order_id: 'apm_order_123', amount: 750)
|
|
121
|
+
|
|
115
122
|
# Check order status (pay.solidgate.com)
|
|
116
123
|
client.order_status(order_id: 'order_123')
|
|
124
|
+
|
|
125
|
+
# Check alternative payment method order status (gate.solidgate.com)
|
|
126
|
+
client.apm_order_status(order_id: 'apm_order_123')
|
|
127
|
+
|
|
128
|
+
# Charge a saved card payment method for a recurring payment
|
|
129
|
+
client.make_card_recurring(
|
|
130
|
+
order_id: 'renewal_order_123',
|
|
131
|
+
amount: 1999,
|
|
132
|
+
currency: 'USD',
|
|
133
|
+
customer_email: 'customer@example.com',
|
|
134
|
+
token: 'card_tok_abc123'
|
|
135
|
+
)
|
|
136
|
+
|
|
137
|
+
# Charge a saved APM payment method for a recurring payment
|
|
138
|
+
client.make_apm_recurring(
|
|
139
|
+
order_id: 'apm_renewal_123',
|
|
140
|
+
amount: 1499,
|
|
141
|
+
currency: 'EUR',
|
|
142
|
+
customer_email: 'customer@example.com',
|
|
143
|
+
token: 'apm_tok_xyz789'
|
|
144
|
+
)
|
|
117
145
|
```
|
|
118
146
|
|
|
119
147
|
### Subscription Management
|
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
# Solidgate Ruby SDK Integration Guide (Payments)
|
|
2
|
+
|
|
3
|
+
> Target version: `solidgate-ruby-sdk` `0.2.0`
|
|
4
|
+
> Audience: engineers and LLM agents integrating Solidgate payments in Ruby apps.
|
|
5
|
+
|
|
6
|
+
## 1) What this SDK provides
|
|
7
|
+
|
|
8
|
+
Core entrypoints:
|
|
9
|
+
|
|
10
|
+
- `Solidgate.configure` for global credentials/config
|
|
11
|
+
- `Solidgate::Client` as the low-level API client (recommended for full control)
|
|
12
|
+
- `Solidgate::Payment` as a higher-level payment wrapper
|
|
13
|
+
- `Solidgate::Webhook` for webhook signature validation
|
|
14
|
+
|
|
15
|
+
Main domains used by the SDK:
|
|
16
|
+
|
|
17
|
+
- `https://subscriptions.solidgate.com` (default API base)
|
|
18
|
+
- `https://pay.solidgate.com` (refund/order-status/recurring card flows)
|
|
19
|
+
- `https://gate.solidgate.com` (alternative refund/APM recurring flows)
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## 2) Install and initialize
|
|
24
|
+
|
|
25
|
+
### Gem installation
|
|
26
|
+
|
|
27
|
+
```ruby
|
|
28
|
+
# Gemfile
|
|
29
|
+
gem "solidgate-ruby-sdk"
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Then:
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
bundle install
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### Require and configure
|
|
39
|
+
|
|
40
|
+
```ruby
|
|
41
|
+
require "solidgate-ruby-sdk"
|
|
42
|
+
|
|
43
|
+
Solidgate.configure do |config|
|
|
44
|
+
config.public_key = ENV.fetch("SOLIDGATE_PUBLIC_KEY")
|
|
45
|
+
config.private_key = ENV.fetch("SOLIDGATE_PRIVATE_KEY")
|
|
46
|
+
config.webhook_public_key = ENV["SOLIDGATE_WEBHOOK_PUBLIC_KEY"]
|
|
47
|
+
config.webhook_private_key = ENV["SOLIDGATE_WEBHOOK_PRIVATE_KEY"]
|
|
48
|
+
|
|
49
|
+
# Optional
|
|
50
|
+
config.sandbox = true
|
|
51
|
+
config.timeout = 30
|
|
52
|
+
config.open_timeout = 10
|
|
53
|
+
# config.api_url = "https://custom.example.com" # optional override
|
|
54
|
+
end
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Environment variables commonly used:
|
|
58
|
+
|
|
59
|
+
- `SOLIDGATE_PUBLIC_KEY`
|
|
60
|
+
- `SOLIDGATE_PRIVATE_KEY`
|
|
61
|
+
- `SOLIDGATE_WEBHOOK_PUBLIC_KEY`
|
|
62
|
+
- `SOLIDGATE_WEBHOOK_PRIVATE_KEY`
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## 3) Quick start payment flow
|
|
67
|
+
|
|
68
|
+
Use `Solidgate::Client` directly for integration scripts and backend services.
|
|
69
|
+
|
|
70
|
+
```ruby
|
|
71
|
+
client = Solidgate::Client.new
|
|
72
|
+
|
|
73
|
+
# 1) Create charge
|
|
74
|
+
created = client.create_payment(
|
|
75
|
+
order_id: "order_123",
|
|
76
|
+
amount: 1000, # minor units (e.g., cents)
|
|
77
|
+
currency: "USD",
|
|
78
|
+
customer_email: "customer@example.com"
|
|
79
|
+
)
|
|
80
|
+
|
|
81
|
+
payment_id = created["id"] || created["payment_id"]
|
|
82
|
+
|
|
83
|
+
# 2) Get payment details/status
|
|
84
|
+
payment = client.get_payment(payment_id)
|
|
85
|
+
|
|
86
|
+
# 3a) Capture (for auth flow)
|
|
87
|
+
captured = client.capture_payment(payment_id)
|
|
88
|
+
# or partial capture
|
|
89
|
+
# captured = client.capture_payment(payment_id, amount: 500)
|
|
90
|
+
|
|
91
|
+
# 3b) Void (if authorized and not captured)
|
|
92
|
+
# voided = client.void_payment(payment_id)
|
|
93
|
+
|
|
94
|
+
# 3c) Refund by payment_id
|
|
95
|
+
refunded = client.refund_payment(payment_id, amount: 300, reason: "partial_refund")
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## 4) API methods relevant for payments
|
|
101
|
+
|
|
102
|
+
### Charges (`subscriptions.solidgate.com`)
|
|
103
|
+
|
|
104
|
+
- `create_payment(params)` -> `POST /v1/charge`
|
|
105
|
+
- `get_payment(payment_id)` -> `GET /v1/charge/:payment_id`
|
|
106
|
+
- `capture_payment(payment_id, params = {})` -> `POST /v1/charge/:payment_id/capture`
|
|
107
|
+
- `void_payment(payment_id)` -> `POST /v1/charge/:payment_id/void`
|
|
108
|
+
- `refund_payment(payment_id, params = {})` -> `POST /v1/charge/:payment_id/refund`
|
|
109
|
+
|
|
110
|
+
### Refund and status helper routes
|
|
111
|
+
|
|
112
|
+
- `refund(params)` -> `POST https://pay.solidgate.com/api/v1/refund`
|
|
113
|
+
- typically `order_id`, optional `amount`
|
|
114
|
+
- `order_status(params)` -> `POST https://pay.solidgate.com/api/v1/status`
|
|
115
|
+
- `apm_order_status(params)` -> `POST https://gate.solidgate.com/api/v1/status`
|
|
116
|
+
|
|
117
|
+
### Alternative payment routes
|
|
118
|
+
|
|
119
|
+
- `alt_refund(params)` -> `POST https://gate.solidgate.com/api/v1/refund`
|
|
120
|
+
- `make_card_recurring(params)` -> `POST https://pay.solidgate.com/api/v1/recurring`
|
|
121
|
+
- `make_apm_recurring(params)` -> `POST https://gate.solidgate.com/api/v1/recurring`
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
## 5) Frontend payment intent flow (server-side generation)
|
|
126
|
+
|
|
127
|
+
For hosted/payment-form flows, generate encrypted intent and signature server-side.
|
|
128
|
+
|
|
129
|
+
```ruby
|
|
130
|
+
client = Solidgate::Client.new
|
|
131
|
+
|
|
132
|
+
intent_json = {
|
|
133
|
+
order_id: "order_123",
|
|
134
|
+
product_id: "product_456",
|
|
135
|
+
customer_account_id: "cust_789",
|
|
136
|
+
order_description: "Premium plan",
|
|
137
|
+
type: "auth", # or "sale"
|
|
138
|
+
settle_interval: 0,
|
|
139
|
+
retry_attempt: 3,
|
|
140
|
+
language: "en"
|
|
141
|
+
}.to_json
|
|
142
|
+
|
|
143
|
+
payment_intent = client.generate_intent(intent_json)
|
|
144
|
+
|
|
145
|
+
payment_data = {
|
|
146
|
+
merchant: Solidgate.configuration.public_key,
|
|
147
|
+
signature: client.generate_signature(payment_intent),
|
|
148
|
+
paymentIntent: payment_intent
|
|
149
|
+
}
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
Return `payment_data` to the frontend that initializes Solidgate JS.
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## 6) Webhook verification
|
|
157
|
+
|
|
158
|
+
Always validate signature before parsing/trusting webhook payload.
|
|
159
|
+
|
|
160
|
+
```ruby
|
|
161
|
+
payload = request.body.read
|
|
162
|
+
signature = request.headers["Signature"]
|
|
163
|
+
|
|
164
|
+
webhook = Solidgate::Webhook.new
|
|
165
|
+
|
|
166
|
+
unless webhook.validate_signature(payload, signature)
|
|
167
|
+
head :unauthorized
|
|
168
|
+
return
|
|
169
|
+
end
|
|
170
|
+
|
|
171
|
+
event = JSON.parse(payload)
|
|
172
|
+
# process event
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
## 7) Error handling
|
|
178
|
+
|
|
179
|
+
SDK error classes:
|
|
180
|
+
|
|
181
|
+
- `Solidgate::Error`
|
|
182
|
+
- `Solidgate::ConfigurationError`
|
|
183
|
+
- `Solidgate::ValidationError`
|
|
184
|
+
- `Solidgate::AuthenticationError`
|
|
185
|
+
- `Solidgate::InvalidRequestError`
|
|
186
|
+
- `Solidgate::APIError`
|
|
187
|
+
- `Solidgate::ConnectionError`
|
|
188
|
+
- `Solidgate::TimeoutError`
|
|
189
|
+
- `Solidgate::RateLimitError`
|
|
190
|
+
|
|
191
|
+
Recommended handling pattern:
|
|
192
|
+
|
|
193
|
+
```ruby
|
|
194
|
+
begin
|
|
195
|
+
client.create_payment(order_id: "o1", amount: 1000, currency: "USD")
|
|
196
|
+
rescue Solidgate::ValidationError => e
|
|
197
|
+
# local validation (wrapper-level)
|
|
198
|
+
rescue Solidgate::ConnectionError, Solidgate::TimeoutError => e
|
|
199
|
+
# network/retry logic
|
|
200
|
+
rescue Solidgate::APIError => e
|
|
201
|
+
# inspect e.code, e.http_status, e.details
|
|
202
|
+
rescue Solidgate::Error => e
|
|
203
|
+
# fallback
|
|
204
|
+
end
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
---
|
|
208
|
+
|
|
209
|
+
## 8) Auth/signing model used by this SDK
|
|
210
|
+
|
|
211
|
+
Each request includes:
|
|
212
|
+
|
|
213
|
+
- `Merchant: <public_key>`
|
|
214
|
+
- `Signature: <generated_signature>`
|
|
215
|
+
- `Content-Type: application/json`
|
|
216
|
+
|
|
217
|
+
Signature generation in this SDK:
|
|
218
|
+
|
|
219
|
+
1. Serialize body to JSON string (empty string for no body)
|
|
220
|
+
2. Build message: `public_key + json_string + public_key`
|
|
221
|
+
3. HMAC-SHA512 with `private_key`
|
|
222
|
+
4. Base64-encode the hex digest string
|
|
223
|
+
|
|
224
|
+
Use SDK-generated signatures instead of re-implementing to avoid mismatch.
|
|
225
|
+
|
|
226
|
+
---
|
|
227
|
+
|
|
228
|
+
## 9) LLM-agent integration playbook
|
|
229
|
+
|
|
230
|
+
If an LLM agent is integrating this SDK into another project, follow this sequence:
|
|
231
|
+
|
|
232
|
+
1. Add `gem "solidgate-ruby-sdk"` and install dependencies.
|
|
233
|
+
2. Create initializer with `Solidgate.configure`.
|
|
234
|
+
3. Add a service object wrapping `Solidgate::Client` for:
|
|
235
|
+
- create/get/capture/void/refund
|
|
236
|
+
4. Add idempotency/order-id strategy in app layer.
|
|
237
|
+
5. Implement webhook endpoint with signature validation first.
|
|
238
|
+
6. Add retries for `ConnectionError`/`TimeoutError` and safe backoff.
|
|
239
|
+
7. Add structured logs with:
|
|
240
|
+
- `order_id`, `payment_id`, `status`, error code/status
|
|
241
|
+
8. Add integration tests with WebMock/VCR style stubs.
|
|
242
|
+
9. Add runbooks for capture/refund/manual reconciliation.
|
|
243
|
+
|
|
244
|
+
---
|
|
245
|
+
|
|
246
|
+
## 10) Known quirks in current SDK (v0.2.0)
|
|
247
|
+
|
|
248
|
+
- `settle_payment` currently does **not** call an API endpoint; it returns `config.api_url`.
|
|
249
|
+
- `README.md` examples may not fully match actual method signatures in code.
|
|
250
|
+
- `Solidgate::Payment#refund` refunds by `order_id` through `client.refund`, not by `payment_id`.
|
|
251
|
+
- Sandbox and production constants currently point to the same URL in config.
|
|
252
|
+
- Broad rescue in request pipeline may wrap some API exceptions into `Solidgate::Error` depending on failure path.
|
|
253
|
+
|
|
254
|
+
For robust integrations, prefer `Solidgate::Client` and explicitly test your payment flows.
|
|
255
|
+
|
|
256
|
+
---
|
|
257
|
+
|
|
258
|
+
## 11) Minimal production checklist
|
|
259
|
+
|
|
260
|
+
- [ ] Credentials loaded from secure env/secret manager
|
|
261
|
+
- [ ] Webhook signature validation enabled
|
|
262
|
+
- [ ] Retries/backoff for transient failures
|
|
263
|
+
- [ ] Monitoring for failed captures/refunds
|
|
264
|
+
- [ ] Reconciliation job using `order_status`
|
|
265
|
+
- [ ] Alerting on repeated auth/429/5xx errors
|
|
266
|
+
- [ ] Test mode and live mode credentials isolated
|
data/lib/solidgate/client.rb
CHANGED
|
@@ -417,6 +417,20 @@ module Solidgate
|
|
|
417
417
|
post('/api/v1/status', body: params, base_url: "https://pay.solidgate.com")
|
|
418
418
|
end
|
|
419
419
|
|
|
420
|
+
# Retrieves order status from the Solidgate gate domain for APM transactions.
|
|
421
|
+
#
|
|
422
|
+
# @param params [Hash] status request parameters:
|
|
423
|
+
# - :order_id [String] unique order identifier
|
|
424
|
+
# - :payment_id [String] optional payment identifier
|
|
425
|
+
# @return [Hash] order status response
|
|
426
|
+
# @raise [InvalidRequestError] if params are invalid
|
|
427
|
+
#
|
|
428
|
+
# @example Get APM order status
|
|
429
|
+
# client.apm_order_status(order_id: 'order_123')
|
|
430
|
+
def apm_order_status(params)
|
|
431
|
+
post('/api/v1/status', body: params, base_url: "https://gate.solidgate.com")
|
|
432
|
+
end
|
|
433
|
+
|
|
420
434
|
def make_card_recurring(params)
|
|
421
435
|
post('/api/v1/recurring', body: params, base_url: "https://pay.solidgate.com")
|
|
422
436
|
end
|
data/lib/solidgate/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: solidgate-ruby-sdk
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Hector Carrillo
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-
|
|
11
|
+
date: 2026-05-05 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: faraday
|
|
@@ -124,6 +124,7 @@ files:
|
|
|
124
124
|
- LICENSE.txt
|
|
125
125
|
- README.md
|
|
126
126
|
- Rakefile
|
|
127
|
+
- docs/payment-integration-guide.md
|
|
127
128
|
- examples/basic_usage.rb
|
|
128
129
|
- lib/solidgate-ruby-sdk.rb
|
|
129
130
|
- lib/solidgate/client.rb
|
|
@@ -132,7 +133,6 @@ files:
|
|
|
132
133
|
- lib/solidgate/payment.rb
|
|
133
134
|
- lib/solidgate/version.rb
|
|
134
135
|
- lib/solidgate/webhook.rb
|
|
135
|
-
- solidgate.gemspec
|
|
136
136
|
homepage: https://github.com/carrfane/solidgate-ruby-sdk
|
|
137
137
|
licenses:
|
|
138
138
|
- MIT
|
data/solidgate.gemspec
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require_relative "lib/solidgate/version"
|
|
4
|
-
|
|
5
|
-
Gem::Specification.new do |spec|
|
|
6
|
-
spec.name = "solidgate-ruby-sdk"
|
|
7
|
-
spec.version = Solidgate::VERSION
|
|
8
|
-
spec.authors = ["Hector Carrillo"]
|
|
9
|
-
spec.email = ["carrfane@gmail.com"]
|
|
10
|
-
|
|
11
|
-
spec.summary = "Ruby SDK for Solidgate payment processing"
|
|
12
|
-
spec.description = "A Ruby SDK for integrating with the Solidgate payment gateway API"
|
|
13
|
-
spec.homepage = "https://github.com/carrfane/solidgate-ruby-sdk"
|
|
14
|
-
spec.license = "MIT"
|
|
15
|
-
spec.required_ruby_version = ">= 2.6.0"
|
|
16
|
-
|
|
17
|
-
spec.metadata["allowed_push_host"] = "https://rubygems.org"
|
|
18
|
-
spec.metadata["homepage_uri"] = spec.homepage
|
|
19
|
-
spec.metadata["source_code_uri"] = "https://github.com/carrfane/solidgate-ruby-sdk"
|
|
20
|
-
spec.metadata["changelog_uri"] = "https://github.com/carrfane/solidgate-ruby-sdk/blob/master/CHANGELOG.md"
|
|
21
|
-
|
|
22
|
-
# Specify which files should be added to the gem when it is released.
|
|
23
|
-
spec.files = Dir.chdir(__dir__) do
|
|
24
|
-
`git ls-files -z`.split("\x0").reject do |f|
|
|
25
|
-
(f == __FILE__) || f.match(%r{\A(?:(?:bin|test|spec|features)/|\.(?:git|circleci)|appveyor)})
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
spec.bindir = "exe"
|
|
30
|
-
spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
|
|
31
|
-
spec.require_paths = ["lib"]
|
|
32
|
-
|
|
33
|
-
# Runtime dependencies
|
|
34
|
-
spec.add_dependency "faraday"
|
|
35
|
-
spec.add_dependency "faraday-multipart"
|
|
36
|
-
|
|
37
|
-
#Development dependencies
|
|
38
|
-
spec.add_development_dependency "rspec", "~> 3.0"
|
|
39
|
-
spec.add_development_dependency "webmock", "~> 3.0"
|
|
40
|
-
spec.add_development_dependency "vcr", "~> 6.0"
|
|
41
|
-
spec.add_development_dependency "rubocop", "~> 1.0"
|
|
42
|
-
spec.add_development_dependency "pry", "~> 0.14"
|
|
43
|
-
end
|