
En este paso crearemos la transacción con el objetivo de obtener un identificador unico y poder en el siguiente paso redirigir al Tarjetahabiente hacia el formulario de pago
Para comenzar debes importar WebpayPlus y luego crear una transacción mall.
Puedes incluir una o más transacciones en una misma operación, para ello debes crear un arreglo de TransactionDetail. Si incluyes más de una transacción, el monto a cobrar será el total de los montos de las transacciones.
Si quieres saber más sobre TransactionDetail puedes ver la documentación aquí.
const WebpayPlus = require('transbank-sdk').WebpayPlus; // ES5
const TransactionDetail = require("transbank-sdk").TransactionDetail;
import { WebpayPlus } from 'transbank-sdk'; // ES6
immport { TransactionDetail } = require("transbank-sdk").TransactionDetail;
let details = [
new TransactionDetail(145, "597055555536", "O-23391"),
new TransactionDetail(181, "597055555536", "O-5511"),
]
// Es necesario ejecutar dentro de una función async para utilizar await
const createResponse = await (new WebpayPlus.MallTransaction()).create(
buyOrder,
sessionId,
details,
returnUrl
);{
'token': '01ab192c891e59558170fc87ccadf4d850ced6940f5d69e1b7f5133a8f4d602f',
'url': 'https://webpay3gint.transbank.cl/webpayserver/initTransaction'
}Una vez creada la transacción, estos serán los datos de respuesta
Debes utilizar estos datos para crear un formulario
<form action="https://webpay3gint.transbank.cl/webpayserver/initTransaction" method="POST">
<input type="hidden" name="token_ws" value="01ab192c891e59558170fc87ccadf4d850ced6940f5d69e1b7f5133a8f4d602f"/>
<input type="submit" value="Pagar"/>
</form>Usando los siguientes datos
| Campo | Valor |
|---|---|
| Orden de compra (buyOrder) | O-30241 |
| ID de sesión (sessionid) | S-25321 |
| Detalle (details) | Monto: 145 Código de Comercio: 597055555536 Orden de Compra: O-23391 |
| Monto: 181 Código de Comercio: 597055555536 Orden de Compra: O-5511 | |
| URL de retorno (returnUrl) | http://tbk-node-test.continuumhq.dev/webpay_plus_mall/commit |
Con la respuesta del servicio creamos el formulario, para efectos del ejemplo
haremos el campo token_ws visible