Casos de uso
Esta es una lista no exhaustiva de los casos de uso en los que se crea un formToken
(al llamar al Web Service Charge/createPayment ).
Transmitir el número de pedido
Para transmitir el número de pedido, utilice el campo orderId :
{ "orderId" : "CX-1254" }
Transmitir los datos del comprador
El vendedor puede transmitir la dirección de facturación y los datos del comprador (dirección de e-mail, tratamiento, número de teléfono, etc.).
Estos datos son:
- se muestran en el
Back Office Vendedor , en la información de la transacción (pestaña Comprador ), - devueltos en la IPN, sin cambios.
Para ello, utilice el campo customer :
Ejemplo
{ "customer": { "reference":"C2383333540", "email" : " <sample@example.net>", "billingDetails" : { "category" : "PRIVATE", "title" : "M", "firstName" : "Laurent", "lastName" : "DURANT", "streetNumber" : "109", "address" : "rue de l'innovation", "zipCode" : "31670", "city" : "LABEGE", "country" : "FR", "phoneNumber" : "0123456789", "cellPhoneNumber" :"0623456789" } } }
Transmitir los datos de entrega
El vendedor puede transmitir los datos de entrega del comprador (dirección, civilidad, número de teléfono, etc.).
Estos datos son:
- se muestran en el
Back Office Vendedor , en la información de la transacción (pestaña Envío ), - devueltos en la IPN, sin cambios.
Ejemplo para una entrega de tipo “Retiro en tienda”
La dirección de envío corresponde a la de la tienda.
La dirección de facturación es distinta a la dirección de envío.
El nombre del destinatario es el mismo que el de la dirección de facturación.
{ "customer": { "shippingDetails": { "shippingMethod": "RECLAIM_IN_SHOP", "shippingSpeed": "STANDARD", "streetNumber": "230", "address": "avenue des Champs Elysées", "zipCode": "59170", "city": "CROIX", "country": "FR", "firstName": "Marie-Charlotte", "lastName": "GRIMALDI", "phoneNumber": "0328386789" } } }
Ejemplo para una entrega de tipo “punto de retiro”
La dirección de envío corresponde a la del punto de retiro.
El nombre del punto de retiro se indica en la segunda línea de la dirección de entrega.
Se transmite la dirección del punto de retiro en la primera línea de dirección de envío.
El nombre del destinatario es el mismo que el de la dirección de facturación.
La dirección de facturación es distinta a la dirección de envío.
{ "customer": { "shippingDetails": { "shippingMethod": "RELAY_POINT", "shippingSpeed": "STANDARD", "streetNumber": "100", "address": "avenue du parc Barbieux", "address2": "Pressing du Parc", "zipCode": "59170", "city": "CROIX", "country": "FR", "firstName": "Martine", "lastName": "DURAND", "phoneNumber": "0328386789", "deliveryCompanyName":"Chronospost" } } }
Transmisión del contenido del carrito
Al crear un pago, el vendedor puede transmitir el contenido del carrito del comprador.
Estos datos se muestran en el
Para ello, utilice el campo cartItemInfo (tabla de objetos json) durante la llamada al Web Service Charge/CreatePayment.
Ejemplo para definir 2 artículos en el carrito
{ "customer": { "shoppingCart": { "cartItemInfo": [ { "productRef": "myRef1", "productAmount": "1200", "productLabel": "myLabel1", "productQty" : "1" }, { "productRef": "myRef2", "productAmount": "2400", "productLabel": "myLabel2", "productQty" : "1" } ] } } }
Observaciones:
- El campo cartItemInfo siempre se devuelve vacío en la respuesta.
- Para que la pestaña Carrito se muestre correctamente en el
Back Office Vendedor , debe trasmitir por lo menos el campo productAmount de cada producto.
Modificar el monto en función del código BIN
Vous pouvez modifier un montant à la baisse en fonction du code BIN.
Implémentez dans votre formulaire de paiement cette fonction KR.setBinUpdateNotificationUrl
.
Cette fonction appelle un endpoint : V4/Charge/UpdatePaymentAmount
pour modifier un montant.
Solicitud
Llame al endpoint: V4/Charge/UpdatePaymentAmount
con los siguientes parámetros:
updatedAmount
: Nuevo montocardBin
: Código BINformToken
: formTokencon el monto inicial
Ejemplo de solicitud
Campos obligatorios:
updatedAmount
: $ 45,00.cardBin
:"59701003" pour une MASTERCARDformToken
:"00H7BP(...)ItbHlyYSJ9b802"
{ "updatedAmount":"4500", "cardBin":"59701003", "formToken":"00H7BP(...)ItbHlyYSJ9b802" }
Respuesta
La plateforme crée un nouveau formToken
avec le nouveau montant. Récupèrez le nouveau formToken
pour afficher le formulaire de paiement (Plus d'infos : Afficher le formulaire).
{ "answer": { "formToken": "00H7BPcbxFR(...)002", "_type": "V4/Charge/PaymentForm" } }
Casos de uso
Utilice el código en Github modificando la variable $newPrice
del archivo AmountUpdateCallback.php. (enlace de Github : Amount Update ).
- Disminución del monto con un valor fijo.
Ejemplo: Desea una disminución de 10,00 PEN para las tarjetas Mastercard (código BIN: 59701003) y una disminución de 5,00 PEN para las tarjetas AMEX (código BIN: 37828200).
Modifique el archivoAmountUpdateCallback.php.
/*Define new price*/ $newPrice = null; switch($request['bin']) { // BIN MASTERCARD case '59701003': $newPrice = $request['amount']-1000; break; // BIN AMEX case '37828200': $newPrice = $request['amount']-500; break; }
Ilustración para Mastercard
- Disminución del monto con un porcentaje.
Ejemplo: Desea un descuento del 50 % para las tarjetas Mastercard (código BIN: 59701003) y un descuento del 30 % para las tarjetas AMEX (código BIN: 37828200).
Modifique el archivoAmountUpdateCallback.php.
/*Define new price*/ $newPrice = null; switch($request['bin']) { // BIN MASTERCARD case '59701003': $newPrice = $request['amount']*0.5; break; // BIN AMEX case '37828200': $newPrice = $request['amount']*0.3; break; }
Ilustración para AMEX
- Pour un montant fixe. Valorisez la variable
$newPrice
du fichierAmountUpdateCallback.phpavec un montant fixe.
Transmitir los datos del subvendedor
El facilitador de pago puede transmitir los datos del subvendedor concernido por la transacción.
Estos datos serán:
- se muestran en el
Back Office Vendedor , en la información de la transacción (pestaña Subvendedor ), - devueltos en la IPN, sin cambios.
La tabla describe los campos comunes disponibles con la información del subvendedor.
Nombre del campo | Formato | Descripción |
---|---|---|
subMerchantDetails.address1 | ans..255 | Dirección del subvendedor. Transmitido por el facilitador de pago. |
subMerchantDetails.address2 | ans..255 | Complemento de la dirección del subvendedor. Transmitido por el facilitador de pagos. |
subMerchantDetails.city | an..128 | Ciudad del subvendedor. Transmitido por el facilitador de pago. |
subMerchantDetails.companyType | ans..60 | Tipo de empresa del subvendedor. Transmitido por el facilitador de pago. |
subMerchantDetails.country | a2 | Código del país de la dirección del subvendedor (norma ISO 3166 alpha-2). Transmitido por el facilitador de pago. |
subMerchantDetails.facilitatorId | ans..128 | Identificador del facilitador de pago. Transmitido por el facilitador de pago. |
subMerchantDetails.legalNumber | ans..24 | Número legal del subvendedor. Transmitido por el facilitador de pago. |
subMerchantDetails.mcc | n4 | Código MCC del subvendedor. Transmitido por el facilitador de pago. |
subMerchantDetails.mid | n..64 | Número de afiliación (MID) del subvendedor.Transmitido por el facilitador de pago. |
subMerchantDetails.name | ans..255 | Razón social del subvendedor. Transmitido por el facilitador de pago. |
subMerchantDetails.phoneNumber | an..32 | Número de teléfono del subvendedor. Transmitido por el facilitador de pago. |
subMerchantDetails.softDescriptor | ans..255 | Descripción (soft descriptor) del subvendedor que aparece en el extracto bancario del comprador. Transmitido por el facilitador del pago. |
subMerchantDetails.state | ans..128 | Región de la dirección del subvendedor. Transmitido por el facilitador de pago. |
subMerchantDetails.url | ans..128 | URL del subvendedor. Transmitido por el facilitador de pago. |
subMerchantDetails.zip | an..64 | Código postal del subvendedor. Transmitido por el facilitador de pago. |
Ofrecer el registro del medio de pago
El vendedor puede ofrecer al comprador la posibilidad de facilitar sus compras solicitando el registro de sus datos bancarios en la plataforma de pago.
Gracias a esta operación, la plataforma de pago asigna un token único al medio de pago y lo devuelve al sitio web comercial en el campo paymentMethodToken.
De esta manera, el comprador ya no necesitará ingresar su medio de pago en sus futuras compras.
Esta solución brinda un nivel adicional de seguridad a los pagos, ya que transita únicamente el token que solo puede ser utilizado por la plataforma de pago.
Para ofrecer al comprador que registre su modo de pago al momento del pago, utilice el campo formAction con el valor ASK_REGISTER_PAY
{ "formAction" : "ASK_REGISTER_PAY", "customer": { "email": " <sample@example.net>" } }
Nota
El campo email se vuelve obligatorio al registrar el medio de pago.
Cuando se muestre el formulario, aparecerá una casilla de control.
De forma predeterminada, esta casilla no está marcada.
Si el comprador acepta el registro de su medio de pago, debe marcar la casilla.
Si el pago es rechazado, no se registrará el medio de pago.
Forzar el registro del medio de pago
Si el vendedor ha notificado al comprador en un paso previo del proceso de compra, puede "forzar" el registro del medio de pago sin mostrar una casilla adicional.
Para hacerlo, utilice el campo formAction con el valor REGISTER_PAY :
{ "formAction" : "REGISTER_PAY", "customer": { "email": " <sample@example.net>" } }
Utilizar un medio de pago registrado
El vendedor puede transmitir el token que se debitará al inicializarse el pago.
Cuando se muestra el formulario, los campos kr-pan y kr-expiry se rellenan automáticamente. El comprador solo debe introducir su código de seguridad (CVV) para finalizar la compra.
Para ello, simplemente transmita el token a debitar en el campo paymentMethodToken y asigne al campo formAction el valor PAYMENT.
Dado que este valor es el valor predeterminado, el campo formAction ya no es necesario.
{ "formAction" : "PAYMENT", "paymentMethodToken":"d3d9cc0d24a4400e9d123e9e1b8f1793", }
Utilizar un medio de pago registrado sin mostrar el formulario incrustado
Este modo permite crear una transacción sin mostrar el formulario de pago y sin autentificación (llamada de servidor a servidor).
{ "formAction" : "SILENT", "paymentMethodToken":"d3d9cc0d24a4400e9d123e9e1b8f1793", }
Nota
- Este caso de uso no utiliza el cliente JavaScript, sino solo una llamada de servidor a servidor. No hay redirección hacia la URL de retorno indicada en kr-post-url-success.
- La respuesta no contiene un formToken , sino directamente un objeto Transaction.
- Utilice la referencia de encadenamiento en el campo
initialIssuerTransactionIdentifier
, si esta está ausente, los emisores pueden rechazar la transacción.("Soft Decline"). - Ver: Paiement 0 clic
Transmitir la preferencia del vendedor
Utilisez le champ strongAuthentication (lien vers le playground : strongAuthentication).
Ce champ indique la préférence du marchand au sujet de l'authentification de l'acheteur.
- Sin interacción del titular ( frictionless ).
- Con interacción del titular (autentificación fuerte o challenge ).
- Sin preferencia del vendedor.
Casos de uso | Valores posibles |
---|---|
CHALLENGE : Con interacción del titular |
|
| |
| |
FRICTIONLESSSin interacción del titular Opción "Frictionless 3DS2" obligatoria |
Si la tienda no dispone de la opción "Frictionless 3DS2", la elección de preferencia se delega al emisor de la tarjeta (No Preference). Si el emisor acepta la solicitud de frictionless, la transacción no está cubierta por la transferencia de responsabilidad en caso de disputa del titular de de tarjeta. |
Sin preferencia del vendedor |
|
|
Aumentar la probabilidad de frictionless en 3DS2
Transmita estos datos para aumentar la probabilidad de frictionless durante el pago.
Lista de campos a enviar
CARACTERÍSTICAS | Descripción |
---|---|
customer.email | E-mail del comprador. |
customer.billingDetails.identityCode | Identificación nacional. Identifica de manera única a cada ciudadano en un país. CPF o CNPJ en Brasil. |
customer.billingDetails.streetNumber | Número de calle de la dirección de facturación |
customer.billingDetails.address | Dirección postal |
customer.billingDetails.address2 | Segunda línea de dirección |
customer.billingDetails.zipCode | Código Postal |
customer.billingDetails.city | Ciudad |
customer.billingDetails.state | Estado / región |
customer.billingDetails.country | Código del país según ISO 3166 alpha-2 |
customer.billingDetails.phoneNumber | Número de teléfono |
customer.billingDetails.cellPhoneNumber | Número de teléfono móvil |
customer.shippingDetails.address | Dirección postal |
customer.shippingDetails.address2 | Segunda línea de dirección |
customer.shippingDetails.zipCode | Código Postal |
customer.shippingDetails.city | Ciudad |
customer.shippingDetails.state | Estado / región |
customer.shippingDetails.country | Código del país según ISO 3166 |
customer.shippingDetails.shippingMethod | Modo de entrega. |
customer.shippingDetails.shippingSpeed | Plazo de entrega. |
Transmitir datos personalizados
Al crear un pago, el vendedor puede enviar información específica a la plataforma de pago para atender necesidades específicas de su negocio.
Por ejemplo, transmitir un número de archivo, un número de contrato, etc.
Esta información será:
- se muestran en el
Back Office Vendedor , en la información de la transacción (pestaña Extras ), - visibles en el e-mail de confirmación de pago destinado al vendedor,
- devueltas en la URL de notificación, sin cambios.
Para ello, utilice los campos metadata (en formato json) durante la llamada al Web Service Charge/CreatePayment :
Ejemplo para transmitir un elemento de datos llamado “contract” y su valor:
{ "metadata": { "contract": "1245KL-78/ZE" } }
Sobrecargar la URL de notificación instantánea (desaconsejado)
Puede sobrescribir la URL de notificación instantánea (también llamada IPN) en el formulario si utiliza una única tienda para diferentes canales de venta, diferentes tipos de pago, diferentes idiomas, etc.
Esta función es incompatible con la ejecución desde el
Se llamará a la URL definida en la regla de notificación (consulte el capítulo Configurar las notificaciones).
Utilice el campo ipnTargetUrl al inicializar el pago para sobrescribir la URL de la página que se notifica.
Si el valor del campo vads_shop_url es incorrecto, el formulario no será rechazado.
{ "ipnTargetUrl" : "<https://my.site/my-ipn>", }
Cambiar el tipo de captura
La plataforma de pago asocia un modo de captura predeterminado con el contrato del adquirente (MID): captura inmediata o captura diferida.
Si el adquirente lo autoriza, el sitio web vendedoro tiene la posibilidad de forzar el tipo de captura a utilizar.
Para ello, utilice el campo overridePaymentCinematic de la siguiente manera:
Captura inmediata
{ "overridePaymentCinematic": "IMMEDIATE_CAPTURE" }
Captura diferida
{ "overridePaymentCinematic": "DELAYED_CAPTURE" }
Por defecto se aplica el valor configurado en el contrato.