Flutter支付网关插件biapay_gateway的使用

Flutter支付网关插件biapay_gateway的使用

BIAPAY支付网关SDK是围绕BIAPAY支付网关API构建的一个高级封装,提供了强类型的响应和异常处理。


特性

  • BIAPAY支付网关SDK适用于Flutter。
  • 易于使用。
  • 支持Android和iOS平台。
  • 无需额外配置。
  • 安全且可靠。
  • 实时提现。
  • 端到端加密。
  • 透明定价。

开始使用

安装

pub.dev安装最新版本。

在你的包的pubspec.yaml文件中添加以下内容:

dependencies:
  biapay_gateway: [version]

或者在终端运行以下命令:

$ flutter pub add biapay_gateway

编写代码

导入包

在Dart文件中导入包。如果你使用的是Android Studio或VS Code,可以通过按下Alt+Enter并选择导入包选项来轻松完成此操作。否则,可以手动导入包,在Dart文件中添加以下行:

// 导入包
import 'package:biapay_gateway/biapay_gateway.dart';

示例

创建一个新的BiaPayGateway类实例,并传递所需参数。clientIdclientSecretemailmobileNumberorderIdamountcurrencyCodetransactionIdtransactionType 是必需的参数。

// 导入包
import 'package:biapay_gateway/biapay_gateway.dart';

// 创建一个BiaPayGateway类的新实例
final biapay = BiaPayGateway(
  clientId: 'clientId',
  clientSecret: 'clientSecret',
  email: 'email',
  mobileNumber: 'mobileNumber',
  orderId: 'orderId',
  amount: 'amount',
  currencyCode: 'currencyCode',
  transactionId: 'transactionId',
  transactionType: 'transactionType',
);
  • 在创建了新的BiaPayGateway类实例后,调用launch方法开始支付流程。launch方法将返回一个Future对象。你可以使用onSuccessonFailed回调函数来处理成功和错误响应。

  • onSuccessonFailed回调函数内部,可以通过回调函数参数访问数据。你可以为onSuccessonFailed回调函数参数使用任何名称。

// 调用launch方法开始支付流程
biapay.launch(
  onSuccess: (response) {
    // 处理成功响应
  },
  onFailed: (error) {
    // 处理失败响应
  },
);
  • 访问onSuccessonFailed回调响应数据。onSuccessonFailed都以包含statusmessage键的Map对象形式返回数据列表。就像JSON响应一样,你可以通过键名访问数据。键名代表数据的名称。

  • 例如,status是一个status数据的键名。你可以通过status键名访问status数据。

// 调用launch方法开始支付流程
await biapay.launch(
  onSuccess: (response) {
    // 处理成功响应
    final orderId = response['orderId'];
    final status = response['status'];
    final currency = response['currency'];
    final amount = response['amount'];
    final biapayTransactionId = response['biapayTransactionId'];
    final transactionId = response['transactionId'];
    final biapaySignature = response['biapaySignature'];
    final message = response['message'];
    
    // 使用响应数据做些什么
  },
  onFailed: (error) {
    // 处理失败响应
    final status = error['status'];
    final message = error['message'];
    
    // 使用错误数据做些什么
  },
);

onSuccess是一个当支付流程成功完成时被调用的回调函数。

onFailed是一个当支付流程失败时被调用的回调函数。

onSuccessonFailed都以包含statusmessage键的JSON响应形式返回。


验证签名

  • 你可以使用verifySignature方法检查支付签名。verifySignature方法将返回一个Future对象。

  • verifySignature方法需要orderIdbiapayTransactionIdtransactionIdclientSecretbiapaySignature参数。

  • verifySignature方法将以包含签名验证过程的message的数据列表形式返回。

  • verifySignature方法将以包含orderIdbiapayTransactionIdtransactionIdbiapaySignaturegeneratedSignaturemessage键的Map对象形式返回数据。就像JSON响应一样,你可以通过键名访问数据。键名代表数据的名称。

// 调用verifySignature方法验证支付签名
final value = await biapay.verifySignature(
  orderIdVerify,
  biapayTransactionIdVerify,
  transactionIdVerify,
  clientSecret,
  biapaySignatureVerify
);

// 通过键名访问数据
final orderId = value['orderId'];
final biapayTransactionId = value['biapayTransactionId'];
final transactionId = value['transactionId'];
final biapaySignature = value['biapaySignature'];
final generatedSignature = value['generatedSignature'];
final message = value['message'];

响应

成功响应

  • onSuccess回调函数将以包含statusmessage键的数据列表形式返回。status键是一个字符串值,将返回支付流程的状态。message键是一个字符串值,将返回支付流程的消息。
{
  "orderId": "xxx",
  "status": "COMPLETED",
  "currency": "USD",
  "amount": 240,
  "biapayTransactionId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "transactionId": "xxxxx",
  "biapaySignature": "/*************",
  "message": "您的付款已成功完成。"
}

错误响应

  • onFailed回调函数将以包含statusmessage键的数据列表形式返回。status键是一个字符串值,将返回支付流程的状态。message键是一个字符串值,将返回支付流程的消息。
{
  "status": "FAILED",
  "message": "您的付款已失败。"
}

验证签名响应

{
  "orderId": "xxx",
  "biapayTransactionId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "transactionId": "xxxxx",
  "biapaySignature": "xxxxxxxxxxxxxxxxxxxxxxx",
  "generatedSignature": "xxxxxxxxxxxxxxxxxxxxxxx",
  "message": "签名验证成功。"
}

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

1 回复

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


biapay_gateway 是一个用于在 Flutter 应用中集成支付网关的插件。它可以帮助开发者轻松地集成支付功能,处理支付请求和响应。以下是使用 biapay_gateway 插件的基本步骤和示例代码。

1. 添加依赖

首先,你需要在 pubspec.yaml 文件中添加 biapay_gateway 插件的依赖。

dependencies:
  flutter:
    sdk: flutter
  biapay_gateway: ^1.0.0  # 请使用最新版本

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

2. 初始化支付网关

在你的 Flutter 应用中,首先需要初始化支付网关。通常这需要在应用启动时完成。

import 'package:biapay_gateway/biapay_gateway.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // 初始化支付网关
  await BiapayGateway.initialize(
    apiKey: 'your_api_key',
    environment: BiapayEnvironment.sandbox, // 或者 BiapayEnvironment.production
  );

  runApp(MyApp());
}

3. 发起支付请求

接下来,你可以在需要支付的地方发起支付请求。通常这会涉及到用户的订单信息、金额等。

import 'package:biapay_gateway/biapay_gateway.dart';

Future<void> makePayment() async {
  try {
    final paymentResponse = await BiapayGateway.makePayment(
      amount: 1000, // 金额(以分为单位)
      currency: 'USD', // 货币类型
      orderId: 'order_123', // 订单ID
      description: 'Payment for order #123', // 订单描述
      customerEmail: 'customer@example.com', // 客户邮箱
    );

    // 处理支付响应
    if (paymentResponse.status == PaymentStatus.success) {
      print('Payment successful: ${paymentResponse.transactionId}');
    } else {
      print('Payment failed: ${paymentResponse.message}');
    }
  } catch (e) {
    print('Error occurred: $e');
  }
}

4. 处理支付回调

支付完成后,你可能需要处理支付回调,以更新订单状态或通知用户。

BiapayGateway.setPaymentCallback((PaymentResponse response) {
  if (response.status == PaymentStatus.success) {
    // 支付成功,更新订单状态
    print('Payment successful: ${response.transactionId}');
  } else {
    // 支付失败,处理错误
    print('Payment failed: ${response.message}');
  }
});

5. 处理支付结果

支付完成后,你可以根据支付结果来更新 UI 或执行其他操作。

class PaymentScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Payment'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: () async {
            await makePayment();
          },
          child: Text('Pay Now'),
        ),
      ),
    );
  }
}

6. 处理错误和异常

在实际应用中,你可能会遇到各种错误和异常情况。确保你能够正确处理这些情况,并向用户提供友好的错误提示。

try {
  await BiapayGateway.makePayment(
    amount: 1000,
    currency: 'USD',
    orderId: 'order_123',
    description: 'Payment for order #123',
    customerEmail: 'customer@example.com',
  );
} on BiapayException catch (e) {
  print('Biapay Error: ${e.message}');
} catch (e) {
  print('Unexpected Error: $e');
}
回到顶部