Flutter集成NGenius SDK插件ngenius_sdk的使用
Flutter集成NGenius SDK插件ngenius_sdk的使用
A comprehensive solution for processing payments with Ngenius in your Flutter app.
动机
Ngenius Flutter SDK简化了在Flutter应用中集成Ngenius支付网关的过程,提供了无缝支持信用卡支付、3DS和3DS2认证以及可定制UI组件。
索引
特性
- 与Ngenius支付网关无缝集成
- 支持信用卡支付
- 支持3DS和3DS2认证
- 可定制UI组件
开始使用
要使用此插件,请在pubspec.yaml
文件中添加ngenius_sdk
作为依赖项:
dependencies:
ngenius_sdk: ^0.0.8
用法
在Dart代码中导入包:
import 'package:ngenius_sdk/ngenius_sdk.dart';
要发起支付,请使用NgeniusCheckout
小部件:
NgeniusCheckout(
apiUrl: 'YOUR_API_URL',
apiKey: 'YOUR_API_KEY',
outletId: 'YOUR_OUTLET_ID',
currency: 'CURRENCY',
amount: 'AMOUNT', // 金额以整数形式表示
onPaymentCreated: () {
// 处理成功的支付创建
},
// 可选
onError: () {
// 处理支付错误
},
)
配置
确保您的项目中设置了以下权限:
Android
在AndroidManifest.xml
中添加互联网权限:
<uses-permission android:name="android.permission.INTERNET"/>
iOS
无需对iOS进行额外配置。
测试卡
4012001037141112
: 3DS激活4792445612017070
: 3DS拒绝5457210001000019
: 3DS2激活4000000000000002
: 3DS2拒绝
已知问题
- Amex不工作
- 需要构建适当的错误消息显示
附加信息
有关使用Ngenius SDK的更多详细信息,请参阅官方文档。
许可证
该项目受MIT许可证保护 - 详情请参阅LICENSE文件。
问题与反馈
请在我们的问题跟踪器中提交问题、错误或功能请求。
贡献
欢迎贡献!请随时提交Pull Request。
示例代码
import 'package:flutter/material.dart';
import 'package:ngenius_sdk/ngenius_sdk.dart';
import 'package:ngenius_sdk_example/config.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
home: Scaffold(
body: Center(
child: Builder(
builder: (context) => ElevatedButton(
onPressed: () => Navigator.push(
context,
MaterialPageRoute(
builder: (ctx) => const CheckoutScreen(),
),
),
child: const Text("Initiate Checkout"),
),
),
),
),
);
}
}
class CheckoutScreen extends StatelessWidget {
const CheckoutScreen({super.key});
[@override](/user/override)
Widget build(BuildContext context) {
return NgeniusCheckout(
apiUrl: apiUrl,
apiKey: apiKey,
outletId: outletId,
currency: currency,
amount: amount,
onPaymentCreated: () {
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(
content: Text('Success'),
),
);
Navigator.pop(context);
},
// logLevel: LogLevel.all,
// onError: () => print('An error occured'),
);
}
}
更多关于Flutter集成NGenius SDK插件ngenius_sdk的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter集成NGenius SDK插件ngenius_sdk的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在Flutter项目中集成并使用ngenius_sdk
插件通常涉及几个关键步骤:添加依赖、配置项目、初始化SDK以及调用SDK提供的功能。以下是一个详细的代码案例,展示了如何在Flutter项目中集成和使用ngenius_sdk
插件。
1. 添加依赖
首先,在Flutter项目的pubspec.yaml
文件中添加ngenius_sdk
依赖:
dependencies:
flutter:
sdk: flutter
ngenius_sdk: ^latest_version # 请替换为实际的最新版本号
然后运行flutter pub get
来安装依赖。
2. 配置项目
通常,SDK插件可能需要在Info.plist
(iOS)或AndroidManifest.xml
(Android)中添加一些配置。根据ngenius_sdk
的文档,这些配置可能包括必要的权限声明、API密钥等。这里假设你需要添加API密钥(具体配置请参考SDK文档):
iOS (Info.plist
)
<key>NGeniusSDKApiKey</key>
<string>YOUR_API_KEY_HERE</string>
Android (AndroidManifest.xml
)
<meta-data
android:name="com.ngenius.sdk.API_KEY"
android:value="YOUR_API_KEY_HERE" />
3. 初始化SDK
在你的Flutter应用的入口文件(通常是main.dart
)中初始化ngenius_sdk
。
import 'package:flutter/material.dart';
import 'package:ngenius_sdk/ngenius_sdk.dart';
void main() {
WidgetsFlutterBinding.ensureInitialized();
// 初始化NGenius SDK
NGeniusSDK.instance.initialize('YOUR_API_KEY_HERE').then((isInitialized) {
if (isInitialized) {
runApp(MyApp());
} else {
// 处理初始化失败的情况
runApp(MaterialApp(
home: Scaffold(
body: Center(
child: Text('SDK Initialization Failed'),
),
),
));
}
}).catchError((error) {
// 处理初始化时发生的错误
runApp(MaterialApp(
home: Scaffold(
body: Center(
child: Text('Error Initializing SDK: $error'),
),
),
));
});
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('NGenius SDK Demo'),
),
body: Center(
child: ElevatedButton(
onPressed: () {
// 调用SDK的功能,例如开始会话
NGeniusSDK.instance.startSession().then((sessionId) {
print('Session started with ID: $sessionId');
}).catchError((error) {
print('Error starting session: $error');
});
},
child: Text('Start Session'),
),
),
);
}
}
4. 调用SDK功能
在上面的示例中,我们展示了如何在按钮点击时调用startSession
方法。根据ngenius_sdk
提供的API,你可以调用其他功能,如结束会话、发送事件等。
// 示例:结束会话
NGeniusSDK.instance.endSession().then((_) {
print('Session ended');
}).catchError((error) {
print('Error ending session: $error');
});
// 示例:发送事件
Map<String, dynamic> eventData = {
'eventName': 'custom_event',
'properties': {
'key1': 'value1',
'key2': 'value2',
},
};
NGeniusSDK.instance.sendEvent(eventData).then((_) {
print('Event sent');
}).catchError((error) {
print('Error sending event: $error');
});
结论
以上代码案例展示了如何在Flutter项目中集成并使用ngenius_sdk
插件。请确保替换YOUR_API_KEY_HERE
为你的实际API密钥,并根据SDK文档调整配置和API调用。如果你遇到任何问题,请参考ngenius_sdk
的官方文档或寻求其支持团队的帮助。