{"id":37265170,"url":"https://github.com/epikoder/laravel-payment-gateway","last_synced_at":"2026-01-16T00:05:48.571Z","repository":{"id":51335871,"uuid":"348055900","full_name":"epikoder/laravel-payment-gateway","owner":"epikoder","description":"Extendible payment gateway to manage different gateways in your application","archived":false,"fork":false,"pushed_at":"2021-07-17T19:23:58.000Z","size":53,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-01-14T14:55:55.200Z","etag":null,"topics":["laravel","payments"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/epikoder.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-03-15T17:05:11.000Z","updated_at":"2021-07-17T19:26:04.000Z","dependencies_parsed_at":"2022-08-25T13:50:11.867Z","dependency_job_id":null,"html_url":"https://github.com/epikoder/laravel-payment-gateway","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/epikoder/laravel-payment-gateway","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epikoder%2Flaravel-payment-gateway","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epikoder%2Flaravel-payment-gateway/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epikoder%2Flaravel-payment-gateway/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epikoder%2Flaravel-payment-gateway/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/epikoder","download_url":"https://codeload.github.com/epikoder/laravel-payment-gateway/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epikoder%2Flaravel-payment-gateway/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28474248,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T00:03:33.697Z","status":"ssl_error","status_checked_at":"2026-01-15T23:58:36.859Z","response_time":62,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["laravel","payments"],"created_at":"2026-01-16T00:05:47.799Z","updated_at":"2026-01-16T00:05:48.553Z","avatar_url":"https://github.com/epikoder.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Laravel Payment Gateway\n\n#### Extendible payment gateway to manage different gateways in your application.\n\nThis package allows you to manage different payment providers within your application with ease.\nand provides base to add any payment provider on-the-fly.\n\n### Default providers to be implemented\n\n\u003e Stripe\n\n\u003e Paypal\n\n\u003e Paystack\n\n## Getting started\n\n`composer require epikoder/laravel-payment-gateway`\n\nTo add a payment provider extend the PaymentProvider class\n\n`Epikoder\\LaravelPaymentGateway\\Abstract\\PaymentProvider`\n\n### Order | Package model\n\nImplement the interface `Epikoder\\LaravelPaymentGateway\\Contracts\\OrderInterface`\n\n```\nclass Order extends Model implements \\Epikoder\\LaravelPaymentGateway\\Contracts\\OrderInterface \n{\n // implements the required methods\n}\n```\n\n\n## Config\n### Add a provider\n```\n \"providers\" =\u003e [\n    'paystack' =\u003e \\Epikoder\\LaravelPaymentGateway\\Gateways\\Paystack::class,\n ],\n```\n\nTo add or use your own custom provider see the config\n\n\nAdd a provider setting\n```\n\"settings\" =\u003e [\n        \"paystack\" =\u003e [\n            'sk_key' =\u003e 'sk_test_6f220edf6029757d56079cb33b047a15da7b3bfd',\n                'pk_key' =\u003e 'pk_test_e8d8ffad357f6e7958b799ef96fb97965b13b959',\n                'currency' =\u003e Currencies::US_DOLLAR,\n            'channels' =\u003e [\n                'card', 'bank'\n            ],\n            'image' =\u003e 'https://tukuz.com/wp-content/uploads/2020/10/paystack-logo-vector.png',\n        ]\n    ],\n```\n\n### Disable provider from customer access\n```\n'disabled' =\u003e ['stripe',],\n```\n\n### Live and Test mode\nUsing live and test mode feature\n\n```\n\"settings\" =\u003e [\n        \"paystack\" =\u003e [\n            \"mode\" =\u003e \"test\",\n            'live' =\u003e [\n                'sk_key' =\u003e 'sk_test_6f220edf6029757d56079cb33b047a15da7b3bfd',\n                'pk_key' =\u003e 'pk_test_e8d8ffad357f6e7958b799ef96fb97965b13b959',\n                'currency' =\u003e Currencies::US_DOLLAR,\n            ],\n            'test' =\u003e [\n                'sk_key' =\u003e 'sk_test_6f220edf6029757d56079cb33b047a15da7b3bfd',\n                'pk_key' =\u003e 'pk_test_e8d8ffad357f6e7958b799ef96fb97965b13b959',\n                'currency' =\u003e Currencies::NAIRA,\n            ],\n            'channels' =\u003e [\n                'card', 'bank'\n            ],\n            'image' =\u003e 'https://tukuz.com/wp-content/uploads/2020/10/paystack-logo-vector.png',\n        ]\n    ],\n```\n### URLs and Routes\nThe values of the urls should be valid routes to your controller see [Complete an order](#complete-an-order)\n\n```\n \"returnUrl\" =\u003e 'checkout/success',   // offsite return url\n \"responseUrl\" =\u003e \"checkout/response\",\n```\n\n## Usage\n\n### Process an order\n```\n...\nuse Epikoder\\LaravelPaymentGateway\\PaymentService;\n...\n{\n    public function pay(PaymentService $paymentService)\n    {\n        /** @var \\Illuminate\\Http\\Response */\n        $res = $paymentService-\u003einit('provider', request()-\u003euser()-\u003etoArray)\n            -\u003eprocess(Order); // Order must implement order interface\n            \n        return $res;  // $res is either a redirect or provider response\n    }\n}\n```\n\n## Complete an order \n\n### Simple method\n```\nclass PayController extends \\Epikoder\\LaravelPaymentGateway\\PaymentGatewayController {\n\n  public function response() // Handles normal response\n    {\n     $content = $this-\u003eresponseData;\n     if (!$content) {\n      // No data\n     }\n     \n     return \\Illuminate\\Http\\Response($content);\n    }\n    \n    \n public function callbackResponse() // Handles off-site-response\n    {\n        $result = $this-\u003epaymentService-\u003ecomplete($this-\u003eprovider);\n        if ($this-\u003eprovider-\u003eidentifier() == 'paystack) {\n            log_paystack_transactions($result);\n        }\n        \n        if (!$result-\u003esuccessful) {\n            return view('payment.error');\n        }\n        \n        return view('payment.success');\n    }\n}\n```\n\n### Custom Method\n\n```\n{\n  public function response() // Handles normal response\n    {\n     $content = session()-\u003epull(config(\"gateway.responseUrl\"));\n     return \\Illuminate\\Http\\Response($content);\n    }\n    \n    public function callbackResponse() // Handles off-site-response\n    {\n        $result = $this-\u003epaymentService-\u003ecomplete($this-\u003epaymentService-\u003ecallbackProvider());\n        if ($result-\u003eprovider-\u003eidentifier() == 'paystack) {\n            log_paystack_transactions($result);\n        }\n        \n        if (!$result-\u003esuccessful) {\n            return view('payment.error');\n        }\n        \n        return view('payment.success');\n    }\n}\n\n```\nTransaction verification is handled by the PaymentProvider class.\n\n## Contributing\n\nThank you for considering contributing to this package. :)\n\n\n## License\n\nThe Laravel framework is open-sourced software licensed under the [MIT license](https://opensource.org/licenses/MIT).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fepikoder%2Flaravel-payment-gateway","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fepikoder%2Flaravel-payment-gateway","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fepikoder%2Flaravel-payment-gateway/lists"}