paypal integration mit single page app
Ich habe das exakt gleiche problem wie in dem post Implementierung von Paypal in der single page application leider niemand in dieser riesigen Gemeinschaft zu haben scheint eine Antwort 🙁
Mit viel Headbangen war ich in der Lage zu implementieren a dirty hack, da unten, und ich weiß, dass dies nicht die richtige Lösung. Könnte einer von den gurus freundlich nachdenken über diese Frage und Antwort/feedback geben, wenn mein dirty hack ist der richtige Weg, oder es kann besser umgesetzt werden. Unten my dirty hack 🙁
Vielen Dank im Voraus für Eure Antworten/Kommentare.
Habe ich einen button zu sagen, mit paypal bezahlen und onClick ich ein neues Fenster öffnen -> window.open("/paypalCreate", width = "20px", height = "20px");
und ich halte diese get-Anfrage "/paypalCreate" in meine node.js server-und call-Methode erstellen, die aussieht liek unten
exports.create = function (req, res) {
//Payment object
var payment = {
//fill details from DB
};
//Passing the payment over to PayPal
paypal.payment.create(payment, function (error, payment) {
if (error) {
console.log(error);
} else {
if (payment.payer.payment_method === 'paypal') {
req.session.paymentId = payment.id;
var redirectUrl;
for (var i = 0; i < payment.links.length; i++) {
var link = payment.links[i];
if (link.method === 'REDIRECT') {
redirectUrl = link.href;
}
}
res.redirect(redirectUrl);
}
}
});
};
This redirects user to paypal and once user confirms or cancels payment, the redirect urls are called. And in the success redirect url I capture the payment details into the databse and render a html in this opened window with the confirmation.
exports.execute = function (req, res) {
var paymentId = req.session.paymentId;
var payerId = req.param('PayerID');
//1. if this is executed, then that means the payment was successful, now store the paymentId, payerId and token into the database
//2. At the close of the popup window open a confirmation for the reserved listing
var details = {"payer_id": payerId};
paypal.payment.execute(paymentId, details, function (error, payment) {
if (error) {
console.log(error);
} else {
//res.send("Hell yeah!");
res.render('paypalSuccess', {payerId: payerId, paymentId: paymentId});
}
});
};
Sobald der Benutzer schließt das geöffnete Fenster, in dem paypal wurde behandelt die orginal SPA-Fensters wird aktualisiert und so immer die Zahlung details aus der DB und hier können Sie die SPA-in welcher Weise auch immer Sie wollen.
Ich weiß, dass dies ist ein dirty hack, aber wie Sie, ich konnte nicht einen besseren Weg finden. Bitte lassen Sie mich wissen, wenn dies für Sie arbeitet, oder wenn Sie haben einen besseren Weg gefunden, das zu tun tihs.
cheers,
Chidan
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen. Das ist es, was ich für meine app.
Edit: Die config3 Modul würde dann so Aussehen. Die Dokumentation für dieses Modul kann gefunden werden hier
Soweit Umleitung, die Sie nicht benötigen, senden Sie Ihre Benutzer zu Paypal.
Auf Erfolg nur zeigen, eine Transaktion abgeschlossen-Nachricht /Seite.
Im Fehlerfall zeigen die Fehler und lassen Sie Sie beheben.