Files
yinmeng-ios/xplan-ios/Base/Tool/IAPHelper/RechargeStorage.m
2021-09-26 20:42:33 +08:00

62 lines
2.0 KiB
Objective-C

//
// RechargeStorage.m
// xplan-ios
//
// Created by 冯硕 on 2021/9/26.
//
#import "RechargeStorage.h"
#import <SSKeychain/SSKeychain.h>
#define kappStoreKey @"kappStoreKey"
@implementation RechargeStorage
/// 根据商品id保存凭证
+ (BOOL)saveTranscationId:(NSString *)transcationId
recipt:(NSString *)recipt
uid:(NSString *)uid {
NSString * key = [NSString stringWithFormat:@"%@_%@", kappStoreKey, uid];
return [SSKeychain setPassword:recipt forService:key account:transcationId error:nil];
}
/// 获取所有凭证
+ (NSArray *)getAllReciptsWithUid:(NSString *)uid {
NSArray *transcationIds = [SSKeychain allAccounts];
NSMutableArray *temArr = [NSMutableArray array];
[transcationIds enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
if ([obj[@"svce"] isKindOfClass:[NSString class]]) {
NSString * key = [NSString stringWithFormat:@"%@_%@", kappStoreKey, uid];
if ([obj[@"svce"] isEqualToString:key]) {
NSString *recipt = [SSKeychain passwordForService:key account:obj[@"acct"] error:nil];
NSData *data = [recipt dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
[temArr addObject:json];
}
}
}];
return temArr;
}
/// 根据订单删除凭证
+ (BOOL)delegateTranscationId:(NSString *)transcationId uid:(NSString *)uid {
NSString * key = [NSString stringWithFormat:@"%@_%@", kappStoreKey, uid];
return [SSKeychain deletePasswordForService:key account:transcationId error:nil];
}
/// 删除所有凭证
+ (void)delegateAllTranscationIdsWithUid:(NSString *)uid {
NSArray *transcationIds = [SSKeychain allAccounts];
[transcationIds enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
if ([obj[@"svce"] isKindOfClass:[NSString class]]) {
NSString * key = [NSString stringWithFormat:@"%@_%@", kappStoreKey, uid];
if ([obj[@"svce"] isEqualToString:key]) {
[SSKeychain deletePasswordForService:key account:obj[@"acct"]];
}
}
}];
}
@end