Braintree v.zero sdk v3.5.0 для iOS - Как сохранить карту

Я пытаюсь использовать последнюю версию (v3.5.0 по состоянию на декабрь 2014 г.) iOS SDK Braintree (BT) в своем приложении. Мне удалось получить токен клиента с моего сервера и представить BT Drop In viewController:

Braintree *braintree = [Braintree braintreeWithClientToken:self.clientToken];
BTDropInViewController *dropInViewController = [braintree dropInViewControllerWithDelegate:self];
[self.navigationController pushViewController:dropInViewController animated:YES];

и BT генерирует одноразовый номер, который я мог бы захватить в методе делегата BT и отправить на свой сервер для транзакции.

Проблема, которую я пытаюсь решить, заключается в том, что, поскольку пользователи моего приложения часто совершают платежи, мне приходится сохранять информацию об их картах в приложении, чтобы они могли совершать следующие платежи, просто выбрав одну из своих сохраненных карт; в противном случае им придется вводить информацию о своей карте каждый раз, когда они совершают платеж. По сути, я просто не мог понять, как BT получает список сохраненных платежных карт, как показано на правом изображении здесь:

https://github.com/braintree/braintree_ios#braintree-vzero-sdk-for-ios

Любой указатель на то, что мне нужно сделать (или пример кода), чтобы сохранить информацию о карте для будущей оплаты в одно касание? Спасибо.


person TDe    schedule 07.12.2014    source источник


Ответы (1)


Есть два способа сделать это:

  1. Вставьте customer_id в свой токен клиента. В рубине это будет выглядеть так:

    @client_token = Braintree::ClientToken.generate( :customer_id => a_customer_id )

Это изменение повлияет только на Drop In. Карты, токенизированные вручную, по-прежнему необходимо явно сохранять в хранилище.

  1. В качестве альтернативы используйте одноразовый номер, который вы в настоящее время получаете, чтобы сохранить платеж. метод в хранилище. В рубине это будет выглядеть так:

    результат = Braintree::PaymentMethod.create( :customer_id => "YOUR_CUSTOMER_ID", :payment_method_nonce => "NONCE-FROM-CLIENT" )

В обоих случаях вы можете создавать транзакции из хранилища. с помощью токена (нонс больше не нужен).

person mickeyreiss    schedule 08.12.2014