overview - Flujo de trabajo con PayKey usando Paypal Adaptive Payment
paypal split (1)
Estoy tratando de implementar un sistema de pago usando la nueva API de Paypal (pago adaptable).
Hasta ahora, tengo este flujo de trabajo:
- Enviar una solicitud a Paypal para:
AdaptivePayments/Pay
- Esto crea una solicitud de pago y devuelve una clave de pago que es válida durante 3 horas ( fuente )
- Ahora, espero que PayPal me envíe una solicitud a través del IPN. Cuando lo haga, obtendré el pay_key con él
- Al usar este pay_key, llamaré a
AdaptivePayments/PaymentDetails
para conocer el estado del pago.
Pero me preguntaba, ¿cómo puedo hacer si han pasado más de 3 horas? (como en un reembolso?)
¿Cuál es la forma segura de hacerlo entonces?
¡Gracias por tu ayuda!
Bueno, me responderé sobre eso y luego de leer un poco.
En lugar de utilizar la clave de pago dada al llamar a AdaptivePayments/Pay
, y otra solución es usar el trackingId.
Así es cómo :
El primer paso es crear un AdaptivePayments/Pay
y especificar un trackingId (debe ser único):
{
"actionType":"PAY",
"currencyCode":"USD",
"receiverList":{"receiver":[{"amount":"1.00","email":"[email protected]"}]},
"returnUrl":"http://apigee.com/console/-1/handlePaypalReturn",
"cancelUrl":"http://apigee.com/console/-1/handlePaypalCancel?",
"trackingId":"abcde-12345-unique-of-course",
"ipnNotificationUrl":"http://apigee.com/console/-1/ipn",
"requestEnvelope":{"errorLanguage":"en_US", "detailLevel":"ReturnAll"}
}
En respuesta, tendrá la clave de pago a la que redirigirá a su comprador para realizar el pago.
Luego, durante toda la evolución de este pago, se le notificará a su URL de IPN (aquí, " http://apigee.com/console/-1/ipn ").
Cuando reciba una solicitud (POST) en esta dirección, verifique la validez de PayPal y obtendrá un trackingId
de trackingId
en el parámetro. Compruebe que este AdaptivePayments/PaymentDetails
seguimiento existe y luego solicite AdaptivePayments/PaymentDetails
con ese AdaptivePayments/PaymentDetails
seguimiento de la siguiente manera:
{
"trackingId":"{put here}",
"requestEnvelope":{"errorLanguage":"en_US", "detailLevel":"ReturnAll"}
}
Y tendrá un estado detallado completo de su pago a cambio.
Ahora, haces el trabajo de actualizar tu base de datos, llamar a tu comprador, etc. etc. :)
Lo que fue útil para mí: