68 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
<?php
 | 
						|
 | 
						|
 | 
						|
$dolibarrURL = "https://dolibarr.romanschenk.ch/";
 | 
						|
function createDonation($amount, $dolibarrURL) {
 | 
						|
    $BusinesspartnerID = "220";
 | 
						|
    $pulicNote = "Automatisch generiert von genderwatchprotocol.com";
 | 
						|
    $ch = curl_init();
 | 
						|
 | 
						|
    curl_setopt($ch, CURLOPT_URL, $dolibarrURL."api/index.php/donations");
 | 
						|
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 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\"}");
 | 
						|
 | 
						|
    $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 validateDonation($donationID, $dolibarrURL) {
 | 
						|
    $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);
 | 
						|
}
 | 
						|
 | 
						|
$amount = (float)($_GET["amount"]);
 | 
						|
if(is_numeric($amount) && $amount > 0) {
 | 
						|
    forwardToDonationPage($amount, $dolibarrURL);
 | 
						|
} else {
 | 
						|
    $amount = (float)($_POST["amount"]);
 | 
						|
    if(is_numeric($amount) && $amount > 0) {
 | 
						|
        forwardToDonationPage($amount, $dolibarrURL);
 | 
						|
    } else {
 | 
						|
        echo "invalid amount!";
 | 
						|
    }
 | 
						|
}
 |