{"id":25024936,"url":"https://github.com/seyicoded/react-native-universal-payment-gateway","last_synced_at":"2025-04-13T10:58:19.943Z","repository":{"id":56870884,"uuid":"525860113","full_name":"seyicoded/react-native-universal-payment-gateway","owner":"seyicoded","description":"A utility software every RN project should have as it assist in it's payment methods","archived":false,"fork":false,"pushed_at":"2024-05-29T00:49:42.000Z","size":10446,"stargazers_count":3,"open_issues_count":17,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-05-29T15:00:43.247Z","etag":null,"topics":["expo","ios","payment-gateway","payments","react-native"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/seyicoded.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":"license.md","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}},"created_at":"2022-08-17T15:50:07.000Z","updated_at":"2022-09-19T16:22:19.000Z","dependencies_parsed_at":"2023-01-20T17:01:22.546Z","dependency_job_id":"5927f89f-6df0-4b8e-b950-8abf4de97033","html_url":"https://github.com/seyicoded/react-native-universal-payment-gateway","commit_stats":{"total_commits":37,"total_committers":1,"mean_commits":37.0,"dds":0.0,"last_synced_commit":"9f36fc15fa67606340f89d2f59b6d3c78d1aca5d"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seyicoded%2Freact-native-universal-payment-gateway","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seyicoded%2Freact-native-universal-payment-gateway/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seyicoded%2Freact-native-universal-payment-gateway/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seyicoded%2Freact-native-universal-payment-gateway/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/seyicoded","download_url":"https://codeload.github.com/seyicoded/react-native-universal-payment-gateway/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248703196,"owners_count":21148117,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["expo","ios","payment-gateway","payments","react-native"],"created_at":"2025-02-05T16:33:42.150Z","updated_at":"2025-04-13T10:58:19.923Z","avatar_url":"https://github.com/seyicoded.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"### Announcements\n\n*   📣 We are proud to announce the release of our universal gateway package for both android and ios on RN\n*   💡 We've just added a logically payment webview what does exactly what it's supposed too, feel free to try it out [New].\n*   💡 Package initially was JS but utilizes TS for all its implementation to give it users free access to type per implementation.\n*   🙏 If you have a question, feel free to open a new issue as the package will be regularly maintained...\n\n---\n\n## REACT NATIVE UNIVERSAL PAYMENT GATEWAY\n\n*   Library available for both **android** and **ios**\n*   compatible with plain react-native and expo\n\n![](https://github.com/seyicoded/react-native-universal-payment-gateway/blob/main/assets/universal/paystack.gif?raw=true)\n\n![](https://github.com/seyicoded/react-native-universal-payment-gateway/blob/main/assets/universal/flutterwave.gif?raw=true)\n\n![](https://github.com/seyicoded/react-native-universal-payment-gateway/blob/main/assets/universal/photo.png?raw=true)\n\n---\n\n**setup**\n\nto utilize simple install\n\n```diff\nnpm install react-native-universal-payment-gateway react-native-webview\n```\n\n```diff\nyarn add react-native-universal-payment-gateway react-native-webview\n```\n\n```diff\nexpo install react-native-universal-payment-gateway react-native-webview\n```\n\n**Not Using Expo, no problem**\n\n**ANDROID**\n\nif using RN \u003e 0.6, then just re-build,\n\nelse, just upgrade ab🌝g\n\n**IOS**\n\nsimple run \n\n```diff\ncd ios \u0026\u0026 pod install\n```\n\nthen re-build\n\n---\n\n**USAGE:**\n\nimport package\n\n```typescript\nimport Gateway from 'react-native-universal-payment-gateway'\n```\n\n**SAMPLE UTILIZATION**\n\n```typescript\nconst App = () =\u003e {\nconst [showPaystack, setShowPaystack] = useState(false)\nconst [showFlutterwave, setShowFlutterwave] = useState(false)\nconst [showUniversal, setShowUniversal] = useState(false)\nconst [showWebView, setShowWebView] = useState(false)\n\nreturn (\n\u003cSafeAreaView style={{ flex: 1 }}\u003e\n{/*\n* key note\n* always place the components from this library on your outtermost instance component\n*/}\n\n\n\u003cGateway.payStack\nemail='opadonuseyi01@gmail.com'\namount={'8000'}\ncurrency={\"NGN\"}\npaystackSecretKey={'sk_test_ac8971390ed43c9b29074c23f4bdaddccc24b865'}\nchannels={['card']}\ncallbackUrl={'https://www.sctidev.com/callback'}\nshow={showPaystack}\nonCallback={async (e)=\u003e{\nconsole.log(\"data returns is \",e)\n\n\n// to validate, returns {status: srring, data: {data} }\n// status is success for success on paystack\nawait Gateway.validatePaystackPayment({\napiKey: 'sk_test_ac8971390ed43c9b29074c23f4bdaddccc24b865',\ntnxRef: e.tnxref\n})\n\n}}\nonShow={setShowPaystack} /\u003e\n\n\n\u003cGateway.flutterWave\nemail='opadonuseyi01@gmail.com'\namount={'8000'}\ncurrency={\"NGN\"}\nflutterwaveSecretKey={'FLWSECK_TEST-4e2a106fa0b255596d20f29c9d41775f-X'}\nchannels={['card']}\ncallbackUrl={'https://www.sctidev.com/callback'}\nshow={showFlutterwave}\nonCallback={async (e)=\u003e{\nconsole.log(\"data returns is \",e)\nif(e.tnxref == \"/pay_canceled=true\"){\n              return\n            }\n\n}}\nonShow={setShowFlutterwave}\n/\u003e\n\n\u003cGateway.webview\n          paymentUrl={'https://api.flutterwave.com/v3/payments'}\n          // callback uri from your init api request to create\n          callbackUrl={'https://www.sctidev.com/callback'}\n          show={showWebView}\n          onCallback={async (e)=\u003e{\n            console.log(\"data returns is \",e)\n            if(e.tnxref == \"/pay_canceled=true\"){\n              return\n            }\n\n          }}\n          onShow={setShowWebView} /\u003e\n\n\n\u003cGateway.universal\npaymentGatewayUrlRequestUrlUrl={'https://api.flutterwave.com/v3/payments'}\ntRefObject={\n{\ntx_ref: \"TNXRE_F124243642\"\n}\n}\nheaderContent={{\n\"Authorization\" : \"Bearer FLWSECK_TEST-4e2a106fa0b255596d20f29c9d41775f-X\",\n'Content-Type': \"application/json\"\n}}\nemail='opadonuseyi01@gmail.com'\namount={'8000'}\ncurrency={\"NGN\"}\nuniversalSecretKey={'FLWSECK_TEST-4e2a106fa0b255596d20f29c9d41775f-X'}\nchannels={['card']}\ncallbackUrl={'https://www.sctidev.com/callback'}\nshow={showUniversal}\nonCallback={async (e)=\u003e{\nconsole.log(\"data returns is \",e)\n\n}}\nonShow={setShowUniversal} /\u003e\n\n\n\u003cView style={{ justifyContent: 'center', alignItems: 'center', flex: 1 }}\u003e\n\n\n\u003cText style={[styles.title]}\u003e\nUNIVERSAL PAYMENT GATEWAY LIBRARY\n\u003c/Text\u003e\n\n\n\u003cTouchableOpacity onPress={()=\u003e setShowPaystack(true)} style={[styles.btnContainer]}\u003e\n\u003cText style={[styles.button]}\u003eclick for paystack\u003c/Text\u003e\n\u003c/TouchableOpacity\u003e\n\n\n\u003cTouchableOpacity onPress={()=\u003e setShowFlutterwave(true)} style={[styles.btnContainer]}\u003e\n\u003cText style={[styles.button]}\u003eclick for flutterwave\u003c/Text\u003e\n\u003c/TouchableOpacity\u003e\n\n\u003cTouchableOpacity onPress={()=\u003e setShowWebView(true)} style={[styles.btnContainer]}\u003e\n            \u003cText style={[styles.button]}\u003eclick to load logically payment webview \u003c/Text\u003e\n          \u003c/TouchableOpacity\u003e\n\n\n\u003cTouchableOpacity onPress={()=\u003e setShowUniversal(true)} style={[styles.btnContainer]}\u003e\n\u003cText style={[styles.button]}\u003eclick to utilize universal \u003c/Text\u003e\n\u003c/TouchableOpacity\u003e\n\n\n\u003cText style={[styles.foot]}\u003e\n\u0026copy; seyicoded\n\u003c/Text\u003e\n\u003c/View\u003e\n\u003c/SafeAreaView\u003e\n);\n};\n```\n\n**Feel free to reach out for any urgent feature or requirement as we currently plan on regularly maintaining this library.**","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseyicoded%2Freact-native-universal-payment-gateway","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fseyicoded%2Freact-native-universal-payment-gateway","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseyicoded%2Freact-native-universal-payment-gateway/lists"}