Integration Types
Otras características
Card Payments
Mobile Wallets
Alternative Payment Methods
Resources
Si utiliza Finalizar pedido con PayPal o Pagar con PayPal, puede configurar un acuerdo de facturación para un pagador, lo que permite iniciar una transacción de referencia (pagos por suscripción/recurrentes o a demanda) sobre este acuerdo de facturación sin consentimiento adicional del pagador. El pagador se registra en PayPal una vez para aceptar el acuerdo. Tras la aprobación de un acuerdo de facturación, no es necesario que el pagador inicie sesión en PayPal para confirmar pagos posteriores.
Como requisito previo, debe ponerse en contacto con PayPal para permitir procesar acuerdos de facturación y las transacciones de referencia.
El flujo de pago es de la siguiente manera:
Tokenize Browser Payment
al motor de pagos y redirige al pagador a la URL de PayPal incluida en la respuesta. Consulte Inicio del acuerdo de facturación. Como primer paso, cree una sesión enviando una solicitud Create Session
al motor de pagos desde su servidor web. La operación devuelve un ID de sesión que puede utilizar para hacer referencia a esta sesión.
Referencia de API de Create Session[REST][NVP]
Proporcione los siguientes campos en la solicitud de Tokenize Browser Payment
para iniciar un acuerdo de facturación y personalizar la experiencia del pagador que PayPal presenta.
token
: el token que desea crear o actualizar. Los detalles del acuerdo se almacenan sobre este token. sourceOfFunds.type = PAYPAL
session.id
: el identificador de la sesión de pago (devuelto en el Paso 1) que se actualizará con el token que contiene los detalles del acuerdo.sourceOfFunds.provided.paypal.billingAgreement.description
: su descripción para el acuerdo de facturación de PayPal. Esta descripción se muestra al pagador cuando se le pide que apruebe el acuerdo de facturación.sourceOfFunds.provided.paypal.billingAgreement.name
: su nombre para el acuerdo de facturación de PayPal.sourceOfFunds.provided.paypal.billingAgreement.cardinality
: indica el número de acuerdos de facturación entre usted y este pagador. Puede configurar esto en: MULTIPLE
: indica que tiene múltiples acuerdos de facturación con este pagador. Esto significa que se devolverá un nuevo acuerdo en respuesta a cada solicitud.SINGLE
: indica que tiene un solo acuerdo de facturación con este pagador. Esto significa que se devolverá el mismo acuerdo en respuesta a cada solicitud.browserPayment.returnUrl
: la URL a la que se desea redirigir el explorador del pagador tras la aprobación del acuerdo de facturación en PayPal.browserPayment.paypal.agreementConfirmation
: indica la acción que PayPal muestra al pagador antes de ser redirigido de vuelta a su sitio web. Puede configurar esto en: AGREE
: se muestra como "Aceptar y continuar" en el sitio web de PayPal. Esto significa que, después de que el pagador haya aprobado el acuerdo de facturación y el explorador de este se haya devuelto a su sitio web, usted no procesará un pago sobre este acuerdo de facturación en ese momento.AGREE_AND_PAY
: se muestra como "Aceptar y pagar" en el sitio web de PayPal. Esto significa que, después de que el pagador haya aprobado el acuerdo de facturación y el explorador de este se haya devuelto a su sitio web, usted procesará un pago sobre este acuerdo de facturación.browserPayment.paypal.displayShippingAddress
: indica si se desea que PayPal muestre la dirección de envío al pagador en el sitio Web de PayPal. Se puede establecer como "verdadero" o "falso". browserPayment.paypal.overrideShippingAddress
: indica si se desea permitir al pagador cambiar la dirección de envío para el pago en el sitio Web de PayPal. Se puede establecer como "verdadero" o "falso".Después de enviar esta solicitud, debe redirigir el explorador del pagador a la URL devuelta en el campo browserPayment.redirectUrl
.
Referencia de API de Tokenize Browser Payment [REST][NVP]
A continuación se ofrece un ejemplo de una solicitud Tokenize Browser Payment
, en la que el token se ha generado usando la estrategia de generación de token "Proporcionado por el negocio".
URL | https://evopaymentsmexico.gateway.mastercard.com/api/rest/version/72/merchant/{merchantId} |
Método HTTP | POST |
{ "apiOperation": "TOKENIZE_BROWSER_PAYMENT", "browserPayment": { "paypal": { "agreementConfirmation": "AGREE_AND_PAY", "displayShippingAddress": true, "overrideShippingAddress": false }, "returnUrl": "https://<return_url>" }, "correlationId": "f4d8b752-4f68-47c6-81e7-2ee488f821a0", "session": { "id": "SESSION0002567768179L82204264I7" }, "shipping": { "address": { "city": "<city>", "country": "<country>", "postcodeZip": "<post_code>", "stateProvince": "<state>", "street": "test1", "street2": "test2" }, "contact": { "firstName": "<merchant_first_name>", "lastName": "<merchant_last_name>" } }, "sourceOfFunds": { "provided": { "paypal": { "billingAgreement": { "description": "Test Billing Agreement", "name": "Test Name", "cardinality": "MULTIPLE" } } }, "type": "PAYPAL" }, "token": "975890899756" }
{ "browserPayment": { "redirectUrl": "https://<redirect_url>" }, "correlationId": "f4d8b752-4f68-47c6-81e7-2ee488f821a0", "merchant": "<test_merchant_Id>", "response": { "gatewayCode": "NO_VERIFICATION_PERFORMED" }, "result": "SUCCESS", "session": { "id": "SESSION0002567768179L82204264I7" } }
El token, ya sea generado por el motor de pagos o proporcionado por usted en la solicitud Tokenize Browser Payment
, se almacena en una sesión de pago y se devuelve en la respuesta Tokenize Browser Payment
.
Si está configurado para tokens generados por el motor de pagos, envíe una solicitud Retrieve Session
inmediatamente usando el session.id
y obtenga el valor devuelto en el campo sourceOfFunds.token
. Si el pagador no pudo configurar el acuerdo de facturación correctamente, el token no se devuelve.
Si está configurado para tokens proporcionados por negocios, vaya al Paso 3: Recuperar detalles del acuerdo de facturación.
A continuación, se muestra un ejemplo de una solicitud de Retrieve Session para un ID de sesión obtenido de la respuesta de Tokenize Browser Payment
donde el token lo generó el motor de pagos.
URL | https://evopaymentsmexico.gateway.mastercard.com/api/rest/version/72/merchant/{merchantId}/session/{sessionId} |
Método HTTP | GET |
{ "merchant": "<test_merchant>", "session": { "id": "SESSION0002567768179L82204264I7", "updateStatus": "SUCCESS", "version": "82cbc9f602" }, "sourceOfFunds": { "token": "975890899756" }, "version": "72" }
Para personalizar la experiencia del pagador en PayPal, puede proporcionar parámetros adicionales al configurar el acuerdo en PayPal.
Tokenize Browser Payment
y de que el acuerdo de facturación de PayPal se haya establecido para crear la experiencia de pagador deseada durante la aprobación del acuerdo de facturación.Antes de continuar con un pago sobre el acuerdo de facturación, debe comprobar si el token que contiene los detalles del acuerdo es válido. Esto se debe a que el pagador puede optar por cancelar el acuerdo de facturación en el sitio web de PayPal, en cuyo caso el estado del token dejará de ser válido. Continuar con un pago utilizando un token no válido hará que la transacción falle.
Cuando el pagador haya regresado a la página especificada por browserPayment.returnUrl
, puede enviar una solicitud Retrieve Token
. Debe proporcionar el ID del token para recuperar los detalles del acuerdo de facturación. Se devuelven los siguientes detalles si el pagador se suscribió correctamente para el acuerdo de facturación. De lo contrario, se devuelve el error "token no encontrado".
sourceOfFunds.provided.paypal.billingAgreement.cardinality
sourceOfFunds.provided.paypal.billingAgreement.description
sourceOfFunds.provided.paypal.billingAgreement.id
sourceOfFunds.provided.paypal.billingAgreement.name
sourceOfFunds.provided.paypal.payerId
sourceOfFunds.provided.paypal.accountEmail
sourceOfFunds.provided.paypal.accountHolder
A continuación, se muestra un ejemplo de una solicitud de Retrieve Token para un ID de token obtenido de la respuesta de Retrieve Session
o según lo que usted haya facilitado en la solicitud Tokenize Browser Payment
.
URL | https://evopaymentsmexico.gateway.mastercard.com/api/rest/version/72/merchant/{merchantId}/token/{tokenId} |
Método HTTP | GET |
{ "repositoryId": "TEST8108F6CF-6899-42", "result": "SUCCESS", "shipping": { "address": { "city": "<city>", "country": "<country>", "postcodeZip": "<pos_code>", "stateProvince": "<state>", "street": "test1", "street2": "test2" }, "contact": { "firstName": "<merchant_first_name>", "lastName": "<merchant_last_name>" } }, "sourceOfFunds": { "provided": { "paypal": { "accountEmail": "test@test.com", "accountHolder": "FirtName LastName", "billingAgreement": { "cardinality": "MULTIPLE", "description": "Test Billing Agreement", "id": "B-NGxIf31554266975867", "name": "Test Name" }, "payerId": "K4ZK9KRAXRVNA" } }, "type": "PAYPAL" }, "status": "VALID", "token": "975890899756", "usage": { "lastUpdated": "2019-04-03T04:49:48.029Z", "lastUpdatedBy": "<test_merchant>", "lastUsed": "2019-04-03T04:49:48.029Z" }, "verificationStrategy": "NONE" }
Si el acuerdo de facturación está aprobado y es válido, se debe iniciar un pago inmediatamente sobre el acuerdo de facturación si establece browserPayment.paypal.agreementConfirmation
=AGREE_AND_PAY
en la solicitud de Tokenize Browser Payment
.
Proporcione los siguientes campos en una solicitud Pay, además de los campos estándar.
sourceOfFunds.type = PAYPAL
sourceOfFunds.token
: proporcione el ID de token que identifica los detalles del acuerdo de facturación (recibidos de PayPal) en el motor de pagos. Puede utilizar este ID de token para los pagos únicos y recurrentes.Puede ver los detalles del acuerdo de facturación para una transacción Authorize o Pay al realizar una transacción Retrieve Transaction
o a través de Merchant Administration.
A continuación, se muestra un ejemplo de una solicitud de transacción Pay mediante el token que identifica los detalles del acuerdo de facturación con PayPal.
URL | https://evopaymentsmexico.gateway.mastercard.com/api/rest/version/72/merchant/{merchantId}/order/{orderid}/transaction/{transactionid} |
Método HTTP | PUT |
{ "apiOperation": "PAY", "order": { "amount": "123.46", "currency": "USD", "description": "Quantity description", "item": [ { "name": "name", "quantity": "40", "sku": "sku", "unitPrice": "2.8" } ], "itemAmount": "112.00", "tax": [ { "amount": "0.29", "rate": "9.77" } ], "taxAmount": "11.46" }, "shipping": { "address": { "city": "<city>", "country": "<country>", "postcodeZip": "<pos_code>", "stateProvince": "<state>", "street": "test1", "street2": "test2" }, "contact": { "email": "test@test.com", "firstName": "FirstName" } }, "sourceOfFunds": { "token": "975890899756" } }