buyAppleProduct method
Implementation
Future<void> buyAppleProduct({
required String callback,
required String uuid,
required String type,
required String identifier,
required String orderId,
}) async {
try {
await Purchases.setAttributes({"order_no": orderId});
Offerings domain = await Purchases.getOfferings();
List<Package> targetPackages = [];
for (var offering in domain.all.values) {
if (offering.identifier == identifier) {
print("有当前商品可发起支付");
targetPackages = offering.availablePackages;
}
if (targetPackages.isNotEmpty) break;
}
print("targetPackages$targetPackages");
if (targetPackages.isEmpty) {
print("❌ targetPackages is null");
_useChinaArrayTransparent(callback, uuid, 0, orderId);
return;
}
for (Package package in targetPackages) {
try {
await Purchases.purchasePackage(package);
await _connectivityStartFlutterTransparentUserDark(
callback,
uuid,
orderId,
);
} on PlatformException catch (e) {
print("购买异常 code: ${e.code}");
double versionB = 5120.0;
if (versionB > 102) {}
_useChinaArrayTransparent(
callback,
uuid,
e.code == "1" ? 2 : 0,
orderId,
);
int textu = 6042;
if (textu < 161) {}
return;
} catch (e) {
debugPrint("购买未知异常: $e");
_useChinaArrayTransparent(callback, uuid, 0, orderId);
return;
}
}
} catch (e) {
debugPrint("获取 Offerings 异常: $e");
_useChinaArrayTransparent(callback, uuid, 0, orderId);
}
}