Flutter支付集成插件flutter_paypal_sdk的使用

发布于 1周前 作者 sinazl 来自 Flutter

Flutter支付集成插件flutter_paypal_sdk的使用

简单 PayPal SDK for Flutter。

使用

本插件提供了三个主要功能。为了处理支付,你必须安装 webview_flutter

你可以在 /example 文件夹中查看示例代码。

import 'package:flutter_paypal_sdk/flutter_paypal_sdk.dart';

功能

  • 认证
  • 创建支付
  • 执行支付

初始化 FlutterPaypalSDK

FlutterPaypalSDK sdk = FlutterPaypalSDK(
  clientId: 'yourClientId',
  clientSecret: 'yourClientSecret',
  mode: Mode.sandbox, // 使用沙盒环境
);

认证

AccessToken accessToken = await sdk.getAccessToken();

创建支付

Payment payment = await sdk.createPayment(
  transactions,
  accessToken.token!,
);

请参阅 PayPal Payment API 以获取更多详细信息和支付响应参数。

执行支付

Payment payment = await sdk.executePayment(
  executeUrl,
  payerId,
  accessToken,
);

示例代码

import 'package:example/paypal_webview.dart';
import 'package:flutter/material.dart';
import 'package:flutter_paypal_sdk/flutter_paypal_sdk.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  // 这个小部件是你的应用的根节点。
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Paypal SDK',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const MyHomePage(title: 'Paypal SDK'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({Key? key, required this.title}) : super(key: key);

  final String title;

  [@override](/user/override)
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            Container(
              padding: const EdgeInsets.all(20),
              color: Colors.blue,
              child: GestureDetector(
                onTap: () async {
                  await payNow();
                },
                child: const Text(
                  'Pay Now',
                  style: TextStyle(color: Colors.white),
                ),
              ),
            ),
          ],
        ),
      ),
    );
  }

  payNow() async {
    FlutterPaypalSDK sdk = FlutterPaypalSDK(
      clientId: 'yourClientId',
      clientSecret: 'yourClientSecret',
      mode: Mode.sandbox, // 使用沙盒环境
    );
    AccessToken accessToken = await sdk.getAccessToken();
    if (accessToken.token != null) {
      Payment payment = await sdk.createPayment(
        transaction(),
        accessToken.token!,
      );
      if (payment.status) {
        Navigator.push(
          context,
          MaterialPageRoute(
            builder: (context) => PaypalWebview(
              approveUrl: payment.approvalUrl!,
              executeUrl: payment.executeUrl!,
              accessToken: accessToken.token!,
              sdk: sdk,
            ),
          ),
        );
      }
    }
  }

  transaction() {
    Map<String, dynamic> transactions = {
      "intent": "sale",
      "payer": {
        "payment_method": "paypal",
      },
      "redirect_urls": {
        "return_url": "/success",
        "cancel_url": "/cancel",
      },
      'transactions': [
        {
          "amount": {
            "currency": "USD",
            "total": "10",
          },
        }
      ],
    };

    return transactions;
  }
}

更多关于Flutter支付集成插件flutter_paypal_sdk的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter支付集成插件flutter_paypal_sdk的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在Flutter项目中集成flutter_paypal_sdk插件以实现PayPal支付功能,你可以按照以下步骤进行。这里我们将展示如何设置和使用该插件的相关代码案例。

1. 添加依赖

首先,在你的pubspec.yaml文件中添加flutter_paypal_sdk的依赖:

dependencies:
  flutter:
    sdk: flutter
  flutter_paypal_sdk: ^x.y.z  # 请替换为最新版本号

然后运行flutter pub get来安装依赖。

2. 配置PayPal环境

确保你已经在PayPal开发者门户中创建了一个应用,并获取了客户端ID(Client ID)。你需要在你的Flutter项目中配置这个ID。

3. 初始化PayPal配置

在你的Flutter应用的入口文件(通常是main.dart)中,初始化PayPal配置:

import 'package:flutter/material.dart';
import 'package:flutter_paypal_sdk/flutter_paypal_sdk.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    // 初始化PayPal配置
    PayPalConfiguration config = PayPalConfiguration(
      clientId: "YOUR_CLIENT_ID_HERE",  // 替换为你的PayPal客户端ID
      environment: .sandbox,  // 或者 .production,根据你的需求
      merchantName: "Your Merchant Name",
      merchantPrivacyPolicyUrl: Uri.parse("https://yourwebsite.com/privacy"),
      merchantUserAgreementUrl: Uri.parse("https://yourwebsite.com/terms"),
    );

    // 设置PayPal配置
    PayPalPayment.configure(config);

    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('PayPal Payment Integration'),
        ),
        body: Center(
          child: PayPalButtonExample(),
        ),
      ),
    );
  }
}

4. 创建支付按钮并处理支付

接下来,创建一个包含PayPal支付按钮的页面,并处理支付逻辑:

import 'package:flutter/material.dart';
import 'package:flutter_paypal_sdk/models/paypal_payment.dart';
import 'package:flutter_paypal_sdk/models/paypal_configuration.dart';
import 'package:flutter_paypal_sdk/flutter_paypal_sdk.dart';

class PayPalButtonExample extends StatefulWidget {
  @override
  _PayPalButtonExampleState createState() => _PayPalButtonExampleState();
}

class _PayPalButtonExampleState extends State<PayPalButtonExample> {
  PayPalPayment _payment;

  @override
  void initState() {
    super.initState();
    _createPayment();
  }

  void _createPayment() {
    setState(() {
      _payment = PayPalPayment(
        amount: '10.00',
        currencyCode: 'USD',
        shortDescription: 'Test Payment',
        intent: PayPalPaymentIntent.sale,
      );
    });
  }

  void _onPaymentCompleted(PayPalPayment completedPayment) {
    // 支付完成后的处理逻辑
    print("Payment completed: ${completedPayment.confirmation}");
  }

  void _onPaymentCanceled() {
    // 支付取消的处理逻辑
    print("Payment canceled");
  }

  @override
  Widget build(BuildContext context) {
    return PayPalButton(
      payment: _payment,
      style: PayPalButtonStyle(
        label: "Pay",
        color: Colors.blue,
      ),
      onApproved: _onPaymentCompleted,
      onCanceled: _onPaymentCanceled,
    );
  }
}

5. 运行你的应用

现在,你可以运行你的Flutter应用,并看到一个PayPal支付按钮。点击按钮后,将跳转到PayPal支付页面,完成支付流程。

注意事项

  • 确保你的PayPal客户端ID正确无误。
  • 在开发阶段使用.sandbox环境,上线后切换到.production环境。
  • 处理支付回调时,确保你的应用能够正确处理支付成功和取消的情况。

以上就是在Flutter项目中集成flutter_paypal_sdk插件的基本步骤和代码示例。希望这能帮助你顺利实现PayPal支付功能。

回到顶部