Skip to content

Instantly share code, notes, and snippets.

@gelinger777
Created January 30, 2019 12:23
Show Gist options
  • Save gelinger777/528792110b226a6d7cc565307acf0650 to your computer and use it in GitHub Desktop.
Save gelinger777/528792110b226a6d7cc565307acf0650 to your computer and use it in GitHub Desktop.
Format Money Amount depending on decimals for Stripe and Adyen
<?
/*
*/
function getCurrencyDecimals($iso_code){
$decimalData["AED"]=2;
$decimalData["ALL"]=2;
$decimalData["AMD"]=2;
$decimalData["ANG"]=2;
$decimalData["AOA"]=2;
$decimalData["ARS"]=2;
$decimalData["AUD"]=2;
$decimalData["AWG"]=2;
$decimalData["AZN"]=2;
$decimalData["BAM"]=2;
$decimalData["BBD"]=2;
$decimalData["BDT"]=2;
$decimalData["BGN"]=2;
$decimalData["BHD"]=3;
$decimalData["BMD"]=2;
$decimalData["BND"]=2;
$decimalData["BOB"]=2;
$decimalData["BRL"]=2;
$decimalData["BSD"]=2;
$decimalData["BWP"]=2;
$decimalData["BYN"]=2;
$decimalData["BZD"]=2;
$decimalData["CAD"]=2;
$decimalData["CHF"]=2;
$decimalData["CLP"]=2;
$decimalData["CNY"]=2;
$decimalData["COP"]=2;
$decimalData["CRC"]=2;
$decimalData["CUP"]=2;
$decimalData["CVE"]=0;
$decimalData["CZK"]=2;
$decimalData["DJF"]=0;
$decimalData["DKK"]=2;
$decimalData["DOP"]=2;
$decimalData["DZD"]=2;
$decimalData["EGP"]=2;
$decimalData["ETB"]=2;
$decimalData["EUR"]=2;
$decimalData["FJD"]=2;
$decimalData["FKP"]=2;
$decimalData["GBP"]=2;
$decimalData["GEL"]=2;
$decimalData["GHS"]=2;
$decimalData["GIP"]=2;
$decimalData["GMD"]=2;
$decimalData["GNF"]=0;
$decimalData["GTQ"]=2;
$decimalData["GYD"]=2;
$decimalData["HKD"]=2;
$decimalData["HNL"]=2;
$decimalData["HRK"]=2;
$decimalData["HTG"]=2;
$decimalData["HUF"]=2;
$decimalData["IDR"]=0;
$decimalData["ILS"]=2;
$decimalData["INR"]=2;
$decimalData["ISK"]=2;
$decimalData["JMD"]=2;
$decimalData["JOD"]=3;
$decimalData["JPY"]=0;
$decimalData["KES"]=2;
$decimalData["KGS"]=2;
$decimalData["KHR"]=2;
$decimalData["KMF"]=0;
$decimalData["KRW"]=0;
$decimalData["KWD"]=3;
$decimalData["KYD"]=2;
$decimalData["KZT"]=2;
$decimalData["LAK"]=2;
$decimalData["LBP"]=2;
$decimalData["LKR"]=2;
$decimalData["LYD"]=3;
$decimalData["MAD"]=2;
$decimalData["MDL"]=2;
$decimalData["MKD"]=2;
$decimalData["MMK"]=2;
$decimalData["MNT"]=2;
$decimalData["MOP"]=2;
$decimalData["MRU"]=2;
$decimalData["MUR"]=2;
$decimalData["MVR"]=2;
$decimalData["MWK"]=2;
$decimalData["MXN"]=2;
$decimalData["MYR"]=2;
$decimalData["MZN"]=2;
$decimalData["NAD"]=2;
$decimalData["NGN"]=2;
$decimalData["NIO"]=2;
$decimalData["NOK"]=2;
$decimalData["NPR"]=2;
$decimalData["NZD"]=2;
$decimalData["OMR"]=3;
$decimalData["PAB"]=2;
$decimalData["PEN"]=2;
$decimalData["PGK"]=2;
$decimalData["PHP"]=2;
$decimalData["PKR"]=2;
$decimalData["PLN"]=2;
$decimalData["PYG"]=0;
$decimalData["QAR"]=2;
$decimalData["RON"]=2;
$decimalData["RSD"]=2;
$decimalData["RUB"]=2;
$decimalData["RWF"]=0;
$decimalData["SAR"]=2;
$decimalData["SBD"]=2;
$decimalData["SCR"]=2;
$decimalData["SEK"]=2;
$decimalData["SGD"]=2;
$decimalData["SHP"]=2;
$decimalData["SLL"]=2;
$decimalData["SOS"]=2;
$decimalData["STN"]=2;
$decimalData["SVC"]=2;
$decimalData["SZL"]=2;
$decimalData["THB"]=2;
$decimalData["TND"]=3;
$decimalData["TOP"]=2;
$decimalData["TRY"]=2;
$decimalData["TTD"]=2;
$decimalData["TWD"]=2;
$decimalData["TZS"]=2;
$decimalData["UAH"]=2;
$decimalData["UGX"]=0;
$decimalData["USD"]=2;
$decimalData["UYU"]=2;
$decimalData["UZS"]=2;
$decimalData["VEF"]=2;
$decimalData["VND"]=0;
$decimalData["VUV"]=0;
$decimalData["WST"]=2;
$decimalData["XAF"]=0;
$decimalData["XCD"]=2;
$decimalData["XOF"]=0;
$decimalData["XPF"]=0;
$decimalData["YER"]=2;
$decimalData["ZAR"]=2;
$decimalData["ZMW"]=2;
return $decimalData[$iso_code];
}
function formatCurrencyValue($amount,$currency)
{
// @see: https://support.adyen.com/questions/which-zero-decimal-currencies-does-adyen-support
$decimals = $this->getCurrencyDecimals($currency);
return round($amount*pow(10,$decimals),0);
}
//usage
$amountToSend= formatCurrencyValue('1234.04','EUR');
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment