Flutter支付功能插件flutter_paypal_pay的使用

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

Flutter支付功能插件flutter_paypal_pay的使用

特性

升级到PayPal v2 API:一种现代解决方案

在这个SDK中,我已从使用已弃用的PayPal v1 API迁移到了最新的PayPal v2 API。这一转变显著提升了我的插件,确保了最高的安全性和可靠性,并与当前行业标准保持一致。

关键亮点

  • 升级到PayPal v2 API:我采用了最新的PayPal v2 API,该API提供了增强的功能、改进的安全性以及比过时的v1 API更强大的功能集。
  • 轻松创建订单:我的插件现在利用v2 API的力量无缝创建订单,使过程更加高效和用户友好。
  • 简便捕获订单:通过v2 API集成,订单捕获变得更加简单和可靠,确保您的交易顺利处理。
  • 保持最新和合规:通过使用最新版本的API,我确保插件符合PayPal不断发展的标准,减少了潜在问题或中断支付处理的风险。
  • 为应用未来做好准备:通过v2 API,您可以为应用程序的未来发展做好准备,因为它与PayPal的持续开发工作保持一致,并确保您将继续获得支持和更新。

今天就升级你的插件以充分利用这些重大改进,并享受更安全和高效的支付处理体验。

推荐用法

如果你的应用程序内销售数字产品或服务,你可以使用此SDK通过PayPal处理付款。

安装

flutter pub add flutter_paypal_pay

如何使用库

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

  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(
        backgroundColor: Theme.of(context).colorScheme.inversePrimary,
        title: Text(widget.title),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: () {
            Navigator.of(context).push(
              MaterialPageRoute(
                builder: (BuildContext context) => PaypalPay(
                    /// 沙盒模式用于测试目的
                    sandboxMode: true,

                    /// 在登录PayPal开发者账户后找到客户端ID
                    clientId: 
                        'AUBmOxdWgvJkGsRf2GZMO96quth3L53nF0B-KBpT5C3JgiJrvifwZuoOMrAkyBWZpw_UaYLVTH162brY',

                    /// 在登录PayPal开发者账户后找到秘密密钥
                    secretKey: 
                        'EBQfKl5oAPlCsGADhNCFe7T8m55PvK1XJO9RgJCjZXpEHfVsLhYhcyjDVAlPe9eF_UW1eJgJN7jb8-Ai',
                    returnURL: 'https://test.com/return',
                    cancelURL: 'https://test.com/cancel',
                    purchaseUnits: const [
                      {
                        'amount': {
                          'value': '100',
                          'currency_code': 'USD',
                        },
                        'shipping': {
                          'address': {
                            // 添加你的运输地址详细信息

                            'recipient_name': 'Name',
                            'line1': 'Travis County',
                            'line2': '',
                            'city': 'Austin',
                            'country_code': 'US',
                            'postal_code': '73301',
                            'phone': '+00000000',
                            'state': 'Texas',
                            'admin_area_2': 
                                'City Name', // 替换为实际的城市或地区名称
                            'admin_area_1': 
                                'State/Province', // 替换为实际的州或省名称
                          }
                        }
                      }
                    ],
                    note: 'Contact us for any questions on your order.',
                    onSuccess: (Map params) async {
                      // 查看响应数据
                      // 响应数据可用于后端验证
                      log('successsss: $params');
                    },
                    onError: (error) {
                      // 查看错误响应
                      log('onEEEError: $error');
                    },
                    onCancel: (params) {
                      // 查看取消响应
                      log('cancelled: $params');
                    }),
              ),
            );
          },
          child: const Text('Pay with Paypal'),
        ),
      ),
    );
  }
}

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

1 回复

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


当然,以下是如何在Flutter应用中使用flutter_paypal_pay插件来实现PayPal支付功能的示例代码。这个插件允许你集成PayPal支付到你的Flutter应用中。

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

dependencies:
  flutter:
    sdk: flutter
  flutter_paypal_pay: ^2.0.0  # 请确保使用最新版本

然后运行flutter pub get来获取依赖。

接下来,你需要按照PayPal的要求设置你的应用,并获取必要的客户端ID。你可以在PayPal开发者门户中创建一个应用来获取这些信息。

下面是一个完整的示例,展示了如何使用flutter_paypal_pay插件:

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter PayPal Payment Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: PaymentScreen(),
    );
  }
}

class PaymentScreen extends StatefulWidget {
  @override
  _PaymentScreenState createState() => _PaymentScreenState();
}

class _PaymentScreenState extends State<PaymentScreen> {
  final String clientId = 'YOUR_PAYPAL_CLIENT_ID'; // 替换为你的PayPal客户端ID

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('PayPal Payment Demo'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: () {
            _initiatePayPalPayment();
          },
          child: Text('Pay with PayPal'),
        ),
      ),
    );
  }

  Future<void> _initiatePayPalPayment() async {
    final PayPalConfiguration config = PayPalConfiguration(
      clientId: clientId,
      mode: PayPalPaymentMode.sandbox, // 使用sandbox模式进行测试,生产环境使用live
      merchantName: 'Demo Merchant',
      currencyCode: 'USD',
      returnUrl: 'your_return_url', // PayPal支付完成后返回的URL(在PayPal开发者门户中配置)
    );

    final PayPalPayment payment = PayPalPayment(
      amount: '10.00',
      currencyCode: 'USD',
      shortDescription: 'Demo Payment',
      intent: PayPalPaymentIntent.sale,
    );

    try {
      await PayPalPayment.start(
        context: context,
        configuration: config,
        payment: payment,
        listener: (PayPalPaymentCompleted payment) async {
          // 支付成功后处理支付结果
          print('PayPal payment completed with status: ${payment.response?.status}');
          print('Payment ID: ${payment.response?.id}');
        },
      );
    } catch (e) {
      // 处理错误
      print('Error in PayPal payment: $e');
    }
  }
}

在这个示例中,我们创建了一个简单的Flutter应用,其中包含一个按钮,用于启动PayPal支付流程。我们配置了PayPalConfiguration对象,其中包括客户端ID、支付模式(sandbox或live)、商户名称、货币代码和返回URL。然后,我们创建了一个PayPalPayment对象,其中包括支付金额、货币代码、简短描述和支付意图。

当用户点击按钮时,_initiatePayPalPayment函数会被调用,启动PayPal支付流程。支付完成后,listener回调会被触发,你可以在这里处理支付结果。

请确保将YOUR_PAYPAL_CLIENT_ID替换为你从PayPal开发者门户获取的客户端ID,并根据需要配置其他参数。

这个示例仅用于演示目的,你可能需要根据你的应用需求进行进一步的调整和优化。

回到顶部