Flutter高仿微信-第20篇-支付-充值

16

Flutter高仿微信-第20篇-支付-充值

Flutter高仿微信-第20篇-支付-充值

在本篇中,我们将实现一个高仿微信的支付功能,包括充值和模拟充值成功的逻辑。由于我们没有接入银行系统,因此只会模拟充值功能,并且在充值成功后,将总金额保存到服务器。

一、项目结构首先,让我们来看一下项目的基本结构:

```dartlib/

main.dartmodels/

user_model.dartpayment_model.dartwidgets/

custom_keyboard.dartpayment_page.dart...

```

二、自定义数字键盘在支付页面,我们需要隐藏系统键盘并使用自定义数字键盘输入。我们可以使用 `showKeyboard` 方法来显示自定义键盘。

```dart// lib/widgets/custom_keyboard.dartimport 'package:flutter/material.dart';

class CustomKeyboard extends StatefulWidget {

@override _CustomKeyboardState createState() => _CustomKeyboardState();

}

class _CustomKeyboardState extends State {

final List numbers = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'];

@override Widget build(BuildContext context) {

return Scaffold(

appBar: AppBar(

title: Text('自定义数字键盘'),

),

body: Column(

children: [

Expanded(

child: GridView.count(

crossAxisCount:3,

shrinkWrap: true,

physics: NeverScrollableScrollPhysics(),

childAspectRatio:1.0,

children: numbers.map((number) {

return Container(

margin: EdgeInsets.all(5),

decoration: BoxDecoration(

color: Colors.blue[100],

borderRadius: BorderRadius.circular(10),

),

child: Center(

child: Text(

number,

style: TextStyle(fontSize:24, color: Colors.white),

),

),

);

}).toList(),

),

),

],

),

);

}

}

```

三、支付页面现在,让我们来看一下支付页面的实现:

```dart// lib/widgets/payment_page.dartimport 'package:flutter/material.dart';

import 'package:your_app/models/payment_model.dart';

class PaymentPage extends StatefulWidget {

@override _PaymentPageState createState() => _PaymentPageState();

}

class _PaymentPageState extends State {

final TextEditingController _amountController = TextEditingController();

void _onSubmit() async {

// 模拟充值功能 await Future.delayed(Duration(seconds:2));

PaymentModel paymentModel = PaymentModel(

amount: double.parse(_amountController.text),

status: 'success',

);

// 将总金额保存到服务器 await savePaymentToServer(paymentModel);

ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text('充值成功!')));

}

@override Widget build(BuildContext context) {

return Scaffold(

appBar: AppBar(

title: Text('支付'),

),

body: Padding(

padding: const EdgeInsets.all(16.0),

child: Column(

children: [

TextField(

controller: _amountController,

decoration: InputDecoration(

labelText: '金额',

border: OutlineInputBorder(),

),

),

SizedBox(height:20),

ElevatedButton(

onPressed: _onSubmit,

child: Text('充值'),

),

],

),

),

);

}

Future savePaymentToServer(PaymentModel paymentModel) async {

// 模拟保存到服务器的逻辑 await Future.delayed(Duration(seconds:2));

print('保存到服务器成功!');

}

}

```

四、总结在本篇中,我们实现了一个高仿微信的支付功能,包括自定义数字键盘和模拟充值功能。我们使用 `showKeyboard` 方法来显示自定义键盘,并在充值成功后,将总金额保存到服务器。

当然,这只是一个简单的示例,如果你需要更复杂的支付逻辑,请根据实际需求进行调整。

支付flutter微信

版权声明:除非特别标注,否则均为网络文章,侵权请联系站长删除。

上一篇 微信小程序面试题【100道】

下一篇 微信小程序中的分包使用介绍