Flux de travail avec PayKey en utilisant le paiement adaptatif PayPal
-
13-11-2019 - |
Question
J'essaie de mettre en œuvre un système de paiement en utilisant la nouvelle API PayPal (paiement adaptatif).
Jusqu'à présent, j'ai ce flux de travail:
- Envoyez une demande à PayPal pour:
AdaptivePayments/Pay
- Cela crée une demande de rémunération et renvoyez un Paykey qui est valable 3 heures (la source)
- Maintenant, j'attends que PayPal m'envoie une demande via l'IPN. Quand ça le fera, j'aurai le Pay_Key avec
- En utilisant ce pay_key, j'appellerai le
AdaptivePayments/PaymentDetails
pour connaître l'état du paiement.
Mais je me demandais, comment puis-je faire si cela faisait plus de 3 heures? (comme dans un remboursement?)
Quelle est la façon sûre de faire alors?
Merci pour ton aide!
La solution
Eh bien, je me répondrai sur celui-là et après un peu de lecture.
Au lieu d'utiliser le Paykey donné lors de l'appel AdaptivePayments/Pay
, et une autre solution consiste à utiliser le suivi.
Voici comment :
Première étape, vous créez un AdaptivePayments/Pay
et vous spécifiez un suivi (doit être unique):
{
"actionType":"PAY",
"currencyCode":"USD",
"receiverList":{"receiver":[{"amount":"1.00","email":"seller_1288085303_biz@gmail.com"}]},
"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 réponse, vous aurez le Paykey où vous redirigerez votre acheteur, afin de faire le paiement.
Ensuite, pour toute l'évolution de ce paiement, vous serez informé de votre URL IPN (ici, "http://apigee.com/console/-1/ipn").
Lorsque vous recevrez une demande (post) dans cette adresse, vérifiez la validité à PayPal et vous obtiendrez un trackingId
dans le paramètre. Vérifiez que ce suivi existe puis demandez AdaptivePayments/PaymentDetails
avec ce suivi comme ceci:
{
"trackingId":"{put here}",
"requestEnvelope":{"errorLanguage":"en_US", "detailLevel":"ReturnAll"}
}
Et vous aurez un statut complet de votre paiement en retour.
Maintenant, vous faites le travail pour mettre à jour votre base de données, appelez votre acheteur, etc.
Ce qui m'a été utile: