dk_payment_gateway 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 +7 -0
- data/.rspec +4 -0
- data/.rspec_status +11 -0
- data/API_REFERENCE.md +458 -0
- data/CHANGELOG.md +64 -0
- data/DEVELOPMENT.md +380 -0
- data/EXAMPLES.md +491 -0
- data/FILE_STRUCTURE.md +407 -0
- data/Gemfile +13 -0
- data/INSTALLATION.md +460 -0
- data/LICENSE +22 -0
- data/PROJECT_OVERVIEW.md +314 -0
- data/QUICK_START.md +186 -0
- data/README.md +296 -0
- data/Rakefile +9 -0
- data/SUMMARY.md +285 -0
- data/dk_payment_gateway.gemspec +40 -0
- data/examples/README.md +199 -0
- data/examples/generate_qr.rb +110 -0
- data/examples/intra_transfer.rb +114 -0
- data/examples/simple_payment.rb +102 -0
- data/lib/dk_payment_gateway/authentication.rb +102 -0
- data/lib/dk_payment_gateway/client.rb +139 -0
- data/lib/dk_payment_gateway/configuration.rb +32 -0
- data/lib/dk_payment_gateway/errors.rb +39 -0
- data/lib/dk_payment_gateway/intra_transaction.rb +147 -0
- data/lib/dk_payment_gateway/pull_payment.rb +155 -0
- data/lib/dk_payment_gateway/qr_payment.rb +98 -0
- data/lib/dk_payment_gateway/signature.rb +72 -0
- data/lib/dk_payment_gateway/transaction_status.rb +127 -0
- data/lib/dk_payment_gateway/utils.rb +161 -0
- data/lib/dk_payment_gateway/version.rb +5 -0
- data/lib/dk_payment_gateway.rb +28 -0
- metadata +160 -0
data/FILE_STRUCTURE.md
ADDED
|
@@ -0,0 +1,407 @@
|
|
|
1
|
+
# DK Payment Gateway - Complete File Structure
|
|
2
|
+
|
|
3
|
+
## Directory Tree
|
|
4
|
+
|
|
5
|
+
```
|
|
6
|
+
dk_payment_gateway/
|
|
7
|
+
│
|
|
8
|
+
├── 📄 Configuration Files
|
|
9
|
+
│ ├── dk_payment_gateway.gemspec # Gem specification
|
|
10
|
+
│ ├── Gemfile # Dependency management
|
|
11
|
+
│ ├── Rakefile # Build tasks
|
|
12
|
+
│ ├── .gitignore # Git ignore rules
|
|
13
|
+
│ ├── .rspec # RSpec configuration
|
|
14
|
+
│ └── LICENSE # MIT License
|
|
15
|
+
│
|
|
16
|
+
├── 📚 Documentation (11 files)
|
|
17
|
+
│ ├── README.md # Main documentation
|
|
18
|
+
│ ├── INSTALLATION.md # Installation guide
|
|
19
|
+
│ ├── QUICK_START.md # Quick start guide
|
|
20
|
+
│ ├── EXAMPLES.md # Usage examples
|
|
21
|
+
│ ├── API_REFERENCE.md # Complete API reference
|
|
22
|
+
│ ├── DEVELOPMENT.md # Developer guide
|
|
23
|
+
│ ├── SUMMARY.md # Project summary
|
|
24
|
+
│ ├── PROJECT_OVERVIEW.md # Project overview
|
|
25
|
+
│ ├── FILE_STRUCTURE.md # This file
|
|
26
|
+
│ └── CHANGELOG.md # Version history
|
|
27
|
+
│
|
|
28
|
+
├── 📁 lib/ - Source Code
|
|
29
|
+
│ ├── dk_payment_gateway.rb # Main entry point
|
|
30
|
+
│ │
|
|
31
|
+
│ └── dk_payment_gateway/
|
|
32
|
+
│ ├── version.rb # Version constant
|
|
33
|
+
│ ├── configuration.rb # Configuration class
|
|
34
|
+
│ ├── errors.rb # Custom exceptions
|
|
35
|
+
│ ├── utils.rb # Utility functions
|
|
36
|
+
│ ├── client.rb # Main client class
|
|
37
|
+
│ ├── authentication.rb # Auth & token management
|
|
38
|
+
│ ├── signature.rb # Request signing
|
|
39
|
+
│ ├── pull_payment.rb # Pull payment operations
|
|
40
|
+
│ ├── intra_transaction.rb # Intra-bank transfers
|
|
41
|
+
│ ├── qr_payment.rb # QR code generation
|
|
42
|
+
│ └── transaction_status.rb # Status verification
|
|
43
|
+
│
|
|
44
|
+
├── 📁 spec/ - Test Suite
|
|
45
|
+
│ ├── spec_helper.rb # Test configuration
|
|
46
|
+
│ ├── dk_payment_gateway_spec.rb # Main module tests
|
|
47
|
+
│ └── configuration_spec.rb # Configuration tests
|
|
48
|
+
│
|
|
49
|
+
└── 📁 examples/ - Example Applications
|
|
50
|
+
├── README.md # Examples documentation
|
|
51
|
+
├── simple_payment.rb # Pull payment example
|
|
52
|
+
├── intra_transfer.rb # Transfer example
|
|
53
|
+
└── generate_qr.rb # QR generation example
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## File Descriptions
|
|
57
|
+
|
|
58
|
+
### Configuration Files (6 files)
|
|
59
|
+
|
|
60
|
+
#### `dk_payment_gateway.gemspec`
|
|
61
|
+
- Gem specification and metadata
|
|
62
|
+
- Dependencies declaration
|
|
63
|
+
- Version information
|
|
64
|
+
- Author and license details
|
|
65
|
+
|
|
66
|
+
#### `Gemfile`
|
|
67
|
+
- Runtime dependencies
|
|
68
|
+
- Development dependencies
|
|
69
|
+
- Source configuration
|
|
70
|
+
|
|
71
|
+
#### `Rakefile`
|
|
72
|
+
- Build automation tasks
|
|
73
|
+
- Test runner configuration
|
|
74
|
+
- Default task setup
|
|
75
|
+
|
|
76
|
+
#### `.gitignore`
|
|
77
|
+
- Git ignore patterns
|
|
78
|
+
- Excludes sensitive files
|
|
79
|
+
- Excludes build artifacts
|
|
80
|
+
|
|
81
|
+
#### `.rspec`
|
|
82
|
+
- RSpec test configuration
|
|
83
|
+
- Output formatting
|
|
84
|
+
- Test options
|
|
85
|
+
|
|
86
|
+
#### `LICENSE`
|
|
87
|
+
- MIT License text
|
|
88
|
+
- Copyright information
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
### Documentation Files (11 files)
|
|
93
|
+
|
|
94
|
+
#### `README.md` (Main Documentation)
|
|
95
|
+
- Installation instructions
|
|
96
|
+
- Basic usage examples
|
|
97
|
+
- Configuration guide
|
|
98
|
+
- Error handling
|
|
99
|
+
- Bank codes reference
|
|
100
|
+
- MCC codes reference
|
|
101
|
+
|
|
102
|
+
#### `INSTALLATION.md` (Installation Guide)
|
|
103
|
+
- System requirements
|
|
104
|
+
- Installation methods
|
|
105
|
+
- Configuration steps
|
|
106
|
+
- Verification procedures
|
|
107
|
+
- Framework-specific setup
|
|
108
|
+
- Troubleshooting guide
|
|
109
|
+
|
|
110
|
+
#### `QUICK_START.md` (Quick Start)
|
|
111
|
+
- 5-minute setup guide
|
|
112
|
+
- Common use cases
|
|
113
|
+
- Basic examples
|
|
114
|
+
- Error handling patterns
|
|
115
|
+
|
|
116
|
+
#### `EXAMPLES.md` (Usage Examples)
|
|
117
|
+
- Comprehensive examples
|
|
118
|
+
- Pull payment workflows
|
|
119
|
+
- Intra-bank transfers
|
|
120
|
+
- QR code generation
|
|
121
|
+
- Transaction status checks
|
|
122
|
+
- Complete workflows
|
|
123
|
+
- Best practices
|
|
124
|
+
|
|
125
|
+
#### `API_REFERENCE.md` (API Reference)
|
|
126
|
+
- Complete API documentation
|
|
127
|
+
- Method signatures
|
|
128
|
+
- Parameter descriptions
|
|
129
|
+
- Return values
|
|
130
|
+
- Error handling
|
|
131
|
+
- Code examples
|
|
132
|
+
|
|
133
|
+
#### `DEVELOPMENT.md` (Developer Guide)
|
|
134
|
+
- Development setup
|
|
135
|
+
- Project structure
|
|
136
|
+
- Running tests
|
|
137
|
+
- Code style guide
|
|
138
|
+
- Adding features
|
|
139
|
+
- Debugging tips
|
|
140
|
+
- Best practices
|
|
141
|
+
|
|
142
|
+
#### `SUMMARY.md` (Project Summary)
|
|
143
|
+
- Feature overview
|
|
144
|
+
- Architecture diagram
|
|
145
|
+
- Module structure
|
|
146
|
+
- API coverage
|
|
147
|
+
- Dependencies
|
|
148
|
+
- Future enhancements
|
|
149
|
+
|
|
150
|
+
#### `PROJECT_OVERVIEW.md` (Project Overview)
|
|
151
|
+
- Project information
|
|
152
|
+
- Key features
|
|
153
|
+
- Technical stack
|
|
154
|
+
- Statistics
|
|
155
|
+
- Use cases
|
|
156
|
+
- Quality metrics
|
|
157
|
+
|
|
158
|
+
#### `FILE_STRUCTURE.md` (This File)
|
|
159
|
+
- Complete file listing
|
|
160
|
+
- File descriptions
|
|
161
|
+
- Purpose of each file
|
|
162
|
+
|
|
163
|
+
#### `CHANGELOG.md` (Version History)
|
|
164
|
+
- Version history
|
|
165
|
+
- Feature additions
|
|
166
|
+
- Bug fixes
|
|
167
|
+
- Breaking changes
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
### Source Code Files (11 files)
|
|
172
|
+
|
|
173
|
+
#### `lib/dk_payment_gateway.rb`
|
|
174
|
+
**Purpose:** Main entry point
|
|
175
|
+
**Lines:** ~25
|
|
176
|
+
**Features:**
|
|
177
|
+
- Module definition
|
|
178
|
+
- Requires all components
|
|
179
|
+
- Configuration method
|
|
180
|
+
- Client factory method
|
|
181
|
+
|
|
182
|
+
#### `lib/dk_payment_gateway/version.rb`
|
|
183
|
+
**Purpose:** Version constant
|
|
184
|
+
**Lines:** ~5
|
|
185
|
+
**Features:**
|
|
186
|
+
- VERSION constant
|
|
187
|
+
|
|
188
|
+
#### `lib/dk_payment_gateway/configuration.rb`
|
|
189
|
+
**Purpose:** Configuration management
|
|
190
|
+
**Lines:** ~30
|
|
191
|
+
**Features:**
|
|
192
|
+
- Configuration attributes
|
|
193
|
+
- Default values
|
|
194
|
+
- Validation methods
|
|
195
|
+
- Missing fields detection
|
|
196
|
+
|
|
197
|
+
#### `lib/dk_payment_gateway/errors.rb`
|
|
198
|
+
**Purpose:** Custom exceptions
|
|
199
|
+
**Lines:** ~40
|
|
200
|
+
**Features:**
|
|
201
|
+
- Error hierarchy
|
|
202
|
+
- ConfigurationError
|
|
203
|
+
- AuthenticationError
|
|
204
|
+
- InvalidParameterError
|
|
205
|
+
- TransactionError
|
|
206
|
+
- NetworkError
|
|
207
|
+
- SignatureError
|
|
208
|
+
- APIError
|
|
209
|
+
|
|
210
|
+
#### `lib/dk_payment_gateway/utils.rb`
|
|
211
|
+
**Purpose:** Utility functions
|
|
212
|
+
**Lines:** ~160
|
|
213
|
+
**Features:**
|
|
214
|
+
- Request ID generation
|
|
215
|
+
- Timestamp formatting
|
|
216
|
+
- Validation helpers
|
|
217
|
+
- Bank code mapping
|
|
218
|
+
- MCC code reference
|
|
219
|
+
- Data sanitization
|
|
220
|
+
- Sensitive data masking
|
|
221
|
+
|
|
222
|
+
#### `lib/dk_payment_gateway/client.rb`
|
|
223
|
+
**Purpose:** Main client class
|
|
224
|
+
**Lines:** ~140
|
|
225
|
+
**Features:**
|
|
226
|
+
- HTTP request handling
|
|
227
|
+
- Response processing
|
|
228
|
+
- Feature module access
|
|
229
|
+
- Error handling
|
|
230
|
+
- Header management
|
|
231
|
+
|
|
232
|
+
#### `lib/dk_payment_gateway/authentication.rb`
|
|
233
|
+
**Purpose:** Authentication
|
|
234
|
+
**Lines:** ~95
|
|
235
|
+
**Features:**
|
|
236
|
+
- Token fetching
|
|
237
|
+
- Private key retrieval
|
|
238
|
+
- Credential validation
|
|
239
|
+
- Request ID generation
|
|
240
|
+
|
|
241
|
+
#### `lib/dk_payment_gateway/signature.rb`
|
|
242
|
+
**Purpose:** Request signing
|
|
243
|
+
**Lines:** ~65
|
|
244
|
+
**Features:**
|
|
245
|
+
- RS256 signing
|
|
246
|
+
- Header generation
|
|
247
|
+
- Timestamp creation
|
|
248
|
+
- Nonce generation
|
|
249
|
+
- Payload encoding
|
|
250
|
+
|
|
251
|
+
#### `lib/dk_payment_gateway/pull_payment.rb`
|
|
252
|
+
**Purpose:** Pull payment operations
|
|
253
|
+
**Lines:** ~165
|
|
254
|
+
**Features:**
|
|
255
|
+
- Payment authorization
|
|
256
|
+
- Debit requests
|
|
257
|
+
- STAN generation
|
|
258
|
+
- Parameter validation
|
|
259
|
+
- Response handling
|
|
260
|
+
|
|
261
|
+
#### `lib/dk_payment_gateway/intra_transaction.rb`
|
|
262
|
+
**Purpose:** Intra-bank transfers
|
|
263
|
+
**Lines:** ~145
|
|
264
|
+
**Features:**
|
|
265
|
+
- Account inquiry
|
|
266
|
+
- Fund transfer
|
|
267
|
+
- Parameter validation
|
|
268
|
+
- Response handling
|
|
269
|
+
|
|
270
|
+
#### `lib/dk_payment_gateway/qr_payment.rb`
|
|
271
|
+
**Purpose:** QR code generation
|
|
272
|
+
**Lines:** ~90
|
|
273
|
+
**Features:**
|
|
274
|
+
- Static QR generation
|
|
275
|
+
- Dynamic QR generation
|
|
276
|
+
- Image saving
|
|
277
|
+
- Parameter validation
|
|
278
|
+
|
|
279
|
+
#### `lib/dk_payment_gateway/transaction_status.rb`
|
|
280
|
+
**Purpose:** Status verification
|
|
281
|
+
**Lines:** ~120
|
|
282
|
+
**Features:**
|
|
283
|
+
- Current day status
|
|
284
|
+
- Historical status
|
|
285
|
+
- Date validation
|
|
286
|
+
- Response handling
|
|
287
|
+
|
|
288
|
+
---
|
|
289
|
+
|
|
290
|
+
### Test Files (3 files)
|
|
291
|
+
|
|
292
|
+
#### `spec/spec_helper.rb`
|
|
293
|
+
**Purpose:** Test configuration
|
|
294
|
+
**Lines:** ~35
|
|
295
|
+
**Features:**
|
|
296
|
+
- RSpec configuration
|
|
297
|
+
- WebMock setup
|
|
298
|
+
- VCR configuration
|
|
299
|
+
- Test helpers
|
|
300
|
+
|
|
301
|
+
#### `spec/dk_payment_gateway_spec.rb`
|
|
302
|
+
**Purpose:** Main module tests
|
|
303
|
+
**Lines:** ~30
|
|
304
|
+
**Features:**
|
|
305
|
+
- Version test
|
|
306
|
+
- Configuration test
|
|
307
|
+
- Client factory test
|
|
308
|
+
|
|
309
|
+
#### `spec/configuration_spec.rb`
|
|
310
|
+
**Purpose:** Configuration tests
|
|
311
|
+
**Lines:** ~45
|
|
312
|
+
**Features:**
|
|
313
|
+
- Default values test
|
|
314
|
+
- Validation test
|
|
315
|
+
- Missing fields test
|
|
316
|
+
|
|
317
|
+
---
|
|
318
|
+
|
|
319
|
+
### Example Files (4 files)
|
|
320
|
+
|
|
321
|
+
#### `examples/README.md`
|
|
322
|
+
**Purpose:** Examples documentation
|
|
323
|
+
**Lines:** ~200
|
|
324
|
+
**Features:**
|
|
325
|
+
- Prerequisites
|
|
326
|
+
- Running instructions
|
|
327
|
+
- Customization guide
|
|
328
|
+
- Troubleshooting
|
|
329
|
+
|
|
330
|
+
#### `examples/simple_payment.rb`
|
|
331
|
+
**Purpose:** Pull payment example
|
|
332
|
+
**Lines:** ~95
|
|
333
|
+
**Features:**
|
|
334
|
+
- Complete payment flow
|
|
335
|
+
- OTP handling
|
|
336
|
+
- Error handling
|
|
337
|
+
- User interaction
|
|
338
|
+
|
|
339
|
+
#### `examples/intra_transfer.rb`
|
|
340
|
+
**Purpose:** Transfer example
|
|
341
|
+
**Lines:** ~110
|
|
342
|
+
**Features:**
|
|
343
|
+
- Account verification
|
|
344
|
+
- Transfer execution
|
|
345
|
+
- Confirmation prompt
|
|
346
|
+
- Status checking
|
|
347
|
+
|
|
348
|
+
#### `examples/generate_qr.rb`
|
|
349
|
+
**Purpose:** QR generation example
|
|
350
|
+
**Lines:** ~100
|
|
351
|
+
**Features:**
|
|
352
|
+
- Static QR generation
|
|
353
|
+
- Dynamic QR generation
|
|
354
|
+
- User input handling
|
|
355
|
+
- File saving
|
|
356
|
+
|
|
357
|
+
---
|
|
358
|
+
|
|
359
|
+
## File Statistics
|
|
360
|
+
|
|
361
|
+
### By Type
|
|
362
|
+
- **Ruby Files:** 14
|
|
363
|
+
- **Documentation Files:** 11
|
|
364
|
+
- **Configuration Files:** 6
|
|
365
|
+
- **Test Files:** 3
|
|
366
|
+
- **Total Files:** 34
|
|
367
|
+
|
|
368
|
+
### By Category
|
|
369
|
+
- **Source Code:** 11 files (~1,200 lines)
|
|
370
|
+
- **Tests:** 3 files (~110 lines)
|
|
371
|
+
- **Examples:** 4 files (~505 lines)
|
|
372
|
+
- **Documentation:** 11 files (~3,500 lines)
|
|
373
|
+
- **Configuration:** 6 files (~100 lines)
|
|
374
|
+
|
|
375
|
+
### Total Lines of Code
|
|
376
|
+
- **Ruby Code:** ~1,815 lines
|
|
377
|
+
- **Documentation:** ~3,500 lines
|
|
378
|
+
- **Total:** ~5,315 lines
|
|
379
|
+
|
|
380
|
+
## Key Features by File
|
|
381
|
+
|
|
382
|
+
### Authentication & Security
|
|
383
|
+
- `authentication.rb` - Token & key management
|
|
384
|
+
- `signature.rb` - Request signing
|
|
385
|
+
- `errors.rb` - Error handling
|
|
386
|
+
|
|
387
|
+
### Payment Operations
|
|
388
|
+
- `pull_payment.rb` - Payment gateway
|
|
389
|
+
- `intra_transaction.rb` - Transfers
|
|
390
|
+
- `qr_payment.rb` - QR codes
|
|
391
|
+
- `transaction_status.rb` - Status checks
|
|
392
|
+
|
|
393
|
+
### Infrastructure
|
|
394
|
+
- `client.rb` - HTTP client
|
|
395
|
+
- `configuration.rb` - Settings
|
|
396
|
+
- `utils.rb` - Helpers
|
|
397
|
+
|
|
398
|
+
### Quality Assurance
|
|
399
|
+
- `spec/` - Test suite
|
|
400
|
+
- `examples/` - Working examples
|
|
401
|
+
- Documentation - Comprehensive guides
|
|
402
|
+
|
|
403
|
+
---
|
|
404
|
+
|
|
405
|
+
**Last Updated:** October 31, 2025
|
|
406
|
+
**Version:** 0.1.0
|
|
407
|
+
|
data/Gemfile
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
source "https://rubygems.org"
|
|
4
|
+
|
|
5
|
+
# Specify your gem's dependencies in dk_payment_gateway.gemspec
|
|
6
|
+
gemspec
|
|
7
|
+
|
|
8
|
+
gem "rake", "~> 13.0"
|
|
9
|
+
gem "rspec", "~> 3.0"
|
|
10
|
+
gem "webmock", "~> 3.18"
|
|
11
|
+
gem "vcr", "~> 6.1"
|
|
12
|
+
gem "rubocop", "~> 1.21"
|
|
13
|
+
|