Repositório GitHubabom-me/thawani_payment

thawani_payment

Pacote Flutter permite adicionar pagamento Thawani ao seu aplicativo Flutter

Capa do projeto thawani_payment
Estrelas
6
Forks
1
Último push (UTC)
10 de fev. de 2025
Status do projeto
Ativo

README original

Texto original em inglês. Visite o GitHub para a versão atual.

thawani_payment:


A package helps you to use thawani checkout api , to add thawani payment in Flutter App

# 👨‍💻 Developed by:

profile

Nasr Al-Rahbi @abom_me

👨🏻‍💻 Find me in :

Twitter Instagram LinkedIn Stack Overflow



thawani_payment using the official webview_flutter.

⚠️ The Requirement ⚠️ :
Android iOS
Support SDK 19+ or 20+ iOS 9+

Setup:

Pubspec changes:

      dependencies:
        thawani_payment: <last_verison>

Sample example to add pay button :

import 'package:thawani_payment/thawani_payment.dart';

ThawaniPayBtn(
  api: 'API Key',
          pKey: 'Publishable Key',
          clintID: 'String',
          onError: (e){},
          products:[],
          onCreate: (v) {},
          onCancelled: (v){},
          onPaid: (v){}, 
          );

Sample example to add pay function :

import 'package:thawani_payment/thawani_payment.dart';

Thawani.pay(
  api: 'API Key',
          pKey: 'Publishable Key',
          clintID: 'String',
          onError: (e){},
          products:[],
          onCreate: (v) {},
          onCancelled: (v){},
          onPaid: (v){}, 
          );

Getting Started

Android
  1. You should however make sure to set the correct minSdkVersion in android/app/build.gradle if it was previously lower than 19:
android {
    defaultConfig {
        minSdkVersion 19
    }
}
Note
  • This package will update if there any update in Thawani checkout
  • Your use of the package is your personal choice. The developer of the package has nothing to do with errors that may occur with you during payment.
  • I recommend using the test mode to ensure that the package is free of errors before uploading it to users.

See the example directory for a complete sample app.

Parameters of the ThawaniPayBtn

  ///  API Code From Thawani Company
  ///  For Test Mode: rRQ26GcsZzoEhbrP2HZvLYDbn9C9et
  
  final String api;

/// The Publishable Key From Thawani Company
/// For Test Mode: HGvTMLDssJghr9tlN9gr4DVYt0qyBy
  
  final String pKey;
  
  /// The Widget  Shown In The Button , By Default it have Text
  /// Text("Pay",style: TextStyle(color: Colors.white,fontSize: 17),)
 
  final Widget? child;
  
  
  /// Button Style
  /// ButtonStyle(
  ///     elevation: MaterialStateProperty.all(0),
  ///     shape: MaterialStateProperty.all(RoundedRectangleBorder(borderRadius: BorderRadius.circular(10))),
  ///    backgroundColor: MaterialStateProperty.all(const Color(0xff4FB76C)),
  ///   )
  
  final ButtonStyle? buttonStyle;

 
  /// The Clint Id to be generated by merchant to identify the session (From Thawani API Doc).
  /// You can use The User ID As Clint ID
  
  final String clintID;

 
  /// The customer would be redirected to successUrl if payment processed successfully (From Thawani API Doc).
  /// In This Package , The URL Unuseful
  
  final String?  successUrl;
 
 
  /// The customer would be redirected to successUrl if he decides to cancel the payment (From Thawani API Doc).
  /// In This Package , The URL Unuseful
 
  final String? cancelUrl;

  
  /// A list of products the customer is purchasing. maximum  100 products (From Thawani API Doc).
  /// [
  ///      {
  ///        "name": "product Name",
  ///         "unit_amount": the price by Baisa, >=100 <=5000000000
  ///        "quantity": the quantity of the line product,  >=1 <=100
  ///       }
  ///     ]
  
  final List<Map> products;

  
  /// Useful for storing additional information about your products, customers (From Thawani API Doc).
  /// storing Any Data about your products, customers(users)
  /// EX:
  /// { "userName":"Nasr Al-Rahbi", "Twitter":"abom_me"}
 
  final Map? metadata;

 
  /// Make It true If You Want Test The Package Or The Api
  /// By Default It's false
  /// testMode: false
  
  final bool? testMode;

  
  ///The Function And The Result Of Data After Create Session.
  
  final void Function(Create create) onCreate;

  ///The Function And The Result Of Data If The User  Cancelled The Payment.
 
  final void Function(StatusClass payStatus) onCancelled;

  ///The Function And The Result Of Data If The User  Cancelled The Payment.
 
  final void Function(StatusClass payStatus) onPaid;

  ///The Function And The Reason Of The Error,  If Any Error Happen.
  
  final  Function(Map error)? onError;

Real Example:

Photo Example

🤗 Special thanks :

  • For Khalfan @pwkhalfan , for helping me with Thawani Document
Nasr Al-Rahbi GitHub avatar
Autor no GitHub

Nasr Al-Rahbi ↗

Full-Stack Developer- Flutter, Firebase,PHP And Mysql

Oman
LinguagensDartHTMLRubySwiftKotlinObjective-C

Categorias

Pacotes publicados por este repositório

Dependências usadas

Lista de dependências 7 itens

  • http^1.1.0
  • webview_flutter^4.3.0
  • webview_flutter_android^3.12.0
  • webview_flutter_wkwebview^3.9.0
  • flutter{"sdk":"flutter"}
  • flutter_testDesenvolvimento{"sdk":"flutter"}
  • flutter_lintsDesenvolvimento^2.0.0

Como escolher um repositório para seu projeto?

Filtre pelo caso de uso, compare a atividade e confira o projeto original antes de adotá-lo.

  1. Busque por nome, autor ou descrição e filtre por tema.
  2. Compare estrelas, forks e envios recentes. Estrelas indicam interesse, mas não garantem qualidade.
  3. Confira o README, a licença e as issues no GitHub antes de usar o projeto.

Fontes e manutenção

“A repository is the most basic element of GitHub.”

GitHub Docs — About repositories ↗