1
This commit is contained in:
@@ -5,13 +5,17 @@
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
@class KBPayProductModel;
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
/// 统一的支付回调:sta 为状态码(0 成功,非 0 失败),msg 为后端返回的消息
|
||||
typedef void(^KBPayCompletion)(NSInteger sta, NSString * _Nullable msg);
|
||||
|
||||
/// 统一状态码(与原 Swift 代码的 succCode / errorCode 语义一致)
|
||||
|
||||
/// In-App 商品列表回调(返回 data 数组)
|
||||
typedef void(^KBPayProductsCompletion)(NSInteger sta,
|
||||
NSString * _Nullable msg,
|
||||
NSArray<KBPayProductModel *> * _Nullable products);
|
||||
|
||||
@interface PayVM : NSObject
|
||||
|
||||
@@ -22,7 +26,10 @@ typedef void(^KBPayCompletion)(NSInteger sta, NSString * _Nullable msg);
|
||||
needShow:(BOOL)needShow
|
||||
completion:(KBPayCompletion)completion;
|
||||
|
||||
/// 查询 type=in-app-purchase 的商品列表
|
||||
- (void)fetchInAppProductsNeedShow:(BOOL)needShow
|
||||
completion:(KBPayProductsCompletion)completion;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
|
||||
|
||||
@@ -7,6 +7,8 @@
|
||||
#import "KBAPI.h"
|
||||
#import "KBHUD.h"
|
||||
#import "KBBizCode.h"
|
||||
#import "KBPayProductModel.h"
|
||||
#import <MJExtension/MJExtension.h>
|
||||
@implementation PayVM
|
||||
|
||||
- (void)applePayReqWithParams:(NSDictionary *)params
|
||||
@@ -28,6 +30,40 @@
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)fetchInAppProductsNeedShow:(BOOL)needShow
|
||||
completion:(KBPayProductsCompletion)completion {
|
||||
if (needShow) { [KBHUD show]; }
|
||||
NSDictionary *params = @{ @"type": @"in-app-purchase" };
|
||||
[[KBNetworkManager shared] GET:API_INAPP_PRODUCT_LIST
|
||||
parameters:params
|
||||
headers:nil
|
||||
autoShowBusinessError:NO
|
||||
completion:^(NSDictionary * _Nullable json,
|
||||
NSURLResponse * _Nullable response,
|
||||
NSError * _Nullable error) {
|
||||
if (needShow) { [KBHUD dismiss]; }
|
||||
if (error) {
|
||||
if (completion) {
|
||||
NSInteger code = (error.code == 0 ? KBBizCodeSystemError : error.code);
|
||||
completion(code, error.localizedDescription ?: KBLocalized(@"Network error"), nil);
|
||||
}
|
||||
return;
|
||||
}
|
||||
id dataObj = json[KBData] ?: json[@"data"];
|
||||
if (![dataObj isKindOfClass:[NSArray class]]) {
|
||||
if (completion) {
|
||||
NSString *msg = [self.class extractMessageFromResponseObject:json] ?: KBLocalized(@"Invalid response");
|
||||
completion(KBBizCodeSystemError, msg, nil);
|
||||
}
|
||||
return;
|
||||
}
|
||||
NSArray<KBPayProductModel *> *models = [KBPayProductModel mj_objectArrayWithKeyValuesArray:(NSArray *)dataObj];
|
||||
if (completion) {
|
||||
completion(KBBizCodeSuccess, nil, models ?: @[]);
|
||||
}
|
||||
}];
|
||||
}
|
||||
|
||||
#pragma mark - Helpers
|
||||
|
||||
//+ (NSInteger)extractStatusFromResponseObject:(id)obj response:(NSURLResponse *)resp {
|
||||
|
||||
Reference in New Issue
Block a user