A Go client library for the iPay.ua Payment Gateway API. This library provides a simple and reliable way to integrate iPay.ua payment processing into your Go applications.
- Simple and intuitive API
- Comprehensive error handling
- Full iPay.ua API coverage
- Thread-safe client implementation
- Configurable timeout and retry options
- Detailed logging support
go get github.com/stremovskyy/go-ipayComplete documentation is available in:
- Usage Guide - Comprehensive guide to using the library
- Code Examples - Real-world examples and best practices
For API reference and package documentation:
package main
import (
"github.com/stremovskyy/go-ipay"
)
func main() {
// Create a new client with default options
client := go_ipay.NewDefaultClient()
// Configure merchant details
merchant := &go_ipay.Merchant{
Name: "Your Merchant Name",
MerchantID: "your-merchant-id",
MerchantKey: "your-merchant-key",
}
// Use the client...
}The client can be configured with various options:
client := go_ipay.NewClient(
WithTimeout(time.Second * 30),
WithRetryAttempts(3),
WithLogger(customLogger),
)The library provides detailed error types for better error handling:
if err != nil {
switch e := err.(type) {
case *go_ipay.ValidationError:
// Handle validation error
case *go_ipay.APIError:
// Handle API error
default:
// Handle other errors
}
}Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Please make sure to update tests as appropriate.
This project is licensed under the MIT License - see the LICENSE file for details.
For security issues, please email security@yourdomain.com instead of using the issue tracker.
- iPay.ua for providing the payment gateway service
- Contributors who have helped improve this library
If you are having problems, please let us know by raising a new issue.