Apple Pay

¡Apple Pay ya está disponible!#

! [-no-filter] (assets / apple-pay-logo.png)

! [-no-filter] (assets / applePayHero_2x.png)

Beneficios#

  • Aumente las tasas de conversión con Apple Pay.
  • Amplíe su negocio facilitando el pago con Apple Pay y el proveedor de servicios de pago.
  • Aumente las ventas ofreciendo una experiencia de pago rápida, sencilla y segura con Apple Pay.
  • Mejore la privacidad y la seguridad: cada transacción requiere reconocimiento facial (Face ID), huella digital (Touch ID) o autenticación con contraseña.

Apple Pay aumenta la adopción de usuarios y las tasas de conversión, lo que hace que las compras sean más fáciles que nunca. Es una forma sencilla y segura para que los compradores en línea agilicen el pago y para que las empresas en línea aumenten las ventas. Es una victoria para los compradores y las empresas.


Introducción#

[Apple Pay] (https://developer.apple.com/documentation/apple_pay_on_the_web) es una billetera digital disponible solo para dispositivos iOS que dependen de Secure Element, un chip que almacena de forma segura la información de pago. La lista de dispositivos compatibles se puede encontrar [aquí] (https://support.apple.com/en-us/HT208531).

Apple Pay ofrece 2 API de JavaScript para la integración web: API de Apple Pay JS y API de solicitud de pago. Para la integración con Portal Carat, se eligió la [API de JS de Apple Pay] (https://developer.apple.com/documentation/apple_pay_on_the_web/apple_pay_js_api). Ambas API están disponibles de forma nativa en el navegador Safari.

Como funciona#

Como se mencionó anteriormente, debido a su disponibilidad en dispositivos compatibles, el botón de pago de Apple Pay solo se mostrará en esos dispositivos. Una vez que el comprador esté en la pantalla de pago con el método de pago Apple Pay disponible, simplemente haga clic en el mismo botón para seleccionar la tarjeta deseada para el pago. Cuando el comprador hace clic en el botón Apple Pay, selecciona la tarjeta y confirma la transacción, se producen interacciones entre Portal Carat y Apple Pay para crear la transacción de pago y confirmar el pago. Después de la última interacción con Apple Pay, la transacción se procesa en Portal Carat para la confirmación del pago.

Para obtener más información sobre el flujo de pago con billeteras, consulte la página [Descripción general] (wallet-overview.md)

Se requieren datos de registro#

El comerciante debe registrar su [ID de comerciante] (https://developer.apple.com/documentation/apple_pay_on_the_web/configuring_your_environment) en el sistema Apple. Este registro funciona como la identificación de la tienda Apple para Portal Carat. También es necesario asociar este registro con el certificado Portal Carat y un dominio, que sería la dirección de la página de pago (donde está disponible el botón de pago de Apple Pay). Para este segundo paso, comuníquese con nuestro equipo de soporte.

Marcas de tarjetas compatibles#

Las siguientes redes de tarjetas disponibles en Apple Pay (Brasil) son compatibles con Portal Carat: Visa y MasterCard.

Integrar con Apple Pay#

Para comenzar a procesar pagos con Apple Pay, debe integrarse con Apple a través de la web. Durante la integración, verá que se requieren algunos parámetros para procesar Apple Pay a través de Portal Carat:

  • El parámetro MerchantIdentifier debe llenarse con el ID de comerciante de la tienda en Portal Carat. Todo lo que tienes que hacer es tenerlo registrado en el portal de Apple Pay y en la configuración de la tienda en Portal Carat que se completará automáticamente y se enviará a Apple Pay cuando lo solicites;
  • El parámetro domainName se debe completar con el dominio del sitio web de la tienda. Solo tienes que registrarlo en el portal de Apple Pay, asociado con el ID de comerciante, y se validará correctamente con Apple Pay.

Estos parámetros se utilizan en la primera solicitud a Apple Pay (cuando se hace clic en el botón Apple Pay), denominada "startSession", cuya función es crear la sesión de pago, identificando de qué tienda proviene la solicitud. Los datos informados se validan en el servidor de Apple y devuelven un error cuando los datos informados en la solicitud no coinciden con los registrados en Apple.

Aquí hay un ejemplo de solicitud para el startSession:

curl --location --request POST 'https://apple-pay-gateway-cert.apple.com/paymentservices/startSession' \
--header 'Content-Type: application/json' \
--data-raw '{
"merchantIdentifier": "merchant.br.com.softwareexpress.teste.e-SiTef",
"domainName": "esitef-homologacao.softwareexpress.com.br",
"displayName": "Teste Apple Pay para eSiTef"
}'

La API de Apple Pay JS coordina todas las llamadas necesarias para que Apple Pay complete la transacción. Después de startSession, la respuesta de este último se reenvía a completeMerchantValidation. En este momento, la ventana de pago de Apple Pay ha validado con éxito las credenciales de la tienda y está esperando la confirmación del pago por parte del usuario. Cuando el usuario confirma el pago, mediante contraseña o huella dactilar, se activa la función onpaymentauthorized, con la información de pago encriptada dentro del objeto event.

// funcao que integra as operacoes da Apple Pay com as chamadas back-end
var _handleApplePayEvents = function (appleSession) {
// validacao da identificacao da loja
// primeira funcao chamada ao clicar no botao da Apple Pay
appleSession.onvalidatemerchant = function (event) {
// chamada para o startSession e, em seguida, o response é enviado ao completeMerchantValidation
_validateApplePaySession(event.validationURL, function (merchantSession) {
appleSession.completeMerchantValidation(merchantSession);
});
};
// Funcao chamada quando o usuario confirma o pagamento pela Apple Pay
appleSession.onpaymentauthorized = function (event) {
// Chamada ao back-end do Portal Carat para concluir o pagamento.
// Deve ser enviado ao back-end o conteúdo do objeto 'event.token'
// para descriptografia e
// validação dos dados de pagamento para autorização.
// ...
// em caso de sucesso no processamento do pagamento
// ...
appleSession.completePayment(ApplePaySession.STATUS_SUCCESS);
// em caso de fracasso no processamento do pagamento
// ...
appleSession.completePayment(ApplePaySession.STATUS_FAILURE);
// ...
};
};

Pago / Autorización previa REST#

En el modo Pago o Preautorización REST, el comerciante debe realizar la primera parte de la integración con Apple Pay (todos los pasos descritos en el apartado anterior para obtener el token). Para obtener más detalles sobre este proceso de obtención de tokens, se recomienda ponerse en contacto con el soporte de Apple Pay.

El token obtenido debe luego pasarse a nuestras interfaces REST.

Enviar datos a Portal Carat#

Cuando completes la primera parte de la integración con Apple Pay, tendrás el token en tus manos.

Estos datos deben pasarse a través del campo card``wallet_transaction_id de la interfaz.

curl -X POST \
https://esitef-homologacao.softwareexpress.com.br/e-sitef/api/v1/payments/<NIT> \
--header "Content-Type: application/json" \
--header "merchant_id: <MERCHANT_ID>" \
--header "merchant_key: <MERCHANT_KEY>" \
--data-binary '{
"authorizer_id": "421",
"card": {
"wallet_transaction_id": "some token from Apple Pay"
}
}'

En el ejemplo anterior, se definió en el campo authorizer_id con el valor 421, que corresponde a seleccionar Apple Pay como método de pago y se definió en el campo wallet_transaction_id con el valor del token de Apple Pay . La ejecución exitosa del comando anterior devolverá un JSON similar al siguiente.

{
"code": "0",
"message": "OK. Transaction successful.",
"payment": {
"authorizer_code": "000",
"authorizer_message": "Transacao OK",
"status": "CON",
"nit": "<NIT>",
"order_id": "13034649899",
"customer_receipt": "====CUPOM COMPRADOR====",
"merchant_receipt": "====CUPOM ESTABELECIMENTO====",
"authorizer_id": "421",
"acquirer_id": "1005",
"acquirer_name": "Redecard",
"authorizer_date": "12/03/2021T14:33",
"authorization_number": "132030",
"merchant_usn": "13034649671",
"esitef_usn": "170713097340300",
"sitef_usn": "132030",
"host_usn": "999132030",
"payment_date": "12/03/2021T15:52",
"amount": "1000",
"payment_type": "C",
"issuer": "2",
"authorizer_merchant_id": "<MERCHANT_ID>"
}
}

HTML de pago / autorización previa#

Para usar Apple Pay con preautorización / pago HTML, comuníquese con un miembro de nuestro equipo de soporte para realizar la configuración necesaria. Es posible determinar qué banderas se aceptarán en Apple Pay para la integración HTML.

Captura de autorización previa de REST y cancelación de REST / a través del portal#

Apple Pay no permite que se utilice el mismo token más de una vez. Debido a esto, las operaciones de dos pasos como Pago / Cancelación, Autorización previa / Captura requieren que la tarjeta del pagador se almacene en Portal Carat. El almacenamiento a través de la interfaz HTML se puede realizar junto con el pago / preautorización siguiendo la documentación de Pago con almacenamiento de tarjeta o mediante la interfaz REST como se describe en la siguiente sección.

Almacenamiento REST#

El almacenamiento de la tarjeta es posible utilizando el token de Apple Pay. Póngase en contacto con nuestro equipo de soporte para realizar las configuraciones necesarias para habilitar este almacenamiento.

El almacenamiento de tarjetas REST funciona como si fuera a almacenar cualquier tarjeta, pero con las siguientes precauciones:

  • En lugar de enviar los números de la tarjeta, envíe el campo wallet_transaction_id con el contenido del token.
  • El envío del campo authorizer_id debe ser '421' (Apple Pay).

Para obtener más detalles, consulte [aquí] (storage-rest-flow.md).

Gestión de claves del comerciante#

Para el correcto procesamiento de una transacción por parte de ApplePay, es necesario tener un registro de clave pública en el servidor de Apple. Las claves públicas y privadas proporcionadas por Apple Server servirán como base para descifrar la carga útil enviada por la biblioteca Apple JS. Este es el primer paso para configurar un comerciante para recibir pagos de ApplePay.

! [-no-filter] (assets / ApplepayInitialStep.png)

[En esta guía, puede ver más detalles sobre el registro de claves en Apple Server.] (Https://developer.apple.com/documentation/apple_pay_on_the_web/configuring_your_environment)

Luego de registrar las claves, es necesario contactar con nuestro soporte e informarles, para que se puedan configurar en el registro de la Tienda. Apple requiere que pueda registrar dos pares de claves. Cada clave tiene un período de validez y el gerente de logística será responsable de administrar la validez y reportar nuevas claves al soporte de Software Express.

Importante: Tenga en cuenta que hay 2 pares de claves: un par responsable del descifrado y otro par responsable de crear una sesión de conexión de servidor con Apple.