yoomoney / cms-drupal7

YooKassa payment module for Drupal 7.x
https://yookassa.ru/developers
Other
1 stars 3 forks source link

Invalid amount value type (используется модуль ya_commerce_api) #15

Closed mirazhg closed 6 years ago

mirazhg commented 6 years ago

YandexCheckout\Common\Exceptions\InvalidPropertyValueTypeException: Invalid amount value type в функции YandexCheckout\Model\MonetaryAmount->setValue() (строка 97 в файле .../sites/all/modules/yandex-money-cms-v2-drupal-master/yandex-checkout-sdk-php/lib/Model/MonetaryAmount.php).

Подключен модуль ya_commerce_api. Эта ошибка возникает при попытке отправить форму с данными для чека (54-Ф3). Думаю стоит поправить функцию:

function getPriceByData($amount, $currency_code)
{
    $currency     = commerce_currency_load($currency_code);
    $amount_price = commerce_currency_amount_to_decimal($amount, $currency_code);
    $price        = number_format(
        commerce_currency_round(
            abs($amount_price),
            $currency
        ),
        $currency['decimals'],
        $currency['decimal_separator'], // заменить на  '.',
        $currency['thousands_separator'] // заменить на  '',
    );

    return $price;
}

$currency['decimal_separator'] заменить на '.' $currency['thousands_separator'] заменить на ''

Моё предложение связано с тем, что принимаются данные в едином формате в не зависимости от языковых настроек (т.е. без разделителей тысяч и копейки через точку). Поясню, сейчас пытается отправить сумму "3 000,00" для рублей, а требуется отправить "3000.00" это и вызывает ошибку.

Прошу обратите на это внимание.

mirazhg commented 6 years ago

Спасибо, что быстро отреагировали! В версии v1.0.10 проблема была решена.

ostulov commented 6 years ago

Благодарим за информацию, баг был исправлен.