tutorial studio implement how javascript node.js server payment-gateway braintree

javascript - studio - Manejo del lado del servidor de los pagos de Braintree en Node.js



braintree tutorial (0)

Estoy desarrollando una aplicación web que tiene un backend Node.js. Me gustaría implementar el sistema de pago provisto por su API de Braintree. El mecanismo clásico que se describe en el sitio web:

https://developers.braintreepayments.com/start/hello-server/node

asume lo siguiente:

1) Primero, un cliente emite una solicitud a mi servidor para el token del cliente

2) Mi servidor responde con un token generado con mis credenciales de Braintree (merchantId, clave pública / privada)

3) El cliente pasa ese token, junto con los datos del formulario de pago al servidor de Braintree

4) El servidor de Braintree responde con un token de autorización (nonce de pago)

5) El cliente envía el pago nonce de vuelta al servidor

6) El servidor usa ese nonce y la cantidad especificada por el cliente para realizar la transacción

7) Se notifica al servidor de Braintree sobre la nueva transacción

Si bien es una descripción agradable y clara, tengo un flujo un poco diferente en mente, y me pregunto si es posible darse cuenta. Me gustaría excluir cualquier comunicación entre el cliente y el servidor de Braintree, y administrar todos los token / Nonce Business del lado del servidor. Se vería de la siguiente manera:

1) El cliente envía todos los datos de pago al servidor en una solicitud de pago

2) El servidor genera token de cliente y gestiona cualquier comunicación necesaria con Braintree, sin que el cliente participe

3) El servidor se da cuenta del pago y devuelve la información del resultado al cliente

En otras palabras, este método:

gateway.transaction.sale({ amount: ''5.00'', paymentMethodNonce: "nonce-from-the-client", options: { submitForSettlement: true } }, function(err, result) { if (result) { if (result.success) { console.log("Transaction ID: " + result.transaction.id) } else { console.log(result.message) } } else { console.log(err) } });

requiere un nonce-from-the-client , y me gustaría obtenerlo de Braintree usando solo el servidor, no el cliente.

La idea es simplificar el proceso desde el punto de vista del cliente, de modo que el frontend solo tenga que enviar una solicitud con un formulario y nada más. ¿Es posible implementar esta idea por ahora? El caso es que, en el ejemplo proporcionado, el cliente ejecuta alguna secuencia de comandos del lado del cliente, braintree.js, que no es realmente utilizable para un servidor Node.js:

https://developers.braintreepayments.com/start/hello-client/javascript/v2#send-payment-method-nonce-to-server

Y ahí es donde estoy atrapado. ¿Algunas ideas?