Flutter支付功能插件nhn_payment的使用

Flutter支付功能插件nhn_payment的使用

Flutter NHN KCP支付插件。

nhn_payment_widget

开发信息

详情请参阅NHN开发者中心

安装

pubspec.yaml文件中添加依赖:

dependencies:
  nhn_payment: ^<latest_version>

设置指南

Android

  1. app/build.gradle中设置minSDK版本:
minSdkVersion 19
  1. AndroidManifest.xml中添加intent queries
<manifest>
    <queries>
         <package android:name="com.shcard.smartpay" />
         <package android:name="com.shinhancard.smartshinhan" />
         <package android:name="com.hyundaicard.appcard" />
         <package android:name="com.lumensoft.touchenappfree" />
         <package android:name="kr.co.samsungcard.mpocket" />
         <package android:name="nh.smart.nhallonepay" />
         <package android:name="com.kbcard.cxh.appcard" />
         <package android:name="com.kbstar.liivbank" />
         <package android:name="com.kbstar.reboot" />
         <package android:name="kvp.jjy.MispAndroid320" />
         <package android:name="com.lcacApp" />
         <package android:name="com.hanaskcard.paycla" />
         <package android:name="kr.co.hanamembers.hmscustomer" />
         <package android:name="kr.co.citibank.citimobile" />
         <package android:name="com.wooricard.wpay" />
         <package android:name="com.wooricard.smartapp" />
         <package android:name="com.wooribank.smart.npib" />
         <package android:name="viva.republica.toss" />
         <package android:name="com.nhnent.payapp" />
         <package android:name="com.ssg.serviceapp.android.egiftcertificate" />
         <package android:name="com.kakao.talk" />
         <package android:name="com.nhn.android.search" />
         <package android:name="com.lotte.lpay" />
         <package android:name="com.lottemembers.android" />
         <package android:name="com.samsung.android.spay" />
         <package android:name="com.samsung.android.spaylite" />
         <package android:name="com.lge.lgpay" />
         <package android:name="com.TouchEn.mVaccine.webs" />
         <package android:name="kr.co.shiftworks.vguardweb" />
         <package android:name="com.ahnlab.v3mobileplus" />
         <package android:name="com.kftc.bankpay.android" />
     </queries>
</manifest>

iOS

  1. Info.plist中添加LSApplicationQueriesSchemes
<key>LSApplicationQueriesSchemes</key>
<array>
   <string>wooripay</string>
   <string>NewSmartPib</string>
   <string>citimobileapp</string>
   <string>paycoapplogin</string>
   <string>payco</string>
   <string>lpayapp</string>
   <string>nhallonepayansimclick</string>
   <string>shinhan-sr-ansimclick</string>
   <string>smshinhanansimclick</string>
   <string>hdcardappcardansimclick</string>
   <string>smhyundaiansimclick</string>
   <string>mpocket.online.ansimclick</string>
   <string>scardcertiapp</string>
   <string>hanawalletmembers</string>
   <string>cloudpay</string>
   <string>oneqpay</string>
   <string>nhappcardansimclick</string>
   <string>nonghyupcardansimclick</string>
   <string>lotteappcard</string>
   <string>lottesmartpay</string>
   <string>kb-acp</string>
   <string>ispmobile</string>
   <string>liivbank</string>
   <string>newliiv</string>
   <string>citicardappkr</string>
   <string>citispay</string>
   <string>lmslpay</string>
   <string>shinsegaeeasypayment</string>
   <string>kakaotalk</string>
   <string>supertoss</string>
   <string>samsungpay</string>
   <string>callonlinepay</string>
   <string>com.wooricard.wcard</string>
   <string>payco://</string>
   <string>payco://payment/online/linkaccount?from=payco</string>
   <string>payco://payment/online/linkaccount?from=apple&amp;url=</string>
   <string>payco://payment/online/linkaccount?from=apple</string>
   <string>naversearchapp</string>
   <string>naversearchthirdlogin</string>
   <string>kakaobeabbcd57061040ee0a7864a7f759dd0</string>
   <string>kakaokompassauth</string>
   <string>storykompassauth</string>
   <string>kakaolink</string>
   <string>kakaotalk-5.9.7</string>
</array>

使用

以下是一个完整的示例代码,展示了如何使用NhnPayment插件:

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

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

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

  [@override](/user/override)
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  [@override](/user/override)
  void initState() {
    super.initState();
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Plugin example app'),
        ),
        body: NhnPayment(
          url: "https://testsmpay.kcp.co.kr/pay/mobileGW.kcp", // 测试URL
          siteCode: "T0000",
          paymentNumber: "P12203", // 需要在服务器上注册的信息
          payAmount: 10000, // 需要在服务器上注册的信息
          productName: "ProductName",
          paymentMethod: "CARD",
          returnUrl: "returnUrl", // 服务器返回URL
          approvalKey: "approvalKey", // approvalKey
          payUrl: "https://testsmpay.kcp.co.kr/pay/mobileGW.kcp", // 测试URL
          shopUserId: "1",
          traceNo: "T00001L7892",
        ),
      ),
    );
  }
}

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

1 回复

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


nhn_payment 是一个用于在 Flutter 应用中集成 NHN Cloud 支付服务的插件。通过这个插件,你可以轻松地在应用中实现支付功能。以下是使用 nhn_payment 插件的基本步骤和示例代码。

1. 添加依赖

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

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

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

2. 初始化插件

在使用 nhn_payment 插件之前,你需要对其进行初始化。通常,你可以在 main.dart 文件中进行初始化。

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

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // 初始化 NHN Payment
  await NHNPayment.initialize(
    appKey: 'YOUR_APP_KEY',  // 你的 NHN Cloud App Key
    companyId: 'YOUR_COMPANY_ID',  // 你的公司 ID
    storeId: 'YOUR_STORE_ID',  // 你的商店 ID
  );

  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'NHN Payment Example',
      home: PaymentScreen(),
    );
  }
}

3. 实现支付功能

接下来,你可以在应用的某个页面(例如 PaymentScreen)中实现支付功能。以下是一个简单的示例:

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

class PaymentScreen extends StatelessWidget {
  Future<void> _startPayment() async {
    try {
      // 创建支付请求
      final paymentRequest = PaymentRequest(
        amount: 1000,  // 支付金额
        orderId: 'ORDER_123456',  // 订单 ID
        productName: 'Sample Product',  // 商品名称
        currency: 'KRW',  // 货币类型
      );

      // 启动支付
      final paymentResult = await NHNPayment.startPayment(paymentRequest);

      // 处理支付结果
      if (paymentResult.isSuccess) {
        print('Payment successful: ${paymentResult.transactionId}');
      } else {
        print('Payment failed: ${paymentResult.errorMessage}');
      }
    } catch (e) {
      print('Error during payment: $e');
    }
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('NHN Payment Example'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: _startPayment,
          child: Text('Start Payment'),
        ),
      ),
    );
  }
}
回到顶部