This commit is contained in:
2025-12-15 15:22:27 +08:00
parent 1f0bdb1bd4
commit 2620bd6845
4 changed files with 25 additions and 3 deletions

View File

@@ -9,9 +9,10 @@
NS_ASSUME_NONNULL_BEGIN
FOUNDATION_EXPORT NSString * const KBIAPDidCompletePurchaseNotification;
@interface IAPVerifyTransactionObj : NSObject <FGIAPVerifyTransaction>
@end
NS_ASSUME_NONNULL_END

View File

@@ -8,6 +8,8 @@
#import "KBHUD.h"
//#import "KBLoginSheetViewController.h"
#import "KBBizCode.h"
NSString * const KBIAPDidCompletePurchaseNotification = @"KBIAPDidCompletePurchaseNotification";
@interface IAPVerifyTransactionObj ()
@property (nonatomic, strong) PayVM *payVM;
@end
@@ -41,10 +43,11 @@
__weak typeof(self) weakSelf = self;
[self.payVM applePayReqWithParams:params needShow:NO completion:^(NSInteger sta, NSString * _Nullable msg) {
// [KBHUD dismiss];
[KBHUD showInfo:(sta == !KBBizCodeSuccess ? KBLocalized(@"Payment failed") : KBLocalized(@"Payment successful"))];
// [KBHUD showInfo:(sta == !KBBizCodeSuccess ? KBLocalized(@"Payment failed") : KBLocalized(@"Payment successful"))];
if (sta == KBBizCodeSuccess) {
[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
[KBHUD showSuccess:@"Success"];
[KBHUD showInfo:@"Success"];
[[NSNotificationCenter defaultCenter] postNotificationName:KBIAPDidCompletePurchaseNotification object:nil];
if (handler) handler(KBLocalized(@"Success"), nil);
}else if(sta == KBBizCodeReceiptError){
[[SKPaymentQueue defaultQueue] finishTransaction:transaction];

View File

@@ -10,6 +10,7 @@
#import "KBPayProductModel.h"
#import "KBBizCode.h"
#import "KBShopVM.h"
#import "IAPVerifyTransactionObj.h"
static NSString * const kKBJfPayCellId = @"kKBJfPayCellId";
@interface KBJfPay () <UICollectionViewDataSource, UICollectionViewDelegateFlowLayout>
@@ -52,6 +53,10 @@ static NSString * const kKBJfPayCellId = @"kKBJfPayCellId";
self.filter = [[FGIAPProductsFilter alloc] init];
self.payVM = [PayVM new];
self.shopVM = [KBShopVM new];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(handleIAPPurchaseSuccess)
name:KBIAPDidCompletePurchaseNotification
object:nil];
self.data = @[];
self.selectedIndex = NSNotFound;
self.bgImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"my_bg_icon"]];
@@ -151,6 +156,10 @@ static NSString * const kKBJfPayCellId = @"kKBJfPayCellId";
[self selectItemAtCurrentIndexAnimated:NO];
}
- (void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
#pragma mark - UICollectionView Delegate (ensure first show)
- (void)collectionView:(UICollectionView *)collectionView willDisplayCell:(UICollectionViewCell *)cell forItemAtIndexPath:(NSIndexPath *)indexPath {
if (![cell isKindOfClass:KBJfPayCell.class]) { return; }
@@ -242,6 +251,10 @@ static NSString * const kKBJfPayCellId = @"kKBJfPayCellId";
}];
}
- (void)handleIAPPurchaseSuccess {
[self fetchWalletBalance];
}
- (void)fetchInAppProductList {
__weak typeof(self) weakSelf = self;
[self.payVM fetchInAppProductsNeedShow:YES completion:^(NSInteger sta, NSString * _Nullable msg, NSArray<KBPayProductModel *> * _Nullable products) {

View File

@@ -70,6 +70,11 @@ static const CGFloat JXheightForHeaderInSection = 50;
}];
[self fetchShopStylesWithHUD:YES];
}
- (void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
[self fetchWalletBalanceWithHUD:NO];
}