Я использую Braintree, чтобы взимать плату за свои подписки (ежегодно). Клиент вводит свой способ оплаты, используя Braintree dropin. Способ оплаты сохраняется и используется для оплаты услуги на определенную дату.
Все работает нормально, пока клиент не введет другой способ оплаты. Мой бэкэнд использует метод оплаты по умолчанию для оплаты услуг клиентов. Проблема в том, что вы не можете изменить способ оплаты по умолчанию, используя dropin Braintree (параметр setDefault или аналогичный не существует, хотя это было бы удобно).
Это должно быть сделано с помощью внутреннего SDK, где я могу вызвать функцию «update» для объекта PaymentMethod, как объяснено здесь . Но это невозможно, потому что для обновления способа оплаты необходим токен метода оплаты, который недоступен при изменении способа оплаты с помощью dropin. Только для dropin доступен PaymentMethodNonce объект, который согласно документации не включает токен метода оплаты. Поэтому в принципе невозможно установить какой-либо способ оплаты по умолчанию с использованием одноразовой информации.
Я ищу способ, позволяющий клиенту изменить способ оплаты по умолчанию, используя выпадение Braintree.