Перейти к содержанию
Форум поддержки пользователей VamShop

Яндекс касса. Смена статуса


Рекомендуемые сообщения

Какая то странность происходит. Я касса не у всех заказов меняет статус на "оплачен" после оплаты юзверем заказа. Логику так и не смог уловить. Кто то сталкивался?

В интерфейсе Я.кассы заказ проходит как "оплаченный", т.е деньги переведены.

Однако статус заказа не изменился.  У модулей стоит смена статуса при оплате как "оплачен"

Ссылка на сообщение
Поделиться на другие сайты

Может на яндексе есть способы оплаты, которые уведомления об оплате не сразу присылают?!

Например всякиме "ручные" способы оплаты, типа через терминал, т.е. не моментальные, может как раз на эти способы оплаты уведомления не сразу от яндекса приходят и статус не меняется.

Ссылка на сообщение
Поделиться на другие сайты

Как СБ РФ, так и Оплата картой - мимо какие то пролетают.

говорят прошло все успешно, и зафиксировалось отлично.

Саш смотри. Говорят ответ у нас был успещный.

Код ответа и код смены отличается вот этой строкой

if (number_format($_POST['orderSumAmount'],0) == number_format($order->info['total'],0)) {

В заказе использовался купон на скидку.

Т.е по сути может быть такое, что суммы отличаются на какие то доли и отсюда не проходит смена

Ссылка на сообщение
Поделиться на другие сайты

Да, он отвечает.

Там есть закомментированный кусок кода записи лог файла, yandex.log вроде.

Можно в той же папке что и yandex.php создать файл yandex.log, поставить 777 права на него, раскомментировать этот код логирования и можно будет видеть потом в логе, что присылает яндекс.

 

Ссылка на сообщение
Поделиться на другие сайты

да вроде все чисто. думаю проблема в обрезке цифр. Пока закомментировал проверку суммы. Думаю не столь вано, так как сервисы все равно постят только при полной и успешной оплате

Ссылка на сообщение
Поделиться на другие сайты

Опасно.

Можно подменить сумму заказа до перехода на оплату и если не проверять сумму заказа, то статус заказа поменяется всё равно.

т.е. заплатят 1 рубль и получать оплаченный статус.

Но это опасно только если Вы продаёте элетронные товары, т.е. файлы с моментальной загрузкой.

Если нет, то можно конечно и закомментировать.

Ссылка на сообщение
Поделиться на другие сайты

как тогда поступить?

Ответ яндексу и смена статуса отличаютя лишь данной строкой.

В чем подвох может быть?

 

Ссылка на сообщение
Поделиться на другие сайты

Я ж говорил, смотрите лог-файл, какая сумма приходит от яндекса и какая сумма в $order->info['total']

Может не надо округлять, может по-другому округлить надо как-то, что б условие сработало.

 

Ссылка на сообщение
Поделиться на другие сайты

Например попоробовать округлять - http://php.net/manual/en/function.round.php

Хотя, по идее, должна совпадать сумма, во всяком случае в яндекс.кассе для физ. лиц яндекс присылает и сумму заказа и сумму к оплате.

т.е. можно сравнивать и без комиссий всяких.

Надо документацию смотреть, что там яндекс присылает, какие параметры.

Но насколько я помню яндекс присылает именно сумму заказа, без всяких комиссий, должно всё совпадать.

Ссылка на сообщение
Поделиться на другие сайты

if (round($_POST['orderSumAmount']) == round($order->info['total'])) {

 

не срабатывает

найти бы на каком этаме яндексу отдается заказ с копейками

Ссылка на сообщение
Поделиться на другие сайты

Смотрите документацию яндекс кассы, может там кроме orderSumAmount яндекс ещё что-то присылает, наприме суммы комиссий или ещё что, что б можно было сравнить полную сумму.

Но на vamshop.ru я с такой проблемой не стилкивался при работу яндекс кассы, всегда суммы совпадали.

Ссылка на сообщение
Поделиться на другие сайты

Если юзверь использует, например купоны или у цены товара есть копейки (не путать с точностью цен в админке) - вылезает такая петрушка

Ссылка на сообщение
Поделиться на другие сайты

Если есть копейки то можно строку: 

if (number_format($_POST['orderSumAmount'],0) == number_format($order->info['total'],0)) {

попробовать поменять на:

if (number_format($_POST['orderSumAmount'],2) == number_format($order->info['total'],2)) {

Что б не отбрасывало копейки.

Вот описание number_format - http://php.net/manual/en/function.number-format.php

Ссылка на сообщение
Поделиться на другие сайты

очевидно при оформлении заказа сумма сначала отдается яндексу, а потом округляется

 и заносится в БД

Ссылка на сообщение
Поделиться на другие сайты

Стоимость заказа, что передаётся в яндекс и что пишется в базу одинаковая.

Разве что может в настройках у себя что правили, не знаю, может итоговый модуль купон поставили ниже Всего или ещё что.

Лично я не сталкивался с таким, что б суммы были разными.

Ссылка на сообщение
Поделиться на другие сайты
×
×
  • Создать...