chickenburner
Cadet 1st Year
- Registriert
- Feb. 2020
- Beiträge
- 11
Hallo,
ich versuche aktuell ein Checkout zu basteln und habe dazu Paymill als Zahlungsanbieter integriert. Kreditkarte und Sepa Lastschrift funktionieren bereits tadellos. Allerdings hänge ich bei der Integration von PayPal. So sieht mein Script aktuell aus:
Für Kreditkarte und Sepa muss ich ein Token erstellen, der dann in meiner payment.php zu einer Zahlung verarbeitet wird. Für PayPal muss ich allerdings ein Checksum erstellen: https://developers.paymill.com/guides/paypal/transactions
Ich hab leider keine Ahnung, wie ich das genau machen muss. Muss ich hier einen Ajax Request senden und danach die Transaction erstellen, in etwa so?:
Oder was genau muss ich hier machen?
Stehe leider total auf dem Schlauch.
Vielen Dank im Voraus
ich versuche aktuell ein Checkout zu basteln und habe dazu Paymill als Zahlungsanbieter integriert. Kreditkarte und Sepa Lastschrift funktionieren bereits tadellos. Allerdings hänge ich bei der Integration von PayPal. So sieht mein Script aktuell aus:
Javascript:
function PaymillResponseHandler(error, result) {
if (error) {
$(".payment_errors").text(error.apierror);
$(".payment_errors").css("display","inline-block");
} else {
$(".payment_errors").css("display","none");
$(".payment_errors").text("");
var form = $("#payment-form");
// Token
var token = result.token;
form.append("<input type='hidden' name='paymillToken' value='" + token + "'/>");
form.get(0).submit();
}
$(".submit-button").removeAttr("disabled");
}
$("#payment-form").submit(function (event) {
$('.submit-button').attr("disabled", "disabled");
paymenttype = $('.switch_button_active').length ? $('.switch_button_active').val() : $('.switch_button_active').val();
console.log(paymenttype);
switch (paymenttype) {
case "cc":
$('.submit-button').attr("disabled", "disabled");
if (false === paymill.validateHolder($('.card-holdername').val())) {
$(".payment_errors").text(translation[formlang]["error"]["invalid-card-holdername"]);
$(".payment_errors").css("display","inline-block");
$(".submit-button").removeAttr("disabled");
return false;
}
if ((false === paymill.validateCvc($('.card-cvc').val()))) {
if(VALIDATE_CVC){
$(".payment_errors").text(translation[formlang]["error"]["invalid-card-cvc"]);
$(".payment_errors").css("display","inline-block");
$(".submit-button").removeAttr("disabled");
return false;
} else {
$('.card-cvc').val("000");
}
}
if (false === paymill.validateCardNumber($('.card-number').val())) {
$(".payment_errors").text(translation[formlang]["error"]["invalid-card-number"]);
$(".payment_errors").css("display","inline-block");
$(".submit-button").removeAttr("disabled");
return false;
}
var expiry = $('.card-expiry').val();
expiry = expiry.split("/");
if(expiry[1] && (expiry[1].length <= 2)){
expiry[1] = '20'+expiry[1];
}
if (false === paymill.validateExpiry(expiry[0], expiry[1])) {
$(".payment_errors").text(translation[formlang]["error"]["invalid-card-expiry-date"]);
$(".payment_errors").css("display","inline-block");
$(".submit-button").removeAttr("disabled");
return false;
}
var params = {
amount_int: parseInt($('.amount').val().replace(/[\.,]/, '.') * 100), // E.g. "15" for 0.15 Eur
currency: $('.currency').val(), // ISO 4217 e.g. "EUR"
number: $('.card-number').val(),
exp_month: expiry[0],
exp_year: expiry[1],
cvc: $('.card-cvc').val(),
cardholder: $('.card-holdername').val()
};
break;
case "elv":
iban = new Iban();
$('.submit-button').attr("disabled", "disabled");
if (!paymill.validateHolder($('.elv-holdername').val())) {
$(".payment_errors").text(translation[formlang]["error"]["invalid-elv-holdername"]);
$(".payment_errors").css("display", "inline-block");
$(".submit-button").removeAttr("disabled");
return false;
}
if (!iban.validate($('.elv-iban').val())) {
$(".payment_errors").text(translation[formlang]["error"]["invalid-elv-iban"]);
$(".payment_errors").css("display", "inline-block");
$(".submit-button").removeAttr("disabled");
return false;
}
if ($('.elv-bic').val().length !== 9 && $('.elv-bic').val().length !== 11) {
$(".payment_errors").text(translation[formlang]["error"]["invalid-elv-bic"]);
$(".payment_errors").css("display", "inline-block");
$(".submit-button").removeAttr("disabled");
return false;
}
ibanData = $('.elv-iban').val().replace(/\s+/g, "");
var params = {
iban: ibanData,
bic: $('.elv-bic').val(),
accountholder: $('.elv-holdername').val()
};
break;
case "paypal":
$('.submit-button').attr("disabled", "disabled");
var params = {
amount_int: parseInt($('.amount').val().replace(/[\.,]/, '.') * 100), // E.g. "15" for 0.15 Eur
currency: $('.currency').val(), // ISO 4217 e.g. "EUR"
checksum_type: "paypal",
return_url: "url.de",
cancel_url: "url.de",
};
break;
}
if($('.switch_button_active').val() === "paypal"){
????
} else {
paymill.createToken(params, PaymillResponseHandler);
}
return false;
});
Für Kreditkarte und Sepa muss ich ein Token erstellen, der dann in meiner payment.php zu einer Zahlung verarbeitet wird. Für PayPal muss ich allerdings ein Checksum erstellen: https://developers.paymill.com/guides/paypal/transactions
Ich hab leider keine Ahnung, wie ich das genau machen muss. Muss ich hier einen Ajax Request senden und danach die Transaction erstellen, in etwa so?:
Javascript:
var api_url = 'https://api.paymill.com/v2.1/checksums'
var key = '11111111' // not real
$.ajax({
headers: {
"Authorization": "Basic " + btoa(key + ":" + "")
},
method: 'POST',
url: api_url,
data: params,
})
.done(function( msg ) {
alert( 'Data Saved: ' + msg.checksum + msg );
paymill.createTransaction(msg.checksum);
});
Oder was genau muss ich hier machen?
Stehe leider total auf dem Schlauch.
Vielen Dank im Voraus