payorc_flutter_v2 1.0.2
payorc_flutter_v2: ^1.0.2 copied to clipboard
A Flutter plugin for orc payment.
payorc_flutter_v2 #
Flutter SDK for PayOrc checkout: payment method sheet (Apple Pay, Google Pay, Tabby, Samsung Pay, pay with card), add-card flow, and related UI. Merchant keys and the PayOrc service SDK drive checkout customization (colors, available methods, wallet JSON).
Requirements #
- Flutter SDK compatible with this package’s
pubspec.yamlconstraints. - A PayOrc merchant key and merchant secret.
- Optional Tabby credentials if you enable Tabby (
tabbyApiKey).
Installation #
Add the dependency (path or pub.dev version):
dependencies:
payorc_flutter_v2: ^1.0.0
import 'package:payorc_flutter_v2/payorc_flutter_v2.dart';
App setup (required for toasts / alerts) #
The SDK uses BotToast for some alerts. Wrap your app and register observers once:
import 'package:payorc_flutter_v2/payorc_flutter_v2.dart';
runApp(
PayorcRoot(
child: MaterialApp(
navigatorObservers: [
...PayorcSdk.botToastNavigatorObservers,
],
home: const MyHomePage(),
),
),
);
Alternative: keep your existing MaterialApp and compose PayorcSdk.wrapMaterialAppBuilder into MaterialApp.builder (see API docs on PayorcSdk.wrapMaterialAppBuilder).
1. PayorcSdk.init — configure the SDK #
Call once at startup (before PayorcSdk.instance or any sheet). Loads checkout customization in the background when the default internal flags apply (see implementation).
PayorcSdk.init(
merchantKey: 'YOUR_MERCHANT_KEY',
merchantSecret: 'YOUR_MERCHANT_SECRET',
environment: PayorcEnvironment.sandbox, // or PayorcEnvironment.production
tabbyApiKey: 'pk_test_...', // optional; omit to disable Tabby
tabbyMerchantCode: 'ae', // Tabby region / merchant code (e.g. ae, sa)
language: PayorcLanguage.english, // optional; default english
);
Parameters #
| Parameter | Type | Required | Description |
|---|---|---|---|
merchantKey |
String |
yes | PayOrc merchant key. |
merchantSecret |
String |
yes | PayOrc merchant secret. |
environment |
PayorcEnvironment |
yes | sandbox or production API / gateway behavior. |
tabbyApiKey |
String? |
no | Tabby public key; when set, Tabby SDK is configured and Tabby can appear in the options sheet. |
tabbyMerchantCode |
String |
no | Tabby merchant code (default 'ae'). |
language |
PayorcLanguage |
no | SDK language / text direction (english, arabic). Default english. |
Return value #
Returns the configured PayorcSdk singleton. After init, use PayorcSdk.instance anywhere.
2. PayorcSdk.customization — host UI overrides #
Optional static call (any time after init) to override checkout-driven colors and form chrome. Omitted parameters leave previous or API-driven values in place where applicable.
PayorcSdk.customization(
inputBorderStyle: PayorcInputBorderStyle.outline,
appBarStyle: PayorcAppBarStyle.nativeIos,
brandColor: const Color(0xFF000000),
buttonColor: const Color(0xFF000000),
accentColor: const Color(0xFF000000),
textPrimary: const Color(0xFF000000),
textSecondary: const Color(0xFF000000),
borderColor: const Color(0xFF000000),
);
Parameters #
| Parameter | Type | Description |
|---|---|---|
inputBorderStyle |
PayorcInputBorderStyle? |
outline or underline for SDK text fields. |
appBarStyle |
PayorcAppBarStyle? |
nativeAndroid or nativeIos for SDK app bars; platform default if unset. |
brandColor |
Color? |
Sheet / header brand fill. Fully transparent colors are ignored (fall back). |
buttonColor |
Color? |
Primary CTA buttons. |
accentColor |
Color? |
Secondary accent (links, highlights, borders where used). |
textPrimary |
Color? |
Primary text override; when unset, text on brand surfaces follows contrast rules. |
textSecondary |
Color? |
Secondary text override. |
borderColor |
Color? |
Default border / stroke color for SDK chrome; when unset, default is #CCCCCC. |
3. PayorcSdk.instance.showOptionsSheet — payment method bottom sheet #
Presents the payment options flow: refreshes checkout customization, then shows Apple Pay / Google Pay / Tabby / Samsung Pay / pay-with-card, etc., depending on your PayOrc configuration.
await PayorcSdk.instance.showOptionsSheet(
context,
paymentRequest: request,
onAddNewCard: (CardData input) {
// User completed add-card / card details — continue checkout (e.g. submit order).
},
onApplePayResult: (Map<String, dynamic> result) {
// Wallet token payload from the `pay` package (debug / integrate as needed).
},
onGooglePayResult: (Map<String, dynamic> result) {
// Same for Google Pay.
},
onPaymentError: (Object? error) {
// Apple Pay / Google Pay or flow errors.
},
onTabbyAuthorized: () {
// Tabby authorized (if Tabby enabled).
},
onTabbyError: (Object? error) {
// Tabby rejected / error.
},
);
Parameters #
| Parameter | Type | Required | Description |
|---|---|---|---|
context |
BuildContext |
yes | Context used for theming / navigation host (see SDK implementation). |
paymentRequest |
PaymentRequest |
yes | Checkout payload (order, customer, billing, shipping, etc.). |
onAddNewCard |
void Function(CardData) |
yes | Called when the user adds or confirms card data from the flow. |
addCardRequest |
PaymentRequest? |
no | Add-card API payload; if omitted, derived via PaymentRequest.deriveForAddCard(paymentRequest). |
customizationCurrency |
String? |
no | Overrides currency for the customization refresh query. |
customizationAmount |
num? |
no | Overrides amount for the customization refresh query. |
onApplePayWalletResult |
void Function(WalletPaymentResult)? |
no | Apple Pay wallet result (typed wrapper). |
onApplePayPaymentResponse |
void Function(PaymentResponse)? |
no | Apple Pay payment API-style response when used by the integration. |
onApplePayResult |
void Function(Map<String, dynamic>)? |
no | Raw Apple Pay result map from pay. |
onGooglePayResult |
void Function(Map<String, dynamic>)? |
no | Raw Google Pay result map from pay. |
onPaymentError |
void Function(Object?)? |
no | Wallet / flow errors. |
onTabbyAuthorized |
VoidCallback? |
no | Tabby checkout authorized. |
onTabbyError |
void Function(Object?)? |
no | Tabby errors / rejection. |
onConfirm |
VoidCallback? |
no | Confirm path when shown by the sheet. |
onSamsungPay |
VoidCallback? |
no | Samsung Pay selected (when enabled). |
showOptionsSheet returns a Future<void> that completes when the modal is dismissed or the flow finishes presenting.
Enums (quick reference) #
PayorcEnvironment #
| Value | Meaning |
|---|---|
sandbox |
Sandbox / test endpoints. |
production |
Production endpoints. |
PayorcLanguage #
| Value | Effect |
|---|---|
english |
English LTR. |
arabic |
Arabic RTL. |
PayorcInputBorderStyle #
| Value | Use |
|---|---|
outline |
Bordered text fields. |
underline |
Underline-only text fields. |
PayorcAppBarStyle #
| Value | Use |
|---|---|
nativeAndroid |
Android-style app bar behavior. |
nativeIos |
iOS-style app bar behavior. |
PaymentViewType (on PaymentRequest) #
| Value | Meaning |
|---|---|
bottomsheet |
Present review / gateway as a bottom sheet. |
screen |
Full-screen gateway (requires extra gateway builder where applicable). |
PaymentRequestType #
| Value | Meaning |
|---|---|
submitOrder |
Pay existing checkout (paymentToken, urls, …). |
addCard |
Add-card only payload (no payment token). |
Core types #
PaymentRequest— Build withPaymentRequest.submitOrder(...)orPaymentRequest.addCard(...), or derive add-card from checkout withPaymentRequest.deriveForAddCard. Seelib/data/models/payment_request.dart.CardData— Cardholder, expiry, CVV, optional email/phone, tokens for saved cards. Seelib/data/models/card_data.dart.PayorcSdk.instance— Throws ifPayorcSdk.initwas not called; usePayorcSdk.isInitializedto guard.
Related APIs (short) #
| API | Purpose |
|---|
| PayOrc.addNewCard / PayOrc.submitOrder | Lower-level add-card and submit-order sheet helpers (src/payorc.dart). |
License #
See the repository or package metadata for license terms.