dimepay_flutter_sdk 1.0.3
dimepay_flutter_sdk: ^1.0.3 copied to clipboard
Official Flutter SDK for integrating Dime Pay.
๐ณ Dime Pay Flutter SDK #
The official Flutter SDK for embedding the Dime Pay secure payment experience into native apps using WebView.
๐ Installation #
flutter pub add dimepay_flutter_sdk
๐งฉ Usage #
Card Payments #
DimePayWebView(
total: 5000,
currency: "JMD",
test: true,
orderId: "ORDER-001",
clientId: "ck_jtfEtqbrX2Nf7U_evqKVy",
data: "<signed_jwt_token>",
payment_methods: {
apple_pay: true,
google_pay: true,
samsung_pay: true
},
styles: DimePayStyles(
primaryColor: "#936c6c",
buttonColor: "#936c6c",
buttonTextColor: "#FFFFFF",
backgroundColor: "#DDDDDD",
noBorderRadius: false,
),
onReady: (data) => print("โ
Ready: \$data"),
onSuccess: (data) => print("โ
Success: \$data"),
onFailed: (err) => print("โ Failed: \$err"),
onError: (err) => print("โ Error: \$err"),
onCancel: () => print("โ ๏ธ Cancelled"),
onLoading: () => print("โณ Loading..."),
)
Save Card #
DimePayCardView(
cardRequestToken: "<card_request_token>",
clientId: "ck_jtfEtqbrX2Nf7U_evqKVy",
origin: "https://yourorigin.com",
data: "<signed_jwt_token>",
styles: DimePayStyles(
primaryColor: "#936c6c",
buttonColor: "#936c6c",
buttonTextColor: "#FFFFFF",
backgroundColor: "#DDDDDD",
noBorderRadius: false,
),
onReady: (data) => print("โ
Ready: \$data"),
onSuccess: (data) => print("โ
Success: \$data"),
onFailed: (err) => print("โ Failed: \$err"),
onError: (err) => print("โ Error: \$err"),
onCancel: () => print("โ ๏ธ Cancelled"),
onLoading: () => print("โณ Loading..."),
)
๐ Secure JWT Flow #
You must pass a signed JWT to data prop containing transaction info. Sign this on your server.
๐ Secure Payment Flow with JWT #
You must generate a signed JWT on your backend and pass it to the SDK via the data prop.
Example Card Payment Payload: #
{
"id": "ORDER-001",
"total": 5000,
"subtotal": 5000,
"description": "This is an order from the sdk",
"tax": 0,
"currency": "JMD",
"fees": [],
"items": [],
"fulfilled": true,
"shippingPerson": {
"name": "Shamir Saddler",
"street": "1 Test Ave",
"city": "Kingston 6",
"stateOrProvinceName": "Kingston",
"postalCode": "00000",
"countryName": "Jamaica"
},
"billingPerson": {
"name": "Shamir Saddler",
"street": "1 Test Ave",
"city": "Kingston 6",
"stateOrProvinceName": "Kingston",
"postalCode": "00000",
"countryName": "Jamaica"
},
"webhookUrl": "https://yourservice.com/webhook"
}
Example Card Save Payload: #
{
"webhookUrl": "https://webhook.com",
"card_request_token": "<card_request_token>",
}
Use a backend library like
jsonwebtokento sign the payload with your secret key. Never expose your secret key in your app.
โ๏ธ Configuration Options #
Card Payment: #
| Prop | Type | Required | Description |
|---|---|---|---|
total |
number |
โ | The total amount to charge |
currency |
string |
โ | The currency code (e.g. JMD, USD) |
order_id |
string |
โ | Your order reference |
client_id |
string |
โ | Client ID for your integration |
data |
string |
โ | Signed JWT with payment details |
payment_methods |
object |
optional | Defines payment methods to enable |
styles |
object |
optional | Customizes UI (colors, border radius, etc.) |
test |
boolean |
optional | Set true for sandbox environment |
onReady |
func |
optional | Called when payment page is ready |
onSuccess |
func |
optional | Called when payment completes successfully |
onFailed |
func |
optional | Called if payment fails |
onError |
func |
optional | Called on internal error |
onCancel |
func |
optional | Called when user cancels |
onLoading |
func |
optional | Called when payment widget begins loading |
Card Save: #
| Prop | Type | Required | Description |
|---|---|---|---|
cardRequestToken |
string |
โ | The total amount to charge |
clientId |
string |
โ | The currency code (e.g. JMD, USD) |
origin |
string |
โ | Your order reference |
clientId |
string |
โ | Client ID for your integration |
data |
string |
โ | Signed JWT with payment details |
styles |
object |
optional | Customizes UI (colors, border radius, etc.) |
test |
boolean |
optional | Set true for sandbox environment |
onReady |
func |
optional | Called when payment page is ready |
onSuccess |
func |
optional | Called when payment completes successfully |
onFailed |
func |
optional | Called if payment fails |
onError |
func |
optional | Called on internal error |
onCancel |
func |
optional | Called when user cancels |
onLoading |
func |
optional | Called when payment widget begins loading |
๐งพ Changelog #
[1.0.3] - 2025-07-07 #
- Add support for Card Tokenization
[1.0.2] - 2025-06-26 #
- Add support for Apple Pay, Google Pay, Samsung Pay
[1.0.0] - 2025-05-14 #
- ๐ Initial release
- โ Supports full payment flow with JWT + WebView
- ๐ก Handles events:
onReady,onSuccess,onError,onCancel, etc.
๐ก๏ธ License #
MIT License ยฉ Dime Pay
โ๏ธ Setup Local #
- Download Flutter from https://docs.flutter.dev/get-started/install/windows/desktop
- Download java 17.0.12
- Download android studio
- Download vscode
- Run commands to setup
flutter create .flutter pub get
โ๏ธ Run Local #
- Run
flutter emulatorto see all emulators - Run
flutter emulators --launch <emulator id>to open an emulator - Run commands to start application
flutter run
- Run commands to test
flutter test