Skip to content

Баг с билдером и ценами товаров #30

Open
zKoz210 opened this issue Aug 13, 2021 · 1 comment
Open

Баг с билдером и ценами товаров #30

zKoz210 opened this issue Aug 13, 2021 · 1 comment

Comments

@zKoz210
Copy link

zKoz210 commented Aug 13, 2021

Сейчас у меня вот такой пример: из-за умножения на 100.00 сумма товаров меньше на один 0, а товар считается нормально. Из-за чего происходит ошибка
image

        try {
            $builder = \YooKassa\Request\Payments\CreatePaymentRequest::builder();
            $builder->setAmount(100)
                ->setCurrency(\YooKassa\Model\CurrencyCode::RUB)
                ->setCapture(true)
                ->setDescription('Оплата заказа 112233');


            // Устанавливаем страницу для редиректа после оплаты
            $builder->setConfirmation(array(
                'type'      => \YooKassa\Model\ConfirmationType::REDIRECT,
                'returnUrl' => 'https://merchant-site.ru/payment-return-page',
            ));

            // Составляем чек
            $builder->setReceiptEmail('[email protected]');
            // Добавим товар
            $builder->addReceiptItem(
                'Тестовый товар',
                1000,
                1.0,
                2,
                'full_payment',
                'commodity'
            );

            // Создаем объект запроса
            $request = $builder->build();

            // Можно изменить данные, если нужно
            $request->setDescription($request->getDescription() . ' - merchant comment');

            $idempotenceKey = uniqid('', true);
            $response = $client->createPayment($request);

            //получаем confirmationUrl для дальнейшего редиректа
            $confirmationUrl = $response->getConfirmation()->getConfirmationUrl();
        } catch (\Exception $e) {
            $response = $e;
        }

image

@ostulov
Copy link

ostulov commented Aug 16, 2021

Добрый день!

В представленном Вами примере распечатаны внутренние свойства объекта, в котором цена товара хранится в виде копеек. При получении суммы через обращение к свойству или через метод getValue() - сумма автоматически увеличивается на 100 и становится актуальной. То есть в этом нет ошибок.

Ошибка возникает из-за несовпадения суммы платежа с суммой товаров в чеке. Вы установили платеж на 100 рублей, а в чек добавили товар на 1000. Вам необходимо обеспечить совпадение суммы платежа с суммой всех товаров в чеке.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Development

No branches or pull requests

2 participants