Как использовать Plaid API для доступа к банковским транзакциям?

Я очень новичок в iOS и в Plaid API, и я хочу создать приложение для бюджетирования, которое собирает данные о существующих банковских транзакциях пользователей, используя Plaid. В настоящее время я успешно интегрировал учетную запись для банковского счета в Plaid, но не смог продвинуться дальше.

Используя код, предоставленный в Plaid iOS SDK, я пытаюсь получить данные на банковском счете пользователя после того, как они вошли в систему. Однако каждый раз, когда я пытаюсь вернуть транзакции пользователей, используя предоставленный SDK, я сталкиваюсь с переменными, которые вернуть "ноль".

Ниже приведен фрагмент моего кода:

PLDTransaction.m (из Plaid iOS SDK)

- (instancetype)initWithDictionary:(NSDictionary *)dictionary {
  if (self = [super init]) {
    _id = dictionary[@"_id"];
    _accountId = dictionary[@"_account"];
    _pendingTransactionId = dictionary[@"_pendingTransaction"];

    _amount = [dictionary[@"amount"] floatValue];
    _date = dictionary[@"date"];
    _name = dictionary[@"name"];

    NSDictionary *meta = dictionary[@"meta"];
    NSDictionary *location = meta[@"location"];
    NSDictionary *contact = meta[@"contact"];
    if (location) {
      _location = [[PLDTransactionLocation alloc] initWithDictionary:location];
    }
    if (contact) {
      _contact = [[PLDTransactionContact alloc] initWithDictionary:contact];
    }

    _isPending = [dictionary[@"pending"] boolValue];
    _category = [[PLDCategory alloc] 
initWithTransactionDictionary:dictionary];
    _score = dictionary[@"score"];
  }
  return self;
}

ViewController.h

#import "PLDTransaction.h"

@interface ViewController : UIViewController

@property (nonatomic, copy) PLDTransaction *accountInstance;

@end

ViewController.m

#import <LinkKit/LinkKit.h>
#import "ViewController.h"

@synthesize accountInstance = _accountInstance;

- (void)linkViewController:(PLKPlaidLinkViewController*)linkViewController
 didSucceedWithPublicToken:(NSString*)publicToken
                  metadata:(NSDictionary<NSString*,id>* _Nullable)metadata {
    [self dismissViewControllerAnimated:YES completion:^{
        // Handle success, e.g. by storing publicToken with your service
        NSLog(@"Successfully linked account! \nmetadata: %@", metadata);
        NSObject *checking = [_accountInstance initWithDictionary:metadata];
        NSLog(@"CHECKING: %@", checking);
        NSLog(@"INSTANCE: %@", _accountInstance);
        NSLog(@"TRANSACTION ID: %@", _accountInstance.pendingTransactionId);

        [self handleSuccessWithToken:publicToken metadata:metadata];
     }];
}

Код выше в ViewController.m возвращает:

Successfully linked account!
metadata: {
    account =     {
        id = "<null>";
        name = "<null>";
    };
    "account_id" = "<null>";
    institution =     {
        name = Citi;
        type = citi;
    };
    "plaid_api_request_id" = "<null>";
    "request_id" = NeDdn;
    status = connected;
}
CHECKING: (null)
INSTANCE: (null)
TRANSACTION ID: (null)

0 ответов

Другие вопросы по тегам