uni_pay 3.0.2 uni_pay: ^3.0.2 copied to clipboard
A comprehensive library for seamless online payments, integrating Moyasar (Card & Apple pay), Tamara, and Tabby payment gateways.
Payment Gateway Library Crafted by the UNICODE Team for Seamless Transactions #
A comprehensive library for seamless online payments, integrating Moyasar (Card & Apple pay), Tamara, and Tabby payment gateways. Effortlessly handle transactions, enhance user experience, and streamline your payment processing with our robust and versatile solution.
Features support #
- Card support (mada, visa, mastercard, amex) - Docs
- Apple Pay - Integration and Xcode setup
- Tamara - Docs
- Tabby - Docs
Getting started #
Please have a look at our /example project for a better understanding of implementations.
UniPay(
uniPayData: UniPayData(
appName: "UniPay",
locale: UniPayLocale.ar,
customerInfo: UniPayCustomerInfo(
fullName: "Mohammad Saif",
email: "example@mail.com",
phoneNumber: "+966555666777",
address: UniPayAddress(
addressName: "Olaya street, Al Ghadir",
city: "Riyadh",
),
),
environment: UniPayEnvironment.development,
credentials: UniPayCredentials(
applePayMerchantIdentifier: "merchant.com.mystore.sa",
paymentMethods: [
UniPayPaymentMethods.card,
UniPayPaymentMethods.applepay,
UniPayPaymentMethods.tamara,
UniPayPaymentMethods.tabby,
],
moyasarCredential:
MoyasarCredential(publishableKey: "pk_key", secretKey: "sk_key"),
tamaraCredential: TamaraCredential(
token: "Tamara_Token",
merchantUrl:
MerchantUrl(notification: "https://my-app.com/webhook"),
),
tabbyCredential: TabbyCredential(psKey: "tabby_api_key"),
),
orderInfo: UniPayOrder(
transactionAmount: TransactionAmount(totalAmount: 150.55),
orderId: DateTime.now().millisecondsSinceEpoch.toString(),
description: "Test Order Description",
items: [
UniPayItem(
id: "Product_ID", name: "Product name", quantity: 1, price: 50)
],
),
onPaymentSucess: (res) {
debugPrint("Payment Success ----> ${res.toMap()}");
},
onPaymentFailed: (res) {
debugPrint("Payment Failed ----> ${res.toMap()}");
},
metaData: {
"customerId": "ABC_12345",
"customerName": "Saif",
}
),
)
Tabby Features #
- Get the transaction details:
TabbyTransaction transaction = await UniTabbyServices.getTabbyTransactionDetails(
tabbyDto: TabbyDto(
transactionId: "trxn_id",
credential: TabbyCredential(
psKey: "pk_test",
secretKey: "sk_test",
merchantCode: "your_merchant_code",
)));
- Capture the order:
TabbyTransaction transaction = await UniTabbyServices.captureTabbyPayment(
tabbyDto: TabbyDto(
transactionId: "trxn_id",
credential: TabbyCredential(
psKey: "pk_test",
secretKey: "sk_test",
merchantCode: "your_merchant_code",
),
amount: 950.55,
));
- Show the Product page Banner of Tabby:
UniTabbyServices.showProductPageTabbySnippet(
tabbySnippet: TabbySnippet(
totalAmountWithVat: 150.50,
locale: UniPayLocale.ar,
),
)
- Show the Checkout page Banner of Tabby:
UniTabbyServices.showTabbyCheckoutSnippet(
tabbySnippet: TabbySnippet(
totalAmountWithVat: 150.50,
locale: UniPayLocale.ar,
),
)
Tamara Features #
- Show the Product page Banner of Tamara:
UniPayServices.tamaraProductPageSnippet(
const TamaraSnippet(
psKey: "ps_key",
transactionAmount: 150,
locale: UniPayLocale.en,
),
),
- Show the Checkout page Banner of Tamara:
UniPayServices.tamaraCheckoutPageSnippet(
const TamaraSnippet(
psKey: "ps_key",
transactionAmount: 150,
locale: UniPayLocale.ar,
),
)