Like all Braintree SDK integrations, you will receive a payment method nonce when your user successfully authorizes payment. Pass this nonce to your server, and create a transaction.
Collect device data from the client and include the
deviceDataFromTheClient in the transaction.
TransactionRequest request = new TransactionRequest() .amount(new BigDecimal("10.00")) .paymentMethodNonce(nonceFromTheClient) .deviceData(deviceDataFromTheClient) .options() .submitForSettlement(true) .done() .billingAddress() .postalCode(postalCodeFromTheClient) .done(); Result<Transaction> result = gateway.transaction().sale(request);
The amount you specify in your client-side payment request object should reflect the actual amount you authorize and submit for settlement; transactions will still process in cases where the amount changes during order fulfillment.
If your use case is supported, you can store a customer's Samsung Pay card in your Vault in a few different ways:
- In a separate Payment Method: Create request
- In a separate Customer: Create or Customer: Update request
- In your Transaction: Sale request by using options().storeInVault() or options().storeInVaultOnSuccess()