Example Python
This page provides a Python code example to demonstrate how to construct a REST API URL for the iPay payment gateway. The code shows how to programmatically define the base URL and parameters, then combine them to create a complete API URL that can be used to initiate payment requests.
Python Code Snippet
import urllib.parse
base_url = "https://us-central1-nfgdatabasedemo.cloudfunctions.net/app/api/invoice_external?"
params = {
"apiKey": "jBQyeHEPJUhj1pRP7KPlShkw5Oc99g23",
"customId": "38UUAR23DVUA",
"onRampProvider": "provider1",
"defaultFiatCurrency": "USD",
"defaultFiatAmount": "108",
"colorCode": "D000F2",
"screenTitle": "DepositTest"
}
query_string = urllib.parse.urlencode(params)
full_url = base_url + query_string
print(full_url)
Code Explanation
This code snippet performs the following steps:
-
Import Necessary Modules:
urllib.parse: A Python module used to encode the parameters into a URL-safe query string.
-
Define the Base URL:
base_url: The endpoint for the iPay API, where payment requests are sent.
-
Define Parameters:
params: A dictionary containing the required and optional parameters:apiKey: Your unique API key for authentication, obtained from your iPay dashboard at dash.i-pay.io.customId: A unique identifier for the transaction or user, used for tracking.onRampProvider: The payment provider processing the transaction (useprovider1unless instructed otherwise by iPay).defaultFiatCurrency: The default currency for the payment (e.g.,USDfor US dollars).defaultFiatAmount: The default payment amount in the specified currency (e.g.,108for $108).colorCode: A hexadecimal color code (e.g.,D000F2) to customize the payment widget’s appearance.screenTitle: A custom title for the payment screen (e.g.,DepositTest).
-
Construct the Query String:
urllib.parse.urlencode(params)converts the parameters dictionary into a URL-encoded query string, ensuring special characters are properly handled.
-
Build the Full URL:
- Concatenate the
base_urlandquery_stringto form the complete API URL.
- Concatenate the
-
Print the URL:
- Output the
full_urlto the console, which can be used to make API requests or tested in a browser.
- Output the
Integration into Your Application
To use this code in your application:
- Replace Placeholder Values: Update the
paramsdictionary with your actual API key, custom ID, and other relevant values. Ensure your API key is valid by checking your iPay dashboard at dash.i-pay.io. - Make HTTP Requests: Use a library like
requeststo send a GET request to the generated URL:import requests
response = requests.get(full_url)
if response.status_code == 200:
print(response.json())
else:
print(f"Error: {response.status_code}") - Handle Responses: Process the API response to manage the payment flow, such as redirecting to the payment widget or handling errors. After the customer completes the payment they are sent to the redirect URL you registered with iPay; credit the deposit only when the HTTP POST callback arrives.
- Test the URL: Copy the generated URL and test it in Postman or a browser to verify the payment widget loads correctly.
Tips for Success
- Ensure all required parameters (
apiKey,customId,onRampProvider) are included to avoid errors. - For detailed parameter descriptions, refer to the Parameters section.
- If you encounter issues, contact iPay support at [email protected] to verify your API key or server configuration.
This example provides a foundation for integrating iPay’s API into your Python-based applications, enabling seamless payment processing.