ndenisj / longswipe-payment
Official PHP plugin for Longswipe payment integration
1.0.0
2025-02-09 07:54 UTC
Requires
- php: >=7.4
- ext-curl: *
- ext-json: *
README
A PHP plugin for integrating Longswipe payment voucher system into your application. This plugin provides simple methods to validate and process voucher payments.
Requirements
- PHP 7.4 or higher
- curl extension
- json extension
Installation
Install the package via composer:
composer require ndenisj/longswipe-payment
Quick Start
// PHP code block use Longswipe\Payment\LongswipeClient; use Longswipe\Payment\Exceptions\LongswipeException; // Initialize the client $client = new LongswipeClient('your-api-key', true); // true for sandbox, false for production // Example parameters $params = [ 'voucherCode' => 'VOUCHER123', 'amount' => 1000, 'receivingCurrencyId' => '2eedd32', // Replace with actual receiving currency ID, 'lockPin' => '1234', // Optional 'walletAddress' => '0x123...' // Optional ]; try { // Fetch voucher details $voucherDetails = $client->fetchVoucherDetails($params); // If details are okay, process the payment $paymentResult = $client->processVoucherPayment($params); } catch (LongswipeException $e) { echo "Error: " . $e->getMessage(); echo "Code: " . $e->getCode(); var_dump($e->getData()); }
Detailed Usage
-
- Initialize the Client
// For sandbox environment $client = new LongswipeClient('your-api-key', true); // For production environment $client = new LongswipeClient('your-api-key', false);
-
- Fetch Voucher Details
try { $params = [ 'voucherCode' => 'VOUCHER123', 'amount' => 1000, 'receivingCurrencyId' => '2eedd32', // Replace with actual receiving currency ID, 'lockPin' => '1234', // Optional 'walletAddress' => '0x123...' // Optional ]; $voucherDetails = $client->fetchVoucherDetails($params); if ($voucherDetails['status'] === 'success') { // Process voucher details $charges = $voucherDetails['data']['charges']; $voucher = $voucherDetails['data']['voucher']; } } catch (LongswipeException $e) { echo "Error: " . $e->getMessage(); if ($e->getErrorData()) { print_r($e->getErrorData()); } }
-
- Process Payment
try { $params = [ 'voucherCode' => 'VOUCHER123', 'amount' => 1000, 'receivingCurrencyId' => '2eedd32', // Replace with actual receiving currency ID, 'lockPin' => '1234', // Optional 'walletAddress' => '0x123...' // Optional ]; $paymentResult = $client->processVoucherPayment($params); if ($paymentResult['status'] === 'success') { // Payment successful echo "Payment processed successfully!"; } } catch (LongswipeException $e) { echo "Error: " . $e->getMessage(); if ($e->getErrorData()) { print_r($e->getErrorData()); } }
API Response Models
Fetch Voucher Details Response
{ "code": 0, "data": { "charges": { "amount": 0, "amountInWei": 0, "balanceAfterCharges": 0, "balanceAfterChargesInWei": 0, "gasLimitInWei": 0, "gasPriceInWei": 0, "processingFee": 0, "processingFeeInWei": 0, "totalGasCost": 0, "totalGasCostAndProcessingFee": 0, "totalGasCostAndProcessingFeeInWei": 0, "totalGasCostInWei": 0 }, "voucher": { "amount": 0, "balance": 0, "code": "string", "createdAt": "string", "createdForExistingUser": true, "createdForMerchant": true, "createdForNonExistingUser": true, "cryptoVoucherDetails": { "balance": "string", "codeHash": "string", "creator": "string", "isRedeemed": true, "transactionHash": "string", "value": "string" }, "generatedCurrency": { "abbrev": "string", "currencyType": "string", "id": "string", "image": "string", "isActive": true, "name": "string", "symbol": "string" } } }, "message": "string", "status": "string" }
Process Payment Response
{ "code": 0, "message": "string", "status": "string" }
Error Handling
The plugin uses the LongswipeException
class for error handling. Always wrap your API calls in try-catch blocks:
try { // Your API call here } catch (LongswipeException $e) { echo "Error Code: " . $e->getCode() . "\n"; echo "Error Message: " . $e->getMessage() . "\n"; if ($e->getErrorData()) { echo "Additional Error Data: "; print_r($e->getErrorData()); } }
Support
For support, please contact:
- Email: support@longswipe.com
- GitHub Issues: Create an issue
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.