Plaid: как создать общедоступный токен во внешнем интерфейсе (Ionic/angular) и отправить на сервер

Я следую этому руководству, чтобы получить информацию о транзакциях/счетах из Plaid API. Plaid'd краткое руководство пользователя ejs для отправки на сервер с помощью функции onSuccess. Как создать этот токен с помощью ionic?

Краткий путеводитель по пледу также предлагает использовать кодовый удар.

var linkHandler = Plaid.create({
  env: 'sandbox',
  clientName: 'Client Name',
  key: '<PUBLIC_KEY>',
  product: ['auth', 'transactions'],
  token: '<GENERATED_PUBLIC_TOKEN>',
  onSuccess: function(public_token, metadata) {
    // You do not need to repeat the /item/public_token/exchange
    // process when a user uses Link in update mode.
    // The Item's access_token has not changed.
  },

а также предложить использовать этот код

// Create a public_token for use with Plaid Link's update mode
client.createPublicToken(ACCESS_TOKEN, (err, result) => {
  // Handle err
  // Use the generated public_token to initialize Plaid Link in update
  // mode for a user's Item so that they can provide updated credentials
  // or MFA information
  const publicToken = result.public_token;
});

чтобы создать общедоступный токен и получить токен доступа. Я не могу использовать эту функцию, потому что получаю сообщение об ошибке 'Платье и/или клиент не определены

Как мне создать этот общедоступный токен, используя интерфейс Ionic и серверную часть узла?

Какой здесь рабочий процесс?

заранее спасибо


person Generaldeep    schedule 03.11.2017    source источник
comment
Кто-нибудь создал общедоступный токен, используя эту архитектуру?   -  person Generaldeep    schedule 04.11.2017


Ответы (2)


Недавно была создана библиотека Angular: нажмите здесь и здесь

Сначала у меня были некоторые проблемы с реализацией Plaid; эти советы должны помочь:

  1. Реализуйте библиотеку, как показано во второй ссылке выше. Убедитесь, что на втором этапе вы импортируете в свой файл app.module.ts. Не используйте jQuery, указанный в документации.
  2. Используя эту библиотеку, кнопка будет автоматически создана в элементе Angular <mr-ngx-plaid-link-button>. Эта кнопка будет действовать как кнопка отправки, если вы не используете DOM или другие методы, чтобы изменить ее на кнопку типа на ngAfterViewInit()
  3. Все пять событий на третьем шаге являются прослушивателями различных событий. Обратный вызов onSuccess() вернет общедоступный токен — только после того, как вы (а) успешно отправите банковские учетные данные (user_good / pass_good в песочнице) и (б) нажмете кнопку «Продолжить», чтобы выйти из Plaid Link.
person CSSBurner    schedule 02.05.2020

На стороне сервера вам необходимо сначала инициализировать клиентскую библиотеку узла Plaid. Вы также захотите сделать вызов токена обмена, чтобы обменять public_token из Link на API access_token. Затем вы сохраните access_token и будете использовать его для получения данных о транзакциях и учетных записях:

// Initialize the Plaid API client with your API keys (https://dashboard.plaid.com/account/keys)
// Use plaid.environments.production, plaid.environments.development, or plaid.environments.sandbox
const plaid = require('plaid');
const client = new plaid.Client(client_id, secret, public_key, plaid.environments.sandbox);
client.exchangePublicToken(PUBLIC_TOKEN, function(error, tokenResponse) {
  if (error != null) {
    var msg = 'Could not exchange public_token!';
    console.log(msg + '\n' + error);
  }
  const ACCESS_TOKEN = tokenResponse.access_token;
  const ITEM_ID = tokenResponse.item_id;
  console.log('Access Token: ' + ACCESS_TOKEN);
  console.log('Item ID: ' + ITEM_ID);
  // Now retrieve transactions or account information with the access_token
});

Для клиентской стороны в вашем приложении Ionic вам необходимо включить скрипт link-initialize.js перед вызовом Plaid.create. Конкретно:

<script src="https://cdn.plaid.com/link/v2/stable/link-initialize.js">
</script>

Вот полный пример клиентского HTML:

<button id="link-button">Link Account</button>

<script src="https://cdn.plaid.com/link/v2/stable/link-initialize.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.js"></script>
<script type="text/javascript">
var handler = Plaid.create({
  clientName: 'Plaid Walkthrough Demo',
  env: 'sandbox',
  key: '[PUBLIC_KEY]', // public_key is at https://dashboard.plaid.com/account/keys
  product: ['auth'],
  onLoad: function() {
    // Optional, called when Link loads
  },
  onSuccess: function(public_token, metadata) {
    // Send the public_token to your app server.
    // The metadata object contains info about the institution the
    // user selected and the account ID, if `selectAccount` is enabled.
    $.post('/get_access_token', {
      public_token: public_token,
    });
  },
  onExit: function(err, metadata) {
    // The user exited the Link flow.      
  }
});
</script>
person Michael Kelly    schedule 06.11.2017
comment
Привет, Майкл, я столкнулся с использованием JQuery и скрипта plaid в html-файле, однако мне нужно вызвать Plaid.create внутри компонента Angular и отправить динамически созданный токен на сервер, чтобы получить токен доступа. Как я могу вызвать Plaid.create внутри компонента Angular, по сути, класса, чтобы отдельный пользователь мог обменять общедоступный токен на токен доступа. - person Generaldeep; 06.11.2017
comment
Попробуйте github.com/pbernasconi/plaid-link-ionic-example для полный пример приложения Ionic! - person Michael Kelly; 07.11.2017