import 'package:get/get.dart'; import '../../../data/services/pay_service.dart'; class PaymentController extends GetxController { final PayService _payService = Get.find(); // 支付状态 final RxBool isLoading = false.obs; final RxString paymentStatus = ''.obs; final RxString errorMessage = ''.obs; // 测试订单信息 final RxString testOrderId = ''.obs; final RxDouble testAmount = 0.01.obs; // 测试金额 1分钱 @override void onInit() { super.onInit(); // 生成测试订单ID testOrderId.value = 'test_${DateTime.now().millisecondsSinceEpoch}'; } /// 测试微信支付 Future testWechatPayment() async { try { isLoading.value = true; paymentStatus.value = '正在发起支付...'; errorMessage.value = ''; // 调用支付服务,使用回调处理结果 final launched = await _payService.processWechatPayment( orderId: testOrderId.value, amount: (testAmount.value * 100).toInt(), // 转换为分 description: '微信支付测试', onResult: (success, message) { // 支付结果回调 isLoading.value = false; if (success) { paymentStatus.value = '支付成功!'; errorMessage.value = ''; Get.snackbar( '支付成功', message ?? '微信支付测试完成', snackPosition: SnackPosition.TOP, ); } else { paymentStatus.value = '支付失败'; errorMessage.value = message ?? '未知错误'; Get.snackbar( '支付失败', message ?? '未知错误', snackPosition: SnackPosition.TOP, ); } }, ); if (!launched) { // 如果支付没有成功启动 isLoading.value = false; paymentStatus.value = '支付启动失败'; errorMessage.value = '无法启动微信支付'; Get.snackbar('支付启动失败', '无法启动微信支付'); } } catch (e) { isLoading.value = false; paymentStatus.value = '支付异常'; errorMessage.value = e.toString(); Get.snackbar('支付异常', e.toString()); } } /// 重置状态 void resetStatus() { paymentStatus.value = ''; errorMessage.value = ''; testOrderId.value = 'test_${DateTime.now().millisecondsSinceEpoch}'; } /// 更新测试金额 void updateTestAmount(double amount) { testAmount.value = amount; } }