Flutter支付集成插件paytm_routersdk的使用

Flutter支付集成插件paytm_routersdk的使用

使用此包作为库

1. 添加依赖

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

dependencies:
  paytm_routersdk: ^1.0.2

2. 安装包

可以通过命令行安装包:

使用 Flutter:

$ flutter pub get

或者,您的编辑器可能支持 flutter pub get。请查阅您的编辑器文档以了解更多信息。

3. 导入包

在 Dart 代码中导入包:

import 'package:paytm_routersdk/paytm_routersdk.dart';

4. 调用交易方法

在您的代码中调用交易方法:

try {
  // 开始交易
  var response = await PaytmRouterSdk.startTransaction(
    mid, // 商户ID
    orderId, // 订单ID
    amount, // 交易金额
    txnToken, // 交易令牌
    callbackUrl, // 回调URL
    isStaging // 是否为测试环境
  );
  
  // 处理响应
  response.then((value) {
    print(value);
    setState(() {
      result = value.toString();
    });
  }).catchError((onError) {
    if (onError is PlatformException) {
      setState(() {
        result = onError.message + " \n  " + onError.details.toString();
      });
    } else {
      setState(() {
        result = onError.toString();
      });
    }
  });
} catch (err) {
  result = err.message;
}

示例代码

文件:example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:paytm_routersdk_example/home_screen.dart';

void main() {
  runApp(MaterialApp(
    debugShowCheckedModeBanner: false,
    theme: ThemeData(brightness: Brightness.dark),
    home: Scaffold(
      appBar: AppBar(
        title: const Text('Paytm Router SDK 示例应用'),
      ),
      body: const HomeScreen(),
    ),
  ));
}

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

1 回复

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


当然,我可以为你提供一个关于如何在Flutter项目中集成并使用paytm_routersdk插件的示例代码。paytm_routersdk是用于集成Paytm支付功能的Flutter插件。以下是一个基本的集成步骤和示例代码。

1. 添加依赖

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

dependencies:
  flutter:
    sdk: flutter
  paytm_routersdk: ^latest_version  # 请确保使用最新版本

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

2. 配置Android

android/app/src/main/AndroidManifest.xml中,添加以下权限和网络配置:

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

<application
    ... >
    <meta-data
        android:name="com.paytm.CLIENT_ID"
        android:value="YOUR_PAYTM_CLIENT_ID"/>
    <meta-data
        android:name="com.paytm.MID"
        android:value="YOUR_PAYTM_MID"/>
    <meta-data
        android:name="com.paytm.CHANNEL_ID"
        android:value="WEB_STAGING"/> <!-- 或者其他你使用的环境 -->
    <meta-data
        android:name="com.paytm.CHECKSUM_GENERATION_URL"
        android:value="YOUR_CHECKSUM_GENERATION_URL"/>
    <meta-data
        android:name="com.paytm.INDUSTRY_TYPE"
        android:value="Retail"/>
    <meta-data
        android:name="com.paytm.WEBSITE"
        android:value="YOUR_WEBSITE"/>
    <activity
        android:name="io.flutter.embedding.android.FlutterActivity"
        ... >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name="com.paytm.pgsdk.PaytmPGActivity"
        android:theme="@style/AppTheme"
        android:screenOrientation="portrait">
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
        </intent-filter>
    </activity>
</application>

请替换YOUR_PAYTM_CLIENT_IDYOUR_PAYTM_MIDYOUR_CHECKSUM_GENERATION_URLYOUR_WEBSITE为你的实际Paytm配置。

3. 配置iOS(可选)

如果你也在iOS上集成,需要类似地在Info.plist中添加配置,但通常Paytm主要支持Android端,iOS端可能需要其他支付网关。

4. 初始化并使用Paytm支付

在你的Flutter代码中,你可以如下初始化并使用Paytm支付:

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: PaytmPaymentScreen(),
    );
  }
}

class PaytmPaymentScreen extends StatefulWidget {
  @override
  _PaytmPaymentScreenState createState() => _PaytmPaymentScreenState();
}

class _PaytmPaymentScreenState extends State<PaytmPaymentScreen> {
  void initiatePaytmPayment() async {
    String mid = "YOUR_PAYTM_MID";
    String orderId = "ORDER_ID_GENERATED_BY_YOUR_SERVER";
    double amount = 100.0; // 金额,单位为卢比
    String currency = "INR";
    String callbackUrl = "YOUR_CALLBACK_URL";
    Map<String, dynamic> txnTokenMap = await PaytmChecksumHelper.generateChecksum(
      mid: mid,
      orderId: orderId,
      amount: amount,
      currency: currency,
      merchantKey: "YOUR_PAYTM_MERCHANT_KEY", // 你的Paytm商户密钥
      serverUrl: "YOUR_CHECKSUM_GENERATION_URL"
    );

    String txnToken = txnTokenMap["CHECKSUMHASH"];

    try {
      bool status = await PaytmPayment.startPayment(
        mid: mid,
        orderId: orderId,
        txnToken: txnToken,
        amount: amount.toString(),
        callbackUrl: callbackUrl,
        isProduction: false // 如果是生产环境,请设置为true
      );

      if (status) {
        print("Payment Success");
      } else {
        print("Payment Failed");
      }
    } catch (e) {
      print("Error in payment: $e");
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Paytm Payment Integration"),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: initiatePaytmPayment,
          child: Text("Pay Now"),
        ),
      ),
    );
  }
}

注意事项

  1. 安全性:请确保你的商户密钥(merchantKey)和其他敏感信息不会被泄露。
  2. 服务器生成订单ID和校验和:在实际生产环境中,订单ID和校验和(CHECKSUMHASH)通常由你的服务器端生成,而不是在客户端。
  3. 回调处理:Paytm支付完成后,会回调到你指定的callbackUrl,你需要处理这个回调以更新订单状态。

希望这个示例能帮助你顺利集成Paytm支付功能!

回到顶部