51 lines
2.9 KiB
PHP
51 lines
2.9 KiB
PHP
<?php
|
|
// PayPal Payments Standard hosted checkout (Buy Now).
|
|
// Posts to PayPal's hosted page with cmd=_xclick — no client id/secret.
|
|
// https://developer.paypal.com/docs/archive/paypal-payments-standard/integration-guide/formbasics/
|
|
|
|
$paypalAddress = strtolower($school_record['paypal_code']);
|
|
$paypalCurrency = $school_record['paypal_currency'];
|
|
$paypalRecordNum = $trxnum;
|
|
|
|
$item_title = $school_record['school_name'] . " Order Payment";
|
|
$item_title = normalizeString($school_record['school_name'] . " Order Payment", 'string');
|
|
|
|
$hostURL = $_SERVER['HTTP_HOST'];
|
|
$forwardedProto = '';
|
|
if (!empty($_SERVER['HTTP_X_FORWARDED_PROTO'])) {
|
|
$fwdParts = explode(',', $_SERVER['HTTP_X_FORWARDED_PROTO']);
|
|
$forwardedProto = strtolower(trim($fwdParts[0]));
|
|
}
|
|
$isHttps = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off')
|
|
|| (isset($_SERVER['SERVER_PORT']) && (string)$_SERVER['SERVER_PORT'] === '443')
|
|
|| $forwardedProto === 'https'
|
|
|| (isset($_SERVER['REQUEST_SCHEME']) && strtolower($_SERVER['REQUEST_SCHEME']) === 'https');
|
|
$prefix = $isHttps ? "https://" : "http://";
|
|
|
|
$returnURL = $hostURL . "/";
|
|
$cancelURL = $hostURL . "/";
|
|
// PayPal requires HTTPS for Instant Payment Notification (notify_url).
|
|
$notifyURL = "https://" . $hostURL . "/ppPayment.php";
|
|
|
|
$useSandbox = false;
|
|
if ($school_record['paypal_mode'] == 'Test') $useSandbox = true;
|
|
$paypalCheckoutHost = $useSandbox ? "www.sandbox.paypal.com" : "www.paypal.com";
|
|
|
|
?>
|
|
<form method="post" action="https://<?php echo htmlspecialchars($paypalCheckoutHost, ENT_QUOTES, 'UTF-8'); ?>/cgi-bin/webscr">
|
|
<input type="hidden" name="cmd" value="_xclick">
|
|
<input type="hidden" name="business" value="<?php echo htmlspecialchars($paypalAddress, ENT_QUOTES, 'UTF-8'); ?>">
|
|
<input type="hidden" name="bn" value="HotLunchesOnLine_SP">
|
|
<input type="hidden" name="charset" value="utf-8">
|
|
<input type="hidden" name="currency_code" value="<?php echo htmlspecialchars($paypalCurrency, ENT_QUOTES, 'UTF-8'); ?>">
|
|
<input type="hidden" name="no_shipping" value="1">
|
|
<input type="hidden" name="custom" value="<?php echo htmlspecialchars($paypalRecordNum, ENT_QUOTES, 'UTF-8'); ?>">
|
|
<input type="hidden" name="item_number" value="<?php echo htmlspecialchars($paypalRecordNum, ENT_QUOTES, 'UTF-8'); ?>">
|
|
<input type="hidden" name="return" value="<?php echo htmlspecialchars($prefix . $returnURL, ENT_QUOTES, 'UTF-8'); ?>">
|
|
<input type="hidden" name="cancel_return" value="<?php echo htmlspecialchars($prefix . $cancelURL, ENT_QUOTES, 'UTF-8'); ?>">
|
|
<input type="hidden" name="notify_url" value="<?php echo htmlspecialchars($notifyURL, ENT_QUOTES, 'UTF-8'); ?>">
|
|
<input type="hidden" name="item_name" value="<?php echo htmlspecialchars($item_title, ENT_QUOTES, 'UTF-8'); ?>">
|
|
<input type="hidden" name="amount" value="<?php echo htmlspecialchars($owing, ENT_QUOTES, 'UTF-8'); ?>">
|
|
<input type="submit" value="<?php echo htmlspecialchars($school_record['paypal_button_text'], ENT_QUOTES, 'UTF-8'); ?>" class="btn btn--primary">
|
|
</form>
|