zoodpay / laravel-package
Laravel Package for processing payments through ZoodPay BNPL.
Installs: 12
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 3
Forks: 0
Open Issues: 0
Type:package
Requires
- ext-json: *
- guzzlehttp/guzzle: ~6.0 || ~7.0
- illuminate/support: ^7.0|^8.0
- zoodpay/api-php-sdk: >=1.0.1
Requires (Dev)
- orchestra/database: ^6.0
- orchestra/testbench: ^6.0
This package is auto-updated.
Last update: 2024-10-20 10:51:36 UTC
README
Install
composer require zoodpay/laravel-package
Usage
Check that ZoodpayServiceProvider is added in the config/app.php, or Manually add it.
'providers' => [ /* * Laravel Framework Service Providers... */ ... ZoodPay\ZoodpayServiceProvider::class, ]
Add zoodpay credentials to the config/services.php config file as below.
return [ ... 'zoodpay' => [ 'merchant_key' => "", 'merchant_secret' => "", 'merchant_salt' => "", 'merchant_api_url' => "", 'merchant_api_ver' => "", 'market_code' => "", 'currency' =>"", 'success_url' => "", 'error_url' => "" , 'pending_url' => "" ]
Available functions:
//Return the ZoodPay Config settings $this->app->zoodpay->getAPISettings() //Fetch the merchant configuration. $this->app->zoodpay->getZoodPayLimit() //To verify if ZoodPay need to be shown in Checkout Page $this->app->zoodpay->availableZoodPayService($amount) //Fetch the credit balance of a customer. $this->app->zoodpay->getCreditBalance($phone_number) //Return ZoodPay Signature for Transaction Signature Verification $this->app->zoodpay->getResponseSignature($amount, $merchant_reference_no, $transaction_id) //Return ZoodPay Refund Signature for Refund Signature Verification $this->app->zoodpay->getRefundResponseSignature($merchant_refund_reference, $refund_amount, $status, $refund_id) /* * Create Transaction Using ZoodPay, it will return ZoodPay API response. * Initiate the Models and set Values * $billing = new Model\BillingShippingInfo(); * $customer = new Model\CustomerInfo(); * $items[] = new Model\ItemsInfo(); * $order = new Model\OrderInfo(); * $shippingService = new Model\ShippingServiceInfo(); * $shipping = $billing; * */ $this->app->zoodpay->createTransaction($billing, $customer, $items, $order, $shipping, $shippingService) /* * Set Delivery Date for the Paid Transaction, it will return ZoodPay API response. * Init the Model and set Values * Model\DeliveryDate(); * * */ $this->app->zoodpay->setDeliveryDate($deliveryModel); /* * Create Refund for the Paid Transaction, it will return ZoodPay API response. * Init the Model and set Values * Model\CreateRefund() * * */ $this->app->zoodpay->createRefund($refundModel); /* * Get Refund Status by Refund id, it will return ZoodPay API response. * Init the Model and set Values * Model\CreateRefund() * * */ $this->app->zoodpay->getRefundStatusById($refund_id);
/* 1) * To check if ZoodPay need to be Shown in Checkout Page, call this function * and based on the available response show the corresponding service */ $this->app->zoodpay->availableZoodPayService($amount) /* 2) * User Select ZoodPay Service and Click Pay, Prepare the request and Create Transaction * and function will return ZoodPay API response. * Initiate the Models and set Values * $billing = new Model\BillingShippingInfo(); * $customer = new Model\CustomerInfo(); * $items[] = new Model\ItemsInfo(); * $order = new Model\OrderInfo(); * $shippingService = new Model\ShippingServiceInfo(); * $shipping = $billing; * * API Response : * * Transaction created: {"session_token":"YYYYYYYYYYYYYYYYYYYY","transaction_id":"407879856581528","expiry_time":"2021-12-22T16:58:49Z","payment_url":"https://b2c.zoodpay.com/index.php?XXXXXXXXXXXXXXXXXXXXXXXXXXXX","signature":"96496a0ae20cf58d936d195fd1d0b19526201313f7af97aae3e99610e314294dc3d66c9d3881d06994af273b25bb115bf5eef5b21806f24b5bd61b37f2387be7"} * * */ $this->app->zoodpay->createTransaction($billing, $customer, $items, $order, $shipping, $shippingService); /* * 3) * Verify the Signature by Calling below function and if the signature match, * do necessary changes and save transaction_id as reference and redirect user to ZoodPay UI . * * */ $this->app->zoodpay->getResponseSignature($amount, $merchant_reference_no, $transaction_id) /* * 4) * User will be redirected to the Callback Http/Controller/Callback.php, * change your Order Status Accordingly in each Action. */ /* * 5) * Set Delivery Date for the Paid Transaction, it will return ZoodPay API response. * Init the Model and set Values * Model\DeliveryDate(); * * */ $this->app->zoodpay->setDeliveryDate($deliveryModel); /* * 6) * Create Refund for the Paid Transaction, it will return ZoodPay API response. * Init the Model and set Values * Model\CreateRefund() * * */ $this->app->zoodpay->createRefund($refundModel);
Testing
Run the tests with: load the phpunit.xml and change
$ /usr/bin/php /path to laravel/vendor/phpunit/phpunit/phpunit --configuration /path to laravel/packages/zoodpay-laravel/phpunit.xml
Changelog
Please see CHANGELOG for more information what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Credits
Security
If you discover any security-related issues, please email mohammadali.namazi@zoodpay.com instead of using the issue tracker.
License
The MIT License (MIT). Please see License File for more information.