import 'package:myket_iap/myket_iap.dart'; import 'package:myket_iap/util/purchase.dart'; import '../config.dart'; import 'payment_gateway.dart'; /// پرداختِ درون‌برنامه‌ایِ مایکت (flavorِ `myket`). class MyketPaymentGateway implements PaymentGateway { bool _inited = false; @override String get store => 'myket'; @override Future connect() async { if (_inited) return; await MyketIAP.init(rsaKey: AppConfig.myketRsaKey, enableDebugLogging: false); _inited = true; } @override Future purchase(String productSku) async { await connect(); final Map result = await MyketIAP.launchPurchaseFlow(sku: productSku, payload: 'hakemsho'); final Purchase? purchase = result[MyketIAP.PURCHASE] as Purchase?; if (purchase == null || purchase.mToken.isEmpty) { return const PurchaseResult.failure(); } return PurchaseResult.success( token: purchase.mToken, purchaseData: purchase.mOriginalJson, signature: purchase.mSignature, // کالای مصرفی (سکه/بلیت) باید مصرف شود تا کاربر بتواند دوباره بخرد. onConfirmed: () => MyketIAP.consume(purchase: purchase), ); } }