2016-12-20 2 views
2

Мы разрабатываем приложение cordova, которое будет похоже на Uber. Рабочий процесс прост: запросы пользователей для службы, ассоциированная организация назначается после завершения работы, взимает с пользователя плату за количество часов.Интеграция с Braintree - Пользовательская кредитная карта Подробная информация только один раз

У меня есть сервер, генерирующий маркер клиента от Braintree

$clientToken = Braintree_ClientToken::generate(); 

и может попросить пользователя ввести свои данные кредитной карты только один раз для первого запроса, после чего я создаю объект Braintree_customer

$result = Braintree_Customer::create(array(
          'paymentMethodNonce' => $payment_token 
         )); 

и хранить токен в моей БД.

$payment = new Payment; 
    $payment->owner_id = $owner_id; 
    $payment->customer_id = $customer_id; 
    $payment->last_four = $last_four; 
    $payment->card_token = $result->customer->creditCards[0]->token; 
    $payment->save(); 

Могу ли я использовать этот идентификатор клиента для всех последующих транзакций?

Braintree_Transaction::sale(array(
          'amount' => $total, 
          'paymentMethodNonce' => $customer_id 
          )); 

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

Могу ли я получить простой рабочий процесс относительно того, как мы можем реализовать это и примеры, если они есть?

ответ

2

Похоже, вы захотите использовать ключ платежа для транзакции. Код для транзакции. С этой символической строкой в ​​качестве значения взимается плата за определенный метод оплаты конкретного клиента.

result = braintree.Transaction.sale({ 
    'amount' => $total, 
    'paymentMethodToken' => 'token_string' 
}) 

Таким образом, для всех последующих сделок, вы хотели бы использовать paymentMethodToken и передать в этой строке лексем, в отличие от прохождения в идентификатор клиента.

+0

Привет, что такое «token_string», и где я могу получить его от того, что у меня есть зарегистрированный клиент, который уже предоставил данные своей кредитной карты, и я не хочу, чтобы он сделал это снова? –

+1

@Maxlight это можно найти в [объекте результата клиента Braintree] (https://developers.braintreepayments.com/reference/response/customer/#payment_methods). Атрибут [payment_methods] (https://developers.braintreepayments.com/reference/response/customer/#payment_methods) возвращает список сохраненных способов оплаты клиента. Каждый способ оплаты будет содержать связанную с ним строку токена. – ThinkAboutIt

+0

Спасибо, я вижу сейчас :) –