PayPal\Converter\FormatConverter::formatToPrice PHP Method

formatToPrice() public static method

It covers the cases where certain currencies does not accept decimal values. We will be adding any specific currency level rules as required here.
public static formatToPrice ( $value, null $currency = null ) : null | string
$value
$currency null
return null | string
    public static function formatToPrice($value, $currency = null)
    {
        $decimals = 2;
        $currencyDecimals = array('JPY' => 0, 'TWD' => 0);
        if ($currency && array_key_exists($currency, $currencyDecimals)) {
            if (strpos($value, ".") !== false && floor($value) != $value) {
                //throw exception if it has decimal values for JPY and TWD which does not ends with .00
                throw new \InvalidArgumentException("value cannot have decimals for {$currency} currency");
            }
            $decimals = $currencyDecimals[$currency];
        } elseif (strpos($value, ".") === false) {
            // Check if value has decimal values. If not no need to assign 2 decimals with .00 at the end
            $decimals = 0;
        }
        return self::formatToNumber($value, $decimals);
    }

Usage Example

Beispiel #1
0
 /**
  * Total amount charged as part of this payment.
  *
  *
  * @param string|double $total
  *
  * @return $this
  */
 public function setTotal($total)
 {
     NumericValidator::validate($total, "Total");
     $total = FormatConverter::formatToPrice($total, $this->getCurrency());
     $this->total = $total;
     return $this;
 }
All Usage Examples Of PayPal\Converter\FormatConverter::formatToPrice