|
@@ -4,6 +4,7 @@ import 'package:apple_pay/apple_pay.dart';
|
|
|
import 'package:classify_photo/classify_photo.dart';
|
|
import 'package:classify_photo/classify_photo.dart';
|
|
|
import 'package:clean/data/repositories/user_repository.dart';
|
|
import 'package:clean/data/repositories/user_repository.dart';
|
|
|
import 'package:clean/module/store/payment_status_manager.dart';
|
|
import 'package:clean/module/store/payment_status_manager.dart';
|
|
|
|
|
+import 'package:clean/utils/error_handler.dart';
|
|
|
import 'package:flutter/Material.dart';
|
|
import 'package:flutter/Material.dart';
|
|
|
import 'package:get/get.dart';
|
|
import 'package:get/get.dart';
|
|
|
import 'package:in_app_purchase/in_app_purchase.dart';
|
|
import 'package:in_app_purchase/in_app_purchase.dart';
|
|
@@ -74,6 +75,11 @@ class StoreController extends BaseController implements PaymentStatusCallback {
|
|
|
|
|
|
|
|
LoadingDialog.show("");
|
|
LoadingDialog.show("");
|
|
|
|
|
|
|
|
|
|
+ Future.delayed(const Duration(seconds: 20), () {
|
|
|
|
|
+ LoadingDialog.hide();
|
|
|
|
|
+ ToastUtil.show("Restore record not found");
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
final result = await ApplePay().restore();
|
|
final result = await ApplePay().restore();
|
|
|
if (result["success"] == true) {
|
|
if (result["success"] == true) {
|
|
|
// LoadingDialog.hide();
|
|
// LoadingDialog.hide();
|
|
@@ -86,11 +92,6 @@ class StoreController extends BaseController implements PaymentStatusCallback {
|
|
|
print('恢复失败: ${result['error']}');
|
|
print('恢复失败: ${result['error']}');
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- Future.delayed(const Duration(seconds: 20), () {
|
|
|
|
|
- LoadingDialog.hide();
|
|
|
|
|
- ToastUtil.show("Restore record not found");
|
|
|
|
|
- });
|
|
|
|
|
-
|
|
|
|
|
// AgilePay.restore(success: (String? result) {
|
|
// AgilePay.restore(success: (String? result) {
|
|
|
// // LoadingDialog.hide();
|
|
// // LoadingDialog.hide();
|
|
|
// }, payError: (int error, String? errorMessage) {
|
|
// }, payError: (int error, String? errorMessage) {
|
|
@@ -126,33 +127,35 @@ class StoreController extends BaseController implements PaymentStatusCallback {
|
|
|
int payMethod = paymentWay.payMethod;
|
|
int payMethod = paymentWay.payMethod;
|
|
|
LoadingDialog.show("");
|
|
LoadingDialog.show("");
|
|
|
try {
|
|
try {
|
|
|
- OrderPayResponse response =
|
|
|
|
|
- await storeRepository.orderPay(storeItem.id, payPlatform, payMethod);
|
|
|
|
|
-
|
|
|
|
|
- dynamic payInfo;
|
|
|
|
|
- String outTradeNo = response.outTradeNo;
|
|
|
|
|
- if (payPlatform == PayPlatform.apple) {
|
|
|
|
|
- payInfo = ApplePayInfo(
|
|
|
|
|
- storeItem.appleGoodsId,
|
|
|
|
|
- storeItem.subscribable == 1
|
|
|
|
|
- ? ProductType.nonConsumable
|
|
|
|
|
- : ProductType.consumable,
|
|
|
|
|
- response.appAccountToken);
|
|
|
|
|
- }
|
|
|
|
|
- Future.delayed(const Duration(seconds: 30), () {
|
|
|
|
|
|
|
+ // OrderPayResponse response =
|
|
|
|
|
+ storeRepository.orderPay(storeItem.id, payPlatform, payMethod).then((response) async {
|
|
|
|
|
+
|
|
|
|
|
+ dynamic payInfo;
|
|
|
|
|
+ String outTradeNo = response.outTradeNo;
|
|
|
|
|
+ if (payPlatform == PayPlatform.apple) {
|
|
|
|
|
+ payInfo = ApplePayInfo(
|
|
|
|
|
+ storeItem.appleGoodsId,
|
|
|
|
|
+ storeItem.subscribable == 1
|
|
|
|
|
+ ? ProductType.nonConsumable
|
|
|
|
|
+ : ProductType.consumable,
|
|
|
|
|
+ response.appAccountToken);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ final result = await ApplePay().purchase(productId: storeItem.appleGoodsId, appAccountToken: response.appAccountToken);
|
|
|
|
|
+ if (result["success"] == true) {
|
|
|
|
|
+ var receipt = result['receipt'];
|
|
|
|
|
+ print('购买成功: ${result['receipt']}');
|
|
|
|
|
+ checkPaymentStatus(outTradeNo, paymentWay, storeItem, receiptData: receipt);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ LoadingDialog.hide();
|
|
|
|
|
+ ToastUtil.show("Pay Error");
|
|
|
|
|
+ print('购买失败: ${result['error']}');
|
|
|
|
|
+ }
|
|
|
|
|
+ }).catchError((error) {
|
|
|
LoadingDialog.hide();
|
|
LoadingDialog.hide();
|
|
|
|
|
+ ErrorHandler.toastError(error);
|
|
|
});
|
|
});
|
|
|
- final result = await ApplePay().purchase(productId: storeItem.appleGoodsId, appAccountToken: response.appAccountToken);
|
|
|
|
|
- if (result["success"] == true) {
|
|
|
|
|
- // LoadingDialog.hide();
|
|
|
|
|
- var receipt = result['receipt'];
|
|
|
|
|
- print('购买成功: ${result['receipt']}');
|
|
|
|
|
- checkPaymentStatus(outTradeNo, paymentWay, storeItem, receiptData: receipt);
|
|
|
|
|
- } else {
|
|
|
|
|
- LoadingDialog.hide();
|
|
|
|
|
- ToastUtil.show("Pay Error");
|
|
|
|
|
- print('购买失败: ${result['error']}');
|
|
|
|
|
- }
|
|
|
|
|
|
|
+
|
|
|
// AgilePay.startPay(payInfo, success: (String? result) {
|
|
// AgilePay.startPay(payInfo, success: (String? result) {
|
|
|
// LoadingDialog.show("");
|
|
// LoadingDialog.show("");
|
|
|
// checkPaymentStatus(outTradeNo, paymentWay, storeItem,
|
|
// checkPaymentStatus(outTradeNo, paymentWay, storeItem,
|