}
     if ($updateFail == true) {
         $body = _('Payment via PayPal was successful, but has not been recorded due to a system error. Please check your PayPal account for details. The following may be useful:') . "\n\nPayment Token: {$paymentToken}\n\nPayer ID: {$paymentPayerID}\n\nApplication Form ID: {$gibbonApplicationFormID}\n\nApplication Fee: {$applicationFee}\n\n" . $_SESSION[$guid]["systemName"] . " " . _('Administrator');
         mail($to, $subject, $body, $headers);
         //Success 3
         $URL .= "&addReturn=success3&id=" . $_GET["id"];
         header("Location: {$URL}");
         exit;
     }
     //Success 1
     $URL .= "&addReturn=success1&id=" . $_GET["id"];
     header("Location: {$URL}");
 } else {
     $updateFail = false;
     //Save payment details to gibbonPayment
     $gibbonPaymentID = setPaymentLog($connection2, $guid, "gibbonApplicationForm", $gibbonApplicationFormID, "Online", "Failure", $applicationFee, "Paypal", "Failure", $paymentToken, $paymentPayerID, $paymentTransactionID, $paymentReceiptID);
     //Link gibbonPayment record to gibbonApplicationForm, and make note that payment made
     if ($gibbonPaymentID != "") {
         try {
             $data = array("paymentMade" => $paymentMade, "gibbonPaymentID" => $gibbonPaymentID, "gibbonApplicationFormID" => $gibbonApplicationFormID);
             $sql = "UPDATE gibbonApplicationForm SET paymentMade=:paymentMade, gibbonPaymentID=:gibbonPaymentID WHERE gibbonApplicationFormID=:gibbonApplicationFormID";
             $result = $connection2->prepare($sql);
             $result->execute($data);
         } catch (PDOException $e) {
             $updateFail = true;
         }
     } else {
         $updateFail = true;
     }
     if ($updateFail == true) {
         $body = _('Payment via PayPal was unsuccessful, and has also not been recorded due to a system error. Please check your PayPal account for details. The following may be useful:') . "\n\nPayment Token: {$paymentToken}\n\nPayer ID: {$paymentPayerID}\n\nApplication Form ID: {$gibbonApplicationFormID}\n\nApplication Fee: {$applicationFee}\n\n" . $_SESSION[$guid]["systemName"] . " " . _('Administrator');
         }
         $mail->CharSet = "UTF-8";
         $mail->Encoding = "base64";
         $mail->IsHTML(true);
         $mail->Subject = "Receipt From " . $_SESSION[$guid]["organisationNameShort"] . " via " . $_SESSION[$guid]["systemName"];
         $mail->Body = $body;
         $mail->AltBody = $bodyPlain;
         $mail->Send();
     }
     //Success 1
     $URL .= "&addReturn=success1&gibbonFinanceInvoiceID={$gibbonFinanceInvoiceID}&key={$key}";
     header("Location: {$URL}");
 } else {
     $updateFail = false;
     //Save payment details to gibbonPayment
     $gibbonPaymentID = setPaymentLog($connection2, $guid, "gibbonFinanceInvoice", $gibbonFinanceInvoiceID, "Online", "Failure", $feeTotal, "Paypal", "Failure", $paymentToken, $paymentPayerID, $paymentTransactionID, $paymentReceiptID);
     //Link gibbonPayment record to gibbonApplicationForm, and make note that payment made
     if ($gibbonPaymentID != "") {
         try {
             $data = array("gibbonPaymentID" => $gibbonPaymentID, "gibbonFinanceInvoiceID" => $gibbonFinanceInvoiceID);
             $sql = "UPDATE gibbonFinanceInvoice gibbonPaymentID=:gibbonPaymentID WHERE gibbonFinanceInvoiceID=:gibbonFinanceInvoiceID";
             $result = $connection2->prepare($sql);
             $result->execute($data);
         } catch (PDOException $e) {
             $updateFail = true;
         }
     } else {
         $updateFail = true;
     }
     if ($updateFail == true) {
         //Success 2
         }
     }
 }
 if ($status == "Paid" or $status == "Paid - Partial") {
     if ($_POST["status"] == "Paid") {
         $statusLog = "Complete";
     } else {
         if ($_POST["status"] == "Paid - Partial") {
             $statusLog = "Partial";
         } else {
             if ($_POST["status"] == "Paid - Complete") {
                 $statusLog = "Final";
             }
         }
     }
     $logFail = setPaymentLog($connection2, $guid, "gibbonFinanceInvoice", $gibbonFinanceInvoiceID, $paymentType, $statusLog, $paidAmountLog, NULL, NULL, NULL, NULL, $paymentTransactionID, NULL, $paidDate);
     if ($logFail == FALSE) {
         $partialFail = TRUE;
     }
 }
 if ($partialFail == TRUE) {
     //Fail 4
     $URL .= "&updateReturn=fail4";
     header("Location: {$URL}");
 } else {
     if ($emailFail == TRUE) {
         //Success 1
         $URL .= "&updateReturn=success1";
         header("Location: {$URL}");
     } else {
         //Success 0