Apple Pay
- Web
- Native iOS App
Integración Web
Puedes empezar a aceptar pagos con Apple Pay en la Web usando la Página de pago alojada o el Componente Payment Request. No se necesita ninguna configuración adicional para usar Apple Pay en la Página de pago alojada.
Nuestro Componente Payment Request te ofrece una única integración para Apple Pay y Google Pay. Los clientes ven un botón de Google Pay o de Apple Pay, según qué combinación de dispositivo y navegador sea compatible.
Abre esta página en Safari para ver el botón de Apple Pay.
Si prefieres integrar directamente contra la API de Apple Pay, sigue la guía de integración directa con la API que se muestra a continuación.
Registra tu dominio con Apple Pay
Si usas el Plugin de WooCommerce o un dominio personalizado con la Página de pago alojada de MONEI, tu dominio se verifica automáticamente.
Para registrar tu dominio con Apple, primero debes verificar la propiedad del dominio. Ve a MONEI Dashboard → Ajustes → Métodos de pago, elige Registrar dominio con Apple y sigue las instrucciones del popup.
También puedes verificar tu dominio con Apple usando la API REST de MONEI.
Checkout Exprés
Usa el checkout exprés para recopilar las direcciones de envío y facturación directamente en la hoja de pago de Apple Pay. Consulta la guía de Checkout Exprés para ver la configuración y los ejemplos.
Integración directa con la API
Antes de empezar, necesitas:
- Añadir una tarjeta a tu Wallet para Safari.
- Servir tu aplicación a través de HTTPS. Esto es un requisito tanto en desarrollo como en producción. Una forma de ponerse en marcha es usar un servicio como ngrok.
- Registrar tu dominio con Apple Pay, tanto en desarrollo como en producción.
- Seguir las instrucciones de Apple.
Incluye monei.js en tu página de checkout añadiendo la etiqueta script al head de tu archivo HTML.
<head>
<title>Checkout</title>
<script src="https://js.monei.com/v3/monei.js"></script>
</head>
Crear una sesión de Apple Pay
const session = new window.ApplePaySession(3, request);
session.onvalidatemerchant = async (event: any) => {
try {
const merchantSession = await monei.api.createApplePaySession({
accountId: 'MONEI_ACCOUNT_ID',
displayName: 'Test Merchant',
domainName: 'example.com',
validationUrl: event.validationURL
});
session.completeMerchantValidation(merchantSession);
} catch (error) {
session.abort();
}
};
Intercambia el token de Apple Pay por un token de pago de MONEI que pueda usarse para confirmar el pago.
session.onpaymentauthorized = async (event) => {
// Encode Apple Pay token as a base64 string
const paymentToken = JSON.stringify(event.payment.token);
const token = window.btoa(paymentToken);
try {
const result = await monei.api.createToken({
paymentId: '{{payment_id}}',
paymentMethod: {
applePay: {token}
}
});
session.completePayment({
status: window.ApplePaySession.STATUS_SUCCESS
});
return moneiTokenHandler(result.paymentToken);
} catch (error) {
session.completePayment({
status: window.ApplePaySession.STATUS_FAILURE
});
}
};
session.begin();
Confirmar el pago
Una vez que hayas obtenido el token de pago de MONEI, puedes confirmar el pago usando el token.
async function moneiTokenHandler(token) {
try {
const result = await monei.confirmPayment({
paymentId: '{{payment_id}}',
paymentToken: token
});
// At this moment you can show a customer the payment result
// But you should always rely on the result passed to the callback endpoint
// on your server to update the order status
console.log(result);
} catch (error) {
console.error(error);
}
}
Integración con app nativa de iOS
Si estás desarrollando una aplicación iOS nativa con Apple Pay, necesitas crear un certificado personalizado de procesamiento de pagos de Apple Pay. Este certificado permite que tu app descifre los tokens de Apple Pay y procese los pagos a través de MONEI.
Crear un certificado personalizado
- Ve a Ajustes de certificados de Apple Pay en tu MONEI Dashboard
- Haz clic en Crear certificado para generar una solicitud de firma de certificado (CSR)
- Descarga el archivo CSR
- Ve a Apple Developer Portal - Certificados
- Haz clic en el botón + para crear un nuevo certificado
- Selecciona Apple Pay Payment Processing Certificate
- Selecciona tu Merchant ID y haz clic en Continuar
- Sube el archivo CSR que descargaste de MONEI
- Descarga el certificado generado (archivo .cer)
- Vuelve al MONEI Dashboard y sube el certificado para activarlo
La clave privada es generada y almacenada de forma segura por MONEI. No necesitas gestionar claves privadas directamente.
Inicializar Apple Pay
Crea tu PKPaymentRequest en Swift. MONEI proporciona el merchantIdentifier — puedes obtenerlo en la API Get PaymentMethods bajo metadata.applePay.merchantId (tanto en test como en producción: merchant.com.monei):
let paymentRequest = PKPaymentRequest()
paymentRequest.merchantIdentifier = "merchant.com.monei" // From MONEI API
paymentRequest.countryCode = "ES"
paymentRequest.currencyCode = "EUR"
paymentRequest.supportedNetworks = [.visa, .masterCard, .amex]
paymentRequest.merchantCapabilities = .capability3DS
paymentRequest.paymentSummaryItems = [
PKPaymentSummaryItem(label: "Your Store Name", amount: NSDecimalNumber(value: 10.00))
]
Procesar los pagos
Una vez que el usuario autoriza el pago, recibirás un objeto PKPayment. Envía el token de pago a tu backend y usa la API de MONEI para procesarlo:
- Codifica en Base64 el token de Apple Pay de
payment.token.paymentData - Crea un token de pago de MONEI usando la API Create Token
- Confirma el pago usando el token
// In your PKPaymentAuthorizationViewControllerDelegate
func paymentAuthorizationViewController(
_ controller: PKPaymentAuthorizationViewController,
didAuthorizePayment payment: PKPayment,
handler completion: @escaping (PKPaymentAuthorizationResult) -> Void
) {
// Send payment.token.paymentData to your backend
let tokenData = payment.token.paymentData.base64EncodedString()
// Your backend calls MONEI API to process the payment
}
En tu backend, intercambia el token de Apple Pay por un token de pago de MONEI y confirma el pago.
Antes de pasar a producción
- Asegúrate de que estás usando el Account ID y la clave de API del modo de producción (live).
- Asegúrate de que tienes al menos un procesador de tarjetas habilitado.
- Contacta con nuestro equipo de soporte para configurar Apple Pay en producción.