FLUTTER ECOSYSTEM

tharwatsamy/flutter_paypal_payment_checkout

tharwatsamy/flutter_paypal_payment_checkout open-source repository details.

flutter_paypal_payment_checkout 프로젝트 이미지
Stars
119
Forks
27
최근 푸시(UTC)
2024. 12. 8.
프로젝트 상태
활성
tharwat samy  GitHub avatar
GITHUB User

tharwat samy ↗

software engineer with a nack for teaching others

언어Dart

이 저장소가 배포한 패키지

사용 중인 의존성

의존성 목록 6 개

원본 README

아래는 영문 원문 스냅샷입니다. 최신 내용은 GitHub에서 확인하세요.

README 펼치기 / 접기

Flutter PayPal Payment Package

The Flutter PayPal Payment Package provides an easy-to-integrate solution for enabling PayPal payments in your Flutter mobile application. This package allows for a seamless checkout experience with both sandbox and production environments.

Features

  • Seamless PayPal Integration: Easily integrate PayPal payments into your Flutter app.
  • Sandbox Mode Support: Test payments in a safe sandbox environment before going live.
  • Customizable Transactions: Define custom transaction details for each payment.
  • Payment Outcome Callbacks: Handle success, error, and cancellation events for payments.

Installation

To install the Flutter PayPal Payment Package, follow these steps

  1. Add the package to your project's dependencies in the pubspec.yaml file:

    dependencies:
      flutter_paypal_payment: ^1.0.7
    
  2. Run the following command to fetch the package:

    flutter pub get
    

Usage

  1. Import the package into your Dart file:

    import 'package:flutter_paypal_payment/flutter_paypal_payment.dart';
    
  2. Navigate to the PayPal checkout view with the desired configuration:

 Navigator.of(context).push(MaterialPageRoute(
                  builder: (BuildContext context) => PaypalCheckoutView(
                    sandboxMode: true,
                    clientId: "",
                    secretKey: "",
                    transactions: const [
                      {
                        "amount": {
                          "total": '70',
                          "currency": "USD",
                          "details": {
                            "subtotal": '70',
                            "shipping": '0',
                            "shipping_discount": 0
                          }
                        },
                        "description": "The payment transaction description.",
                        // "payment_options": {
                        //   "allowed_payment_method":
                        //       "INSTANT_FUNDING_SOURCE"
                        // },
                        "item_list": {
                          "items": [
                            {
                              "name": "Apple",
                              "quantity": 4,
                              "price": '5',
                              "currency": "USD"
                            },
                            {
                              "name": "Pineapple",
                              "quantity": 5,
                              "price": '10',
                              "currency": "USD"
                            }
                          ],

                          // shipping address is not required though
                          //   "shipping_address": {
                          //     "recipient_name": "tharwat",
                          //     "line1": "Alexandria",
                          //     "line2": "",
                          //     "city": "Alexandria",
                          //     "country_code": "EG",
                          //     "postal_code": "21505",
                          //     "phone": "+00000000",
                          //     "state": "Alexandria"
                          //  },
                        }
                      }
                    ],
                    note: "Contact us for any questions on your order.",
                    onSuccess: (Map params) async {
                      print("onSuccess: $params");
                    },
                    onError: (error) {
                      print("onError: $error");
                      Navigator.pop(context);
                    },
                    onCancel: () {
                      print('cancelled:');
                    },
                  ),
                ));

⚡ Donate

If you would like to support me, please consider making a donation through one of the following links:

Thank you for your support!