Я использую пример Braintree Sping, найденный здесь: https://github.com/braintree/braintree_spring_example.
В классе контроллера есть метод, который списывает с новой кредитной карты / клиента определенную сумму. Контроллер получает эту сумму из данных POST.
Вместо того, чтобы использовать новую карту / клиента, я бы хотел использовать кредитную карту со сводом.
Похоже, что способ сделать это - создать новый PaymentMethodRequest, как показано здесь: https://developers.braintreepayments.com/reference/request/payment-method/create/java
Но когда я смотрю на API, я не вижу, как установить сумму для списания с помощью PaymentMethodRequest. В отличие от класса TransactionRequest, PaymentMethodRequest не позволяет устанавливать сумму.
Итак, учитывая кастомериду, как я могу снять единовременную плату со сводной карты?
Спасибо за помощь.
Это метод обработки информации о сообщении
public String postForm(@RequestParam("amount") String amount, @RequestParam("payment_method_nonce") String nonce, Model model, final RedirectAttributes redirectAttributes) {
// ... validate the amount ...
TransactionRequest request = new TransactionRequest()
.amount(decimalAmount)
.paymentMethodNonce(nonce)
.options()
.submitForSettlement(true)
.done();
Result<Transaction> result = gateway.transaction().sale(request);
// ... process result....
}
Кажется, я должен быть в состоянии сделать
PaymentMethodRequest request = new PaymentMethodRequest()
.amount(decimalAmount) // this isn't actually allowed by the class
.customerId(customer.getId())
.token("the_token")
.paymentMethodNonce(nonceFromTheClient);
Но PaymentMethodRequest не имеет такой функциональности.