62 lines
2.0 KiB
Objective-C
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
|