Шаблоны Flutter

Создание приложения электронной коммерции с использованием Flutter, Back4App и интеграцией Stripe через облачный код

49min

Введение

Разработка приложения для электронной коммерции включает в себя несколько компонентов, включая списки продуктов, функциональность корзины покупок, безопасную обработку платежей, отслеживание заказов и отзывы пользователей. Сочетание мощного инструментария UI Flutter с масштабируемыми бэкенд-сервисами Back4App упрощает процесс разработки. Кроме того, интеграция Stripe для обработки платежей через Back4App Cloud Code позволяет безопасно и профессионально обрабатывать транзакции.

В этом учебном пособии вы создадите приложение для электронной коммерции с следующими функциями:

  • Списки продуктов: Отображение продуктов с изображениями, описаниями и ценами.
  • Корзина покупок: Добавление и удаление продуктов из корзины.
  • Пользовательские аккаунты: Управление профилями пользователей и адресами.
  • Безопасная оплата: Обработка платежей безопасно с использованием Stripe через Back4App Cloud Code.
  • Отслеживание заказов: Отслеживание статуса и истории заказов.
  • Отзывы и рейтинги: Позволить пользователям оставлять отзывы и оценки.

Предварительные требования

Чтобы следовать этому руководству, вам потребуется:

  • Flutter SDK установлен на вашем компьютере. Следуйте руководству по установке Flutter.
  • Базовые знания Flutter и Dart.
  • IDE или текстовый редактор такие как Visual Studio Code или Android Studio.
  • Аккаунт Back4App. Зарегистрируйтесь на Back4App.
  • Аккаунт Stripe. Зарегистрируйтесь на Stripe для получения API-ключей.
  • Node.js и npm установлены для разработки Cloud Code.



Шаг 1 – Настройка проекта Flutter

1.1. Создание нового проекта Flutter

Откройте терминал и выполните:

Bash


Перейдите в каталог проекта:

Bash


1.2. Добавить зависимости

Откройте pubspec.yaml и добавьте следующие зависимости:

YAML


Запустите flutter pub get для установки пакетов.

Примечание:

  • parse_server_sdk_flutter для интеграции с Back4App.
  • provider для управления состоянием.
  • cached_network_image для эффективной загрузки изображений.
  • flutter_stripe для интеграции Stripe на стороне клиента.
  • uuid для генерации уникальных идентификаторов.

Шаг 2 – Настройка Back4App

2.1. Создание нового приложения Back4App

  1. Нажмите на "Создать новое приложение".
  2. Введите "EcommerceApp" в качестве имени приложения и нажмите "Создать".

2.2. Настройка моделей данных

Нам нужно создать несколько классов в Back4App:

  • Продукт
  • Пользователь (встроенный класс)
  • Заказ
  • Элемент заказа
  • Отзыв

2.2.1. Класс продукта

  1. Перейдите в раздел "Database".
  2. Нажмите на "Create a class".
  3. Выберите "Custom" и введите "Product" в качестве имени класса.
  4. Добавьте следующие столбцы:
    • имя: Строка
    • описание: Строка
    • цена: Число
    • изображение: Файл
    • категория: Строка
    • инвентарь: Число

2.2.2. Класс Заказа

Создайте класс "Order" с следующими столбцами:

  • пользователь: Pointer<_User>
  • общаяСумма: Число
  • статус: Строка (Значения: "ожидание", "оплачено", "отправлено", "доставлено")
  • paymentIntentId: Строка (Для отслеживания платежа Stripe)
  • адресДоставки: Строка

2.2.3. Класс Заказного Элемента

Создайте "OrderItem" класс со следующими столбцами:

  • заказ: Указатель
  • продукт: Указатель
  • количество: Число
  • цена: Число

2.2.4. Класс Отзыва

Создайте "Review" класс со следующими столбцами:

  • продукт: Указатель
  • пользователь: Pointer<_User>
  • рейтинг: Число
  • комментарий: Строка

2.3. Получение учетных данных приложения

  1. Перейдите к Настройки приложения > Безопасность и ключи.
  2. Запишите ваш Идентификатор приложения и Ключ клиента.

Шаг 3 – Реализация управления продуктами

3.1. Инициализация Parse в Flutter

Откройте lib/main.dart и измените его:

Dart


Замените 'YOUR_APPLICATION_ID' и 'YOUR_CLIENT_KEY' на ваши учетные данные Back4App.

3.2. Создание модели продукта

Создайте каталог models в lib и добавьте product.dart:

Dart


3.3. Реализация сервиса продукта

Создайте каталог services в lib и добавьте product_service.dart:

Dart


3.4. Создание главного экрана

Создайте screens директорию в lib и добавьте home_screen.dart:

Dart


3.5. Экран деталей продукта

Создайте product_detail_screen.dart в lib/screens/:

Dart


Шаг 4 – Реализация учетных записей пользователей

4.1. Сервис аутентификации

Добавьте auth_service.dart в lib/services/:

Dart


4.2. Экраны аутентификации

Создайте login_screen.dart и signup_screen.dart в lib/screens/.

Экран входа:

Dart


Экран регистрации:

Dart


4.3. Обновите Main, чтобы включить AuthService

В main.dart, оберните MaterialApp с помощью MultiProvider:

Dart


4.4. Перенаправление на основе состояния аутентификации

Измените main.dart для проверки статуса аутентификации:

Dart


Шаг 5 – Функциональность Корзины

5.1. Создать Сервис Корзины

Добавить cart_service.dart в lib/services/:

Dart


5.2. Создать экран корзины

Добавить cart_screen.dart в lib/screens/:

Dart


Шаг 6 – Безопасная оплата с интеграцией Stripe через Cloud Code

6.1. Настройка учетной записи Stripe

  1. Зарегистрируйтесь для получения учетной записи Stripe.
  2. Получите ваш Публикуемый ключ и Секретный ключ в панели управления Stripe в разделе Разработчики > API ключи.

6.2. Установите SDK Stripe в Cloud Code

Back4App поддерживает функции Cloud Code, написанные на JavaScript. Мы напишем функции Cloud Code для обработки платежей.

6.2.1. Создайте проект Cloud Code

  1. В вашей панели управления Back4App перейдите в Настройки приложения > Функции Cloud Code.
  2. Нажмите "Редактировать код" для открытия редактора Cloud Code.

6.2.2. Инициализируйте npm и установите пакет Stripe

В терминале Cloud Code (предоставленном в редакторе) выполните:

Bash


Примечание: Cloud Code от Back4App использует Node.js версии 14.x, поэтому убедитесь в совместимости.

6.3. Создайте облачную функцию для платежного намерения

Создайте или измените main.js в редакторе облачного кода:

JS


Замените 'YOUR_STRIPE_SECRET_KEY' на ваш фактический секретный ключ Stripe.

Примечание по безопасности: Никогда не раскрывайте свой секретный ключ на стороне клиента. Храните его в безопасности в облачном коде.

6.4. Разверните облачный код

Нажмите "Развернуть" в редакторе облачного кода, чтобы развернуть ваши функции.

6.5. Реализация платежей в Flutter

6.5.1. Инициализация Stripe в Flutter

В main.dart, после Parse().initialize, добавьте:

Dart


Замените 'ВАШ_ПУБЛИЧНЫЙ_КЛЮЧ_STRIPE' на ваш публичный ключ Stripe.

6.5.2. Создание экрана оформления заказа

Добавьте checkout_screen.dart в lib/screens/:

Dart


6.5.3. Обработка подтверждения платежа

Создайте order_confirmation_screen.dart в lib/screens/:

Dart


6.6. Сохранение заказа в Back4App

Измените метод _processPayment для сохранения деталей заказа:

Dart


Шаг 7 – Отслеживание заказа

7.1. Создание сервиса заказа

Добавьте order_service.dart в lib/services/:

Dart


Шаг 7 – Отслеживание заказа

7.2. Создать модель заказа

Добавить order.dart в lib/models/:

Dart


7.3. Создать экран заказов

Добавить orders_screen.dart в lib/screens/:

Dart


Шаг 8 – Отзывы и рейтинги

8.1. Создать сервис отзывов

Добавить review_service.dart в lib/services/:

Dart


8.2. Создать модель отзыва

Добавить review.dart в lib/models/:

Dart


8.3. Обновить экран деталей продукта

В product_detail_screen.dart, добавьте раздел для отображения и отправки отзывов.

Dart


Заключение

В этом подробном руководстве вы создали приложение электронной коммерции с использованием Flutter и Back4App, интегрированное со Stripe для безопасной обработки платежей через Cloud Code. Вы реализовали ключевые функции, такие как списки продуктов, функциональность корзины покупок, аутентификация пользователей, отслеживание заказов и отзывы.

Ключевые выводы

  • Интеграция с Back4App: Упрощает управление бэкендом для вашего приложения на Flutter.
  • Интеграция с Stripe через Cloud Code: Безопасно обрабатывает платежи, не раскрывая конфиденциальные ключи.
  • Модульная архитектура: Разделение сервисов и моделей улучшает поддерживаемость.

Следующие шаги

  • Улучшение безопасности: Реализуйте правильную обработку ошибок и валидацию ввода.
  • Улучшения UI/UX: Усовершенствуйте пользовательский интерфейс для лучшего пользовательского опыта.
  • Управление запасами: Обновляйте запасы продуктов после покупки.
  • Email уведомления: Отправляйте пользователям электронные письма с подтверждением заказа.
  • Админ-панель: Создайте интерфейс администратора для управления продуктами и заказами.

Дополнительные ресурсы

Счастливого кодирования!