Мы используем пользовательский интерфейс dropdown, чтобы экономить время на создание пользовательских страниц ввода платежей. Трудно понять, почему вы можете только добавить новый способ оплаты и не удалить. Я понимаю, что могу добавить, но если возникла проблема с данным способом оплаты (позже). Он существует навсегда, потому что клиент не может удалить способ оплаты. Я предполагаю, что единственный способ удалить способ оплаты - это написать пользовательский интерфейс (таким образом, для того, чтобы начать с использования пользовательского интерфейса dropin). Невозможно ли для клиента удалить способ оплаты с помощью пользовательского интерфейса dropin?
Пользовательский интерфейс Braintree Dropin, как удалить способ оплаты
Ответ 1
Пользовательский интерфейс Braintree DropIn не позволяет пользователям удалять или обновлять сохраненный способ оплаты. Но есть способ сделать это. Например, если у вас есть страница профиля клиента, где они могут управлять своими настройками, вы можете просто добавить меню, в котором будут показаны все способы оплаты, связанные с клиентом.
Для этого вы можете просто использовать некоторые функции Braintree, которые объясняются здесь: https://developers.braintreepayments.com/guides/payment-methods/php
Идея состоит в том, чтобы получить все способы оплаты, связанные с клиентом, используя что-то вроде:
$customer = Braintree_Customer::find('a_customer_id');
$customer->paymentMethods // array of Braintree_PaymentMethod instances
Он вернет объект для всех способов оплаты. Затем вы можете проверить ответ этого объекта с той же страницы, нажав на конкретный тип метода оплаты здесь (кредитная карта, paypal...)
Как только у вас есть эти значения, вы можете отобразить их в таблице, например, и добавить просто кнопку или все, что вы хотите удалить, этот способ оплаты. Для этого вы можете использовать следующую функцию, передающую TOKEN в качестве аргумента
$result = Braintree_PaymentMethod::delete('the_token');
/*(token is a value of the object that comes from $customer->paymentMethods*/
Наконец, вы можете проверить ответ, управляющий значением $result (true или false)
Надеюсь, что это поможет.