donations.php

This commit is contained in:
schrom01 2023-02-16 19:41:27 +01:00
parent c3f787f14a
commit e6c89a06d3
1 changed files with 31 additions and 7 deletions

View File

@ -1,12 +1,13 @@
<?php <?php
function createDonation($amount) {
$dolibarrURL = "https://dolibarr.romanschenk.ch/api/index.php/donations"; $dolibarrURL = "https://dolibarr.romanschenk.ch/";
function createDonation($amount, $dolibarrURL) {
$BusinesspartnerID = "220"; $BusinesspartnerID = "220";
$pulicNote = "Automatisch generiert von genderwatchprotocol.com"; $pulicNote = "Automatisch generiert von genderwatchprotocol.com";
$ch = curl_init(); $ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $dolibarrURL); curl_setopt($ch, CURLOPT_URL, $dolibarrURL."api/index.php/donations");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "{\"amount\": ".$amount.", \"date\": 1676545200, \"socid\": ".$BusinesspartnerID.", \"note_public\": \"Automatisch generiert von genderwatchprotocol.com\"}"); curl_setopt($ch, CURLOPT_POSTFIELDS, "{\"amount\": ".$amount.", \"date\": 1676545200, \"socid\": ".$BusinesspartnerID.", \"note_public\": \"Automatisch generiert von genderwatchprotocol.com\"}");
@ -25,18 +26,41 @@ function createDonation($amount) {
return $result; return $result;
} }
function forwardToDonationPage($amount){ function validateDonation($donationID, $dolibarrURL) {
$payment_link = "https://dolibarr.romanschenk.ch/public/payment/newpayment.php?source=donation&ref=".(createDonation($amount))."&securekey=NSmKzZ73HW1zWO8nAlpdq95mDt77Q32o"; $ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $dolibarrURL."api/index.php/donations/".$donationID."/validate");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "{}");
$headers = array();
$headers[] = 'Content-Type: application/json';
$headers[] = 'Accept: application/json';
$headers[] = 'Dolapikey: 4mQX4x4x65MlkGZ9HUD5A4oElqTn92kl';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close($ch);
return $result;
}
function forwardToDonationPage($amount, $dolibarrURL){
$donationID = createDonation($amount, $dolibarrURL);
validateDonation($donationID, $dolibarrURL);
$payment_link = $dolibarrURL."public/payment/newpayment.php?source=donation&ref=".($donationID)."&securekey=NSmKzZ73HW1zWO8nAlpdq95mDt77Q32o";
header('Location: '.$payment_link); header('Location: '.$payment_link);
} }
$amount = (float)($_GET["amount"]); $amount = (float)($_GET["amount"]);
if(is_numeric($amount) && $amount > 0) { if(is_numeric($amount) && $amount > 0) {
forwardToDonationPage($amount); forwardToDonationPage($amount, $dolibarrURL);
} else { } else {
$amount = (float)($_POST["amount"]); $amount = (float)($_POST["amount"]);
if(is_numeric($amount) && $amount > 0) { if(is_numeric($amount) && $amount > 0) {
forwardToDonationPage($amount); forwardToDonationPage($amount, $dolibarrURL);
} else { } else {
echo "invalid amount!"; echo "invalid amount!";
} }