The FIB Payment SDK provides seamless integration with the FIB payment system, empowering developers to streamline payment transactions and facilitate secure refunds within their applications.
- Features
- Installation
- Configuration
- Usage of the SDK
- Documentation
- Testing
- Contributing
- License
- Support
- Acknowledgments
- Versioning
- FAQ
- Payment Transactions: Enable users to make payments securely through the FIB payment system.
- Refund Processing: Process refunds securely and efficiently.
- Payment Status Checking: Track the status of payments accurately.
- Payment Cancellation: Cancel payments securely and easily.
Install the SDK using pip:
pip install fib-python-payment-sdk
You can clone the repository and manually include the SDK in your project:
git clone https://github.com/First-Iraqi-Bank/fib-python-payment-sdk.git
Ensure to include the SDK directory in your Python path.
Set the following environment variables to configure the SDK:
FIB_API_KEY
: Your FIB payment API key.FIB_API_SECRET
: Your FIB payment API secret.FIB_BASE_URL
: Base URL for the FIB payment API.FIB_GRANT_TYPE
: Authentication grant type (default: client_credentials).FIB_REFUNDABLE_FOR
: Transaction refund period (default: P7D).FIB_CURRENCY
: Transaction currency (default: IQD).FIB_CALLBACK_URL
: Callback URL for handling payment notifications.
Got it! You want to include the functionality as part of the SDK usage examples in the documentation, without referencing an actual file. Here’s how you can structure that:
Below is a basic example of how to use the SDK to handle payment operations directly within your application.
This example demonstrates how to perform common payment operations, including creating a payment, checking its status, issuing a refund, and canceling a payment.
-
Setup Environment Variables: Ensure you have loaded the necessary environment variables for the SDK.
from dotenv import load_dotenv import os # Load environment variables from the .env file load_dotenv()
-
Initialize Services: Create instances of the authentication and payment integration services.
from fib_python_payment_sdk.services.fib_auth_integration_service import FIBAuthIntegrationService from fib_python_payment_sdk.services.fib_payment_integration_service import FIBPaymentIntegrationService # Initialize the authentication service auth_service = FIBAuthIntegrationService() # Initialize the payment integration service payment_service = FIBPaymentIntegrationService(auth_service)
-
Create a Payment:
To create a payment, use the following function:
def create_payment(amount, callback_url, description): try: payment_response = payment_service.create_payment(amount, callback_url, description) payment_details = { 'fib_payment_id': payment_response['paymentId'], 'readable_code': payment_response['readableCode'], 'personal_app_link': payment_response['personalAppLink'], 'valid_until': payment_response['validUntil'], } return payment_details except Exception as e: print("Error during payment creation:", str(e)) return None
Example usage:
payment_details = create_payment(1000, 'http://localhost/callback', 'Test payment description') print("Payment Details:", payment_details)
-
Check Payment Status:
To check the status of a payment:
def check_payment_status(payment_id): try: status = payment_service.check_payment_status(payment_id) return status except Exception as e: print("Error during payment status check:", str(e)) return None
Example usage:
if payment_details: payment_id = payment_details['fib_payment_id'] status = check_payment_status(payment_id) print("Payment Status:", status)
-
Refund a Payment:
To refund a payment:
def refund_payment(payment_id): try: refund_response = payment_service.refund(payment_id) return refund_response.status_code except Exception as e: print("Error during refund:", str(e)) return None
Example usage:
if payment_details: payment_id = payment_details['fib_payment_id'] refund_status_code = refund_payment(payment_id) print("Refund Status Code:", refund_status_code)
-
Cancel a Payment:
To cancel a payment:
def cancel_payment(payment_id): try: cancel_response = payment_service.cancel(payment_id) return cancel_response.status_code except Exception as e: print("Error during cancellation:", str(e)) return None
Example usage:
if payment_details: payment_id = payment_details['fib_payment_id'] cancel_status_code = cancel_payment(payment_id) print("Cancel Status Code:", cancel_status_code)
This structure provides clear examples of how to use the SDK for payment operations, focusing on practical usage rather than code organization in a specific file.
For more detailed documentation, refer to the FIB Online Payment API Documentation.
Run the SDK tests using unittest
:
python -m unittest discover -s tests -p 'test_*.py'
Run a specific test case:
python -m unittest tests.test_module.TestClassName
Run a specific test method:
python -m unittest tests.test_module.TestClassName.test_method_name
To run tests with custom formatting, use:
python test.py
Contributions are welcome! Please refer to the CONTRIBUTING.md
for guidelines.
This project is licensed under the MIT License. See the LICENSE.md file for details.
For support, contact support@fib-payment.com.
Thanks to the FIB Payment development team and the requests
library.
We follow Semantic Versioning for releases.
Q: How do I get an API key for the FIB Payment system?
A: Contact support@fib-payment.com to request an API key.
Q: Can I use this SDK in production?
A: Yes, but ensure it is correctly configured and tested for your environment.