Aus öffentlichen Paketdaten erstellte Orientierung.
Flutter Fawry Pay ist ein Flutter-Plugin, das die nativen Zahlungssdks von FawryPay in Flutter-Anwendungen integriert und nahtlose In-App-Zahlungen auf Android, iOS und Web ermöglicht. Es ermöglicht Entwicklern, den sicheren Zahlungsgateway von FawryPay für Transaktionen in Ägypten und anderen unterstützten Regionen zu nutzen. Das Plugin vereinfacht den Prozess der Zahlungsinitiierung, der Verarbeitung von Rückrufen und der Verwaltung von Transaktionsstatus innerhalb von Flutter-Anwendungen. Es ist so konzipiert, mit der bestehenden Infrastruktur von FawryPay zu arbeiten und gewährleistet somit Kompatibilität mit deren neuesten Sicherheits- und Zahlungsstandards.
Anwendungsfälle
In-App-Käufe in ägyptischen Marktplätzen
E-Commerce-Plattformen, die FawryPay akzeptieren
Mobile Apps, die lokale Zahlungsintegration erfordern
Digitale Dienstleistungsabonnements
Online-Rechnungszahlungen
Hauptmerkmale
Unterstützt Android, iOS und Web-Plattformen
Sichere Integration mit dem FawryPay SDK
Verarbeitet Zahlungsrückrufe und Statusaktualisierungen
Einfache API zum Starten von Transaktionen
Eingebaute Fehlerbehandlung und Protokollierung
Geeignet für
Entwickler, die ägyptische Nutzer ansprechen
Apps, die FawryPay als Zahlungsmethode benötigen
Plattformübergreifende Apps mit Flutter
E-Commerce und Abonnementsservices
Projekte, die lokale Zahlungsgateways erfordern
Hinweise
Benötigt FawryPay-Konto und Anmeldeinformationen
Beschränkt auf Regionen, in denen FawryPay tätig ist
Für jede Plattform ist eine korrekte Konfiguration erforderlich
Kann zusätzliche Backend-Validierung erfordern
Abhängig von FawryPay SDK-Updates für neue Funktionen
Original-README
Originaler README-Schnappschuss aus dem verknüpften Quell-Repository. Aktuelle Inhalte finden Sie im Repository.
Flutter FawryPay
Explain
This plugin is for FawryPay. It's implemented the native SDKs of Mobile, and Web to work on Flutter environment.
It works for Android fine. iOS works fine on Real Device only (FawryPay Requirements).
FlutterFawryPay.instance.init(
// Set the merchant ID here for one time only.
merchantID: Keys.merchantID,
style: Style.STYLE1,
// If set to true, you must set username and email.
skipCustomerInput: true,
// Must be a phone number.
username: "01234567890",
email: "abc@test.com",
// For web how you show the Fawry screen.
webDisplayMode: DisplayMode.SIDE_PAGE,
// You should set environment here.
environment: Environment.TEST,
);
And when you are ready for production you have to set the environment to LIVE.
Now, you can stream the result data that from SDK.
Let's now make our first payment initialize, you must set your merchantID that token from FawryPay system, and set your FawryItems that the user will pay for.
Note that: there's error in native FawryPay SDK for Android and iOS to retrieve again customParam.
FlutterFawryPay.instance.initialize(
returnUrl: "test.com", // For Web use only.
items: [
FawryItem(sku: "1", description: "Item 1", qty: 1, price: 20.0),
],
customParam: {
"order_id": "123213",
"price": 231.0,
},
);
You can set some parameters like: merchantRefNumber, customParam.
So now, it was initialized well, how to start payment? You have TWO ways.
First way: Native Fawry Button
You can use the native button for FawryPay SDK. through this only widget.
FawryButton()
Second way: Your custom widget
You can use your own widget with a function to call with FlutterFawryPay.instance.startProcess().
Last function you can use is reset the initialization (Android & Web only), doing that:
FlutterFawryPay.instance.reset();
Objects
classFawryItem{
String sku;
String description;
int qty;
double price;
double? originalPrice;
int? height;
int? length;
double? weight;
int? width;
String? variantCode;
List<String>? reservationCodes;
String? earningRuleID;
String? imageUrl; // For Web only.
}
classFawryResponse{
/// Parameters for payment process.String transactionID;
DateTime expiryDate;
/// Parameters for card tokenizer process.String cardToken;
DateTime creationDate;
String lastFourDigits;
/// Common parameters for all process.Map<String, dynamic> customParam;
String errorMessage;
}
Enums
/// Enums for DisplayMode configuration.////// [POPUP] show a popup dialog./// [SIDE_PAGE] show side screen dialog.enumDisplayMode { POPUP, SIDE_PAGE }
/// Enums for Environment configuration.////// [TEST] for test stage atfawry.fawrystaging endpoint./// [LIVE] for production stage atfawry endpoint.enumEnvironment { TEST, LIVE }
/// Enums for Environment configuration.////// [EN] for English language./// [AR] for Arabic language.enumLanguage { EN, AR }
/// Enums for Environment configuration.////// [STYLE1] for first styling./// [STYLE2] for second styling.enumStyle { STYLE1, STYLE2 }
Copyright (c) 2021 Shady Boshra. All rights reserved.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.