1
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
#import "KBAuthManager.h"
|
||||
#import "KBHUD.h"
|
||||
#import "KBLoginSheetViewController.h"
|
||||
|
||||
#import "KBBizCode.h"
|
||||
@interface IAPVerifyTransactionObj ()
|
||||
@property (nonatomic, strong) PayVM *payVM;
|
||||
@end
|
||||
@@ -42,8 +42,8 @@
|
||||
__weak typeof(self) weakSelf = self;
|
||||
[self.payVM applePayReqWithParams:params needShow:NO completion:^(NSInteger sta, NSString * _Nullable msg) {
|
||||
[KBHUD dismiss];
|
||||
[KBHUD showInfo:(sta == ERROR_CODE ? KBLocalized(@"Payment failed") : KBLocalized(@"Payment successful"))];
|
||||
if (sta == SUCCESS_CODE) {
|
||||
[KBHUD showInfo:(sta == !KBBizCodeSuccess ? KBLocalized(@"Payment failed") : KBLocalized(@"Payment successful"))];
|
||||
if (sta == KBBizCodeSuccess) {
|
||||
[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
|
||||
if (handler) handler(KBLocalized(@"Success"), nil);
|
||||
} else {
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
#import "KBNetworkManager.h"
|
||||
#import "KBAPI.h"
|
||||
#import "KBHUD.h"
|
||||
|
||||
#import "KBBizCode.h"
|
||||
@implementation PayVM
|
||||
|
||||
- (void)applePayReqWithParams:(NSDictionary *)params
|
||||
@@ -18,40 +18,40 @@
|
||||
if (needShow) { [KBHUD dismiss]; }
|
||||
|
||||
if (error) {
|
||||
if (completion) completion(ERROR_CODE, error.localizedDescription ?: KBLocalized(@"Network error"));
|
||||
// if (completion) completion(ERROR_CODE, error.localizedDescription ?: KBLocalized(@"Network error"));
|
||||
return;
|
||||
}
|
||||
|
||||
NSInteger sta = [self.class extractStatusFromResponseObject:jsonOrData response:response];
|
||||
NSString *msg = [self.class extractMessageFromResponseObject:jsonOrData] ?: (sta == SUCCESS_CODE ? @"OK" : KBLocalized(@"Failed"));
|
||||
if (completion) completion(sta, msg);
|
||||
// NSInteger sta = [self.class extractStatusFromResponseObject:jsonOrData response:response];
|
||||
// NSString *msg = [self.class extractMessageFromResponseObject:jsonOrData] ?: (sta == KBBizCodeSuccess ? @"OK" : KBLocalized(@"Failed"));
|
||||
if (completion) completion(KBBizCodeSuccess, @"ok");
|
||||
}];
|
||||
}
|
||||
|
||||
#pragma mark - Helpers
|
||||
|
||||
+ (NSInteger)extractStatusFromResponseObject:(id)obj response:(NSURLResponse *)resp {
|
||||
// 优先从 JSON 提取 code/status/success
|
||||
if ([obj isKindOfClass:NSDictionary.class]) {
|
||||
NSDictionary *d = (NSDictionary *)obj;
|
||||
id code = d[@"code"] ?: d[@"status"] ?: d[@"retcode"];
|
||||
if ([code isKindOfClass:NSNumber.class]) {
|
||||
return [((NSNumber *)code) integerValue] == 0 ? SUCCESS_CODE : ERROR_CODE;
|
||||
}
|
||||
if ([code isKindOfClass:NSString.class]) {
|
||||
// 常见:"0" 视为成功
|
||||
return [((NSString *)code) integerValue] == 0 ? SUCCESS_CODE : ERROR_CODE;
|
||||
}
|
||||
id success = d[@"success"] ?: d[@"ok"];
|
||||
if ([success respondsToSelector:@selector(boolValue)]) {
|
||||
return [success boolValue] ? SUCCESS_CODE : ERROR_CODE;
|
||||
}
|
||||
}
|
||||
// 无明显字段,按 HTTP 2xx 视为成功
|
||||
NSInteger http = 0;
|
||||
if ([resp isKindOfClass:NSHTTPURLResponse.class]) { http = ((NSHTTPURLResponse *)resp).statusCode; }
|
||||
return (http >= 200 && http < 300) ? SUCCESS_CODE : ERROR_CODE;
|
||||
}
|
||||
//+ (NSInteger)extractStatusFromResponseObject:(id)obj response:(NSURLResponse *)resp {
|
||||
// // 优先从 JSON 提取 code/status/success
|
||||
// if ([obj isKindOfClass:NSDictionary.class]) {
|
||||
// NSDictionary *d = (NSDictionary *)obj;
|
||||
// id code = d[@"code"] ?: d[@"status"] ?: d[@"retcode"];
|
||||
// if ([code isKindOfClass:NSNumber.class]) {
|
||||
// return [((NSNumber *)code) integerValue] == 0 ? SUCCESS_CODE : ERROR_CODE;
|
||||
// }
|
||||
// if ([code isKindOfClass:NSString.class]) {
|
||||
// // 常见:"0" 视为成功
|
||||
// return [((NSString *)code) integerValue] == 0 ? SUCCESS_CODE : ERROR_CODE;
|
||||
// }
|
||||
// id success = d[@"success"] ?: d[@"ok"];
|
||||
// if ([success respondsToSelector:@selector(boolValue)]) {
|
||||
// return [success boolValue] ? SUCCESS_CODE : ERROR_CODE;
|
||||
// }
|
||||
// }
|
||||
// // 无明显字段,按 HTTP 2xx 视为成功
|
||||
// NSInteger http = 0;
|
||||
// if ([resp isKindOfClass:NSHTTPURLResponse.class]) { http = ((NSHTTPURLResponse *)resp).statusCode; }
|
||||
// return (http >= 200 && http < 300) ? SUCCESS_CODE : ERROR_CODE;
|
||||
//}
|
||||
|
||||
+ (NSString *)extractMessageFromResponseObject:(id)obj {
|
||||
if (![obj isKindOfClass:NSDictionary.class]) return nil;
|
||||
|
||||
Reference in New Issue
Block a user