{"id":32273388,"url":"https://github.com/maxzeno/paystack_flutterwave_url","last_synced_at":"2026-02-21T16:01:18.739Z","repository":{"id":271520469,"uuid":"912893099","full_name":"Maxzeno/paystack_flutterwave_url","owner":"Maxzeno","description":"A Flutter package for Paystack and Flutterwave checkout url payment.","archived":false,"fork":false,"pushed_at":"2025-08-01T09:27:55.000Z","size":554,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-22T23:30:52.210Z","etag":null,"topics":["dart","flutter","flutterwave","payment","paystack","stripe"],"latest_commit_sha":null,"homepage":"https://pub.dev/packages/paystack_flutterwave_url","language":"C++","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/Maxzeno.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-01-06T15:57:41.000Z","updated_at":"2025-08-01T09:27:59.000Z","dependencies_parsed_at":"2025-01-08T09:32:09.824Z","dependency_job_id":"d4842332-dd1f-4a72-8c44-40c88124729e","html_url":"https://github.com/Maxzeno/paystack_flutterwave_url","commit_stats":null,"previous_names":["maxzeno/paystack_flutterwave_url"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Maxzeno/paystack_flutterwave_url","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Maxzeno%2Fpaystack_flutterwave_url","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Maxzeno%2Fpaystack_flutterwave_url/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Maxzeno%2Fpaystack_flutterwave_url/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Maxzeno%2Fpaystack_flutterwave_url/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Maxzeno","download_url":"https://codeload.github.com/Maxzeno/paystack_flutterwave_url/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Maxzeno%2Fpaystack_flutterwave_url/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29685019,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-21T15:51:39.154Z","status":"ssl_error","status_checked_at":"2026-02-21T15:49:03.425Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":["dart","flutter","flutterwave","payment","paystack","stripe"],"created_at":"2025-10-22T23:20:26.891Z","updated_at":"2026-02-21T16:01:18.733Z","avatar_url":"https://github.com/Maxzeno.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Paystack and Flutterwave URL Payment Integration\n\n# 💳 Paystack \u0026 Flutterwave Checkout for Flutter\n\nA Flutter package to facilitate payments via **Paystack** and **Flutterwave** checkout URLs. This package enables you to seamlessly redirect users to the respective payment gateways and handle success or failure callbacks.\n\n---\n\n## ✨ Features\n\n- 🔁 Redirect users to hosted **Paystack** or **Flutterwave** checkout pages.\n- ⚙️ Supports:\n  - Checkout URL generated from your **backend** (recommended).\n  - Checkout URL generated **from the app** (requires secret key).\n- ✅ Handles:\n  - **Success** callback\n  - **Failure** or **Cancel** callback\n\n\u003cp align=\"center\"\u003e\n\n\u003ca href=\"https://pub.dev/packages/paystack_flutterwave_url\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/Maxzeno/paystack_flutterwave_url/main/asset/paystack1.png\" alt=\"Paystack\" height=\"400\" width=\"200\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://pub.dev/packages/paystack_flutterwave_url\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/Maxzeno/paystack_flutterwave_url/main/asset/paystack2.png\" alt=\"Paystack\" height=\"400\" width=\"200\"/\u003e\u003c/a\u003e\n\u003cbr/\u003e\n\u003ca href=\"https://pub.dev/packages/paystack_flutterwave_url\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/Maxzeno/paystack_flutterwave_url/main/asset/flutterwave1.png\" alt=\"Flutterwave\" height=\"400\" width=\"200\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://pub.dev/packages/paystack_flutterwave_url\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/Maxzeno/paystack_flutterwave_url/main/asset/flutterwave2.png\" alt=\"Flutterwave\" height=\"400\" width=\"200\"/\u003e\u003c/a\u003e\n\n\u003c/p\u003e\n\n## Features\n\n- Supports **Paystack** and **Flutterwave** gateways.\n- Handles payment success and failure callbacks.\n- Customizable loading widget during the redirection process.\n\n---\n\n## Example Usage\n\nBelow is a complete example to help you integrate the package into your Flutter app:\n\n```dart\nimport 'package:example/screens/failed.dart';\nimport 'package:example/screens/success.dart';\nimport 'package:flutter/material.dart';\nimport 'package:paystack_flutterwave_url/paystack_flutterwave_url.dart';\nimport 'package:paystack_flutterwave_url/utils/constants.dart';\n\nvoid main() {\n  runApp(const MyApp());\n}\n\nclass MyApp extends StatelessWidget {\n  const MyApp({super.key});\n\n  @override\n  Widget build(BuildContext context) {\n    return MaterialApp(\n      debugShowCheckedModeBanner: false,\n      home: const PaymentPage(),\n      routes: {\n        '/success': (context) =\u003e const SuccessPage(),\n        '/failed': (context) =\u003e const FailedPage(),\n        '/payment': (context) =\u003e const PaymentPage(),\n      },\n    );\n  }\n}\n\nclass PaymentPage extends StatefulWidget {\n  const PaymentPage({super.key});\n\n  @override\n  State\u003cPaymentPage\u003e createState() =\u003e _PaymentPageState();\n}\n\nclass _PaymentPageState extends State\u003cPaymentPage\u003e {\n  void payWithKey() {\n    Navigator.push(\n      context,\n      MaterialPageRoute(\n        builder: (context) {\n          return CheckoutScreen(\n            callbackUrl: \"https://www.google.com\",\n            secretKey: \"\u003csecreyt_key\u003e\", // Paystack secret key or public key\n            amountInMinorUnits: 10000, // 100 naira will be 1000 (kobo)\n            fullName: \"Emma Nwa\",\n            email: \"emmanuelnwaegunwa@gmail.com\",\n            gatewayType: GatewayType\n                .paystack, // toggle between GatewayType.paystack and GatewayType.flutterwave\n            onSuccess: () {\n              // Is called when payment succeeds\n              Navigator.pushReplacementNamed(context, '/success');\n            },\n            onFailure: () {\n              // Is called when payment fails\n              Navigator.pushReplacementNamed(context, '/failed');\n            },\n            loadingWidget: const Center(\n              child: CircularProgressIndicator(\n                color: Colors.purple,\n              ),\n            ),\n          );\n        },\n      ),\n    );\n  }\n\n  void payWithCheckoutURL() {\n    Navigator.push(\n      context,\n      MaterialPageRoute(\n        builder: (context) {\n          return RedirectionToPaymentScreen(\n            callbackUrl: \"https://www.google.com\",\n            gatewayType: GatewayType\n                .paystack, // toggle between GatewayType.paystack and GatewayType.flutterwave\n            checkoutUrl:\n                \"https://checkout.paystack.com/sop7flsdp5t2ure\", // eg. https://checkout.paystack.com/xlt21ud3wz0985r\n            onSuccess: () {\n              // Is called when payment succeeds\n              Navigator.pushReplacementNamed(context, '/success');\n            },\n            onFailure: () {\n              // Is called when payment fails\n              Navigator.pushReplacementNamed(context, '/failed');\n            },\n            loadingWidget: const Center(\n              child: CircularProgressIndicator(\n                color: Colors.purple,\n              ),\n            ),\n          );\n        },\n      ),\n    );\n  }\n\n  @override\n  Widget build(BuildContext context) {\n    return Scaffold(\n      appBar: AppBar(title: const Text(\"Payment\")),\n      body: Center(\n        child: ElevatedButton(\n          onPressed: payWithCheckoutURL,\n          child: const Text(\"Proceed to Payment\"),\n        ),\n      ),\n    );\n  }\n}\n\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaxzeno%2Fpaystack_flutterwave_url","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaxzeno%2Fpaystack_flutterwave_url","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaxzeno%2Fpaystack_flutterwave_url/lists"}