39 lines
1.1 KiB
PHP
39 lines
1.1 KiB
PHP
<?php
|
|
|
|
function czqrpay_get_bank_account($db)
|
|
{
|
|
$sql = "SELECT rowid, iban, account_number FROM ".MAIN_DB_PREFIX."bank_account";
|
|
$resql = $db->query($sql);
|
|
|
|
if ($resql) {
|
|
while ($obj = $db->fetch_object($resql)) {
|
|
if (!empty($obj->account_number)) return $obj->account_number;
|
|
if (!empty($obj->iban)) return czqrpay_iban_to_cz($obj->iban);
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
|
|
function czqrpay_iban_to_cz($iban)
|
|
{
|
|
$iban = str_replace(' ', '', $iban);
|
|
if (substr($iban, 0, 2) !== 'CZ') return null;
|
|
|
|
$bank = substr($iban, 4, 4);
|
|
$prefix = ltrim(substr($iban, 8, 6), '0');
|
|
$account = ltrim(substr($iban, 14, 10), '0');
|
|
|
|
if ($prefix) return "$prefix-$account/$bank";
|
|
return "$account/$bank";
|
|
}
|
|
|
|
function czqrpay_build_spd($account, $amount, $vs, $msg)
|
|
{
|
|
$amount = number_format($amount, 2, '.', '');
|
|
|
|
// odstranit diakritiku
|
|
$msg = iconv('UTF-8', 'ASCII//TRANSLIT//IGNORE', $msg);
|
|
$msg = preg_replace('/[^A-Za-z0-9 .,-]/', '', $msg);
|
|
|
|
return "SPD*1.0*ACC:$account*AM:$amount*CC:CZK*X-VS:$vs*MSG:$msg*";
|
|
}
|