nnsdk 1.1.8 copy "nnsdk: ^1.1.8" to clipboard
nnsdk: ^1.1.8 copied to clipboard

PlatformiOS

nice sdk

example/lib/main.dart

import 'dart:io';

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

import 'package:nnsdk/Entity/BridgingEntity.dart';
import 'package:nnsdk/Entity/CommodityItemEntity.dart';
import 'package:nnsdk/Entity/ConfigEntity.dart';
import 'package:nnsdk/Entity/InitResultEntity.dart';
import 'package:nnsdk/Entity/PayResultEntity.dart';
import 'package:nnsdk/nnsdk.dart';

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

class MyApp extends StatefulWidget {
  const MyApp({super.key});

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {

  List<CommodityItemEntity> products = [];

  bool? showNoNetworkWidget;

  @override
  void initState() {
    super.initState();
    initSDK();
  }

  /// 初始化SDK
  Future<void> initSDK() async {
    BridgingEntity bridgingEntity = BridgingEntity(addOrder: "/yuai-bridging/brgclient/yuaicme/yuaiCmeAddOrder",userLogin: "/yuai-bridging/brgclient/yuaicme/yuaiCmeUserLogin", updateFields: "/yuai-bridging/brgclient/yuaicme/yuaiCmeUpdateFields", goodsList: "/yuai-bridging/brgclient/yuaicme/yuaiCmeGoodsList", verifyOrder: "/yuai-bridging/brgclient/yuaicme/yuaiCmeVerifyOrder", uploadShenceData: "/yuai-bridging/brgclient/yuaicme/yuaiCmeUploadShenceData", reportState: "/yuai-bridging/brgclient/yuaicme/yuaiCmeReportState", recoverOrder: "/yuai-bridging/brgclient/yuaicme/yuaiCmeRecoverOrder", verifyOrderV2: "/yuai-bridging/brgclient/yuaicomopen/yuaiIosVerifyOrderV2", appStartNew: "/yuai-bridging/brgclient/yuaicme/yuaiCmeAppStartNew");
    InitResultEntity entity = await Nnsdk.instance.initSdk(config: ConfigEntity(isDebug: true,isLog: true,host: "https://testinn.jidiandian.cn",prdId: "1710208"),bridging:bridgingEntity);
    if (entity.success == true) {
      // 初始化成功,展示根视图
      setState(() {
        showNoNetworkWidget = false;
        products = Nnsdk.instance.productList;
      });
      List<CommodityItemEntity> list = Nnsdk.instance.productList;
    } else {
      // 初始化失败,展示网络连接失败UI
      setState(() {
        showNoNetworkWidget = true;
      });

    }
  }
  
  void onOrder(String commodityId) async {
    trackClick();
    PayResultEntity resp = await Nnsdk.instance.createOrder(commodityId: commodityId);
    if (resp?.status == true) {
      print("支付成功 ${resp!.toJson()}");
    } else {
      print("支付失败 ${resp!.code} ${resp!.toJson()}");

    }
  }
  
  void trackClick() {
    Nnsdk.instance.track(eventName: "pay_click",params: {"action": "点击"});

  }
  
  void restore() {
    Nnsdk.instance.restore(Nnsdk.instance.deviceId);
  }

  void finishOrder() async {
    bool success = await Nnsdk.instance.finishUnVerifyOrders(false,Nnsdk.instance.deviceId);
    print("完成未结束的订单 $success");
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Plugin example app'),
        ),
        body:
        Center(
          child: showNoNetworkWidget == null ? Container() : showNoNetworkWidget == true ? GestureDetector(onTap: () {
            initSDK();
          },child: Container(width: 300,height: 50,color: Colors.amber,alignment: Alignment.center,child: Text("网络无法连接,请重试"),),) : Column(
            children: [
              ...products.map((e) => GestureDetector(onTap: () {
                onOrder(e.commodityId ?? "");
              },child: Container(alignment: Alignment.center,
          width: 300,
          height: 50,
          color: Colors.lightGreen,
          margin: EdgeInsets.only(top: 20),
          child: Text("${e.commodityName} 原价¥${e.unitPrice}"),),),).toList(),
              GestureDetector(child: Container(alignment: Alignment.center,margin: EdgeInsets.only(top: 20),width: 300,height: 50,child: Text("恢复购买"),),onTap: (){
                restore();
              },),
              GestureDetector(child: Container(alignment: Alignment.center,margin: EdgeInsets.only(top: 20),width: 300,height: 50,child: Text("处理未完成订单"),),onTap: (){
                finishOrder();
              },),
            ],
          ),
        ),

      ),
    );
  }
}
1
likes
120
points
458
downloads

Publisher

unverified uploader

Weekly Downloads

nice sdk

Documentation

API reference

License

Apache-2.0 (license)

Dependencies

connectivity_plus, crypto, dio, encrypt, flutter, http_proxy, plugin_platform_interface

More

Packages that depend on nnsdk