Jump to content

Платежный модуль для Яндекс Денег


Recommended Posts

  • Replies 156
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Posted Images

А лучше спросите Корса :)

Он вам расскажет, что проблема в том, что в Симпле нельзя посчитать число ПИ до 28го знака)))

А если серьезно - нужно выяснить, где считается процент и с какой точностью.

Весьма возможно, что так любимая Корсом точность все нафиг поломала...

Link to post
Share on other sites

Судя по документации ЯД

 

sum — сумма перевода. Из нее вычитается комиссия по формуле amount_due = sum - sum * (a / (1 + a) ), где:

  • amount_due — сумма к получению;
  • sum — сумма к списанию;
  • a — коэффициент комиссии. При переводе из кошелька — 0,005, при переводе с карты — 0,02.

 

 

Исходя из этого расчет должен быть таким: 

        $price_yandex = $price+$price*(0.02/(1+0.02));

Но к оплате получается еще меньше 1 366 руб. 27 коп.

Link to post
Share on other sites

Заказ на 1340 руб с учетом 2% комиссии к оплате выходит 1366 руб. 80 коп.

Клиент оплачивает, в итоге на мой кошелек упала сумма 1339 руб. 46 коп.

Соответственно статус заказа не обновился. Получается что комиссия каким то боком получилась 2.04% вместо равных 2%

В Вашем примере "на мой кошелек упала сумма" - это как раз 98% от "к оплате выходит".

Соответственно этому меняйте свой подсчет...

Link to post
Share on other sites
  • 1 month later...

Добрый день!подскажите, пожалуйста, как прописать, чтобы сумма к оплате была равна сумме заказа, а на кошелек приходило за минусом комиссии яндекса?

Link to post
Share on other sites

Добрый день!подскажите, пожалуйста, как прописать, чтобы сумма к оплате была равна сумме заказа, а на кошелек приходило за минусом комиссии яндекса?

 

комиссию яндекса оплачивает пользователь а не магазин. в таком случае вам нужно передавать сумму = сумма-%ЯД тогда по идее пользователь будет оплачивать ту сумму на которую заказал а вам уйдет все за вычетом процента. так же нужно учитывать это в принимающем callback.php

Link to post
Share on other sites
  • 1 month later...

Сделал все как написал Dj_Amulet, но все равно после оплаты заказ не переходит в статус оплаченного. В чем может быть проблема? 

Link to post
Share on other sites

подскажите что именно поменяли в коде , в Платежном модуле для Яндекс Денег. а именно расчёт процента комиссии  для оплаты карточкой.

Edited by naimit
Link to post
Share on other sites

подскажите что именно поменяли в коде , в Платежном модуле для Яндекс Денег. а именно расчёт процента комиссии  для оплаты карточкой.

Дело в том, что заказ не переходит в статус "Оплачен" как в случае перевода денег с кошелька на кошелек, так и при переводе с карты на кошелек. Видимо проблема в несоответствии цены товара и денег, упавших на карту. В случае Dj_Amulet комиссия взимается с продавца, а не покупателя. Скорее всего именно из-за этого статус заказа не меняется. Я вижу два выхода:

1) либо как и было в изначальном варианте симплы брать комиссию с покупателя. Тогда все будет соответствовать

2) Сделать так, чтобы в callback количество денег, переведенных на карточку, сверялось не с ценой товара, а с ценой за вычетом комиссии.

Поменял все четко в соответствии с рекомендациями. Никуда не отклонялся.  

Расчет комиссии везде по одной формуле:

$price = $price+max(0.01, $price*$this->fee/100);
Link to post
Share on other sites
  • 1 month later...

Все понял.. Переделал..

Работает!

 

Во втором случае (оплата картой) не меняется статус на оплаченный! Как вы сделали? Сделаете? Сколько будет стоить и за какое время?

 

В первом случае все меняется, спасибо модулю Noxter-а

Link to post
Share on other sites
  • 2 weeks later...

Во втором случае (оплата картой) не меняется статус на оплаченный! Как вы сделали? Сделаете? Сколько будет стоить и за какое время?

 

В первом случае все меняется, спасибо модулю Noxter-а

Какая сумма заказа?

Какая сумма отображается при оплате?

Какая сумма падает на счет ЯД после оплаты?

Link to post
Share on other sites

Чтобы работало все 100% идеально при оплате картой, нужно учитывать комиссию Яндекса по следующей формуле: 

$price = round(($price/98)*100, 2);

Оплачено несколько тысяч заказов, все идеально. Копейка к копейке. Статус меняется 100 из 100.

Link to post
Share on other sites

Чтобы работало все 100% идеально при оплате картой, нужно учитывать комиссию Яндекса по следующей формуле: 

$price = round(($price/98)*100, 2);

Оплачено несколько тысяч заказов, все идеально. Копейка к копейке. Статус меняется 100 из 100.

 

То есть, мы меняем вот эту строку: 

 

$price = $price+max(0.01, $price*$this->fee/100);

 

все верно?

Edited by Gragory
Link to post
Share on other sites

То есть, мы меняем вот эту строку: 

 

$price = $price+max(0.01, $price*$this->fee/100);

 

все верно?

 

Вообще закомментировал эту строку — сумма стала верной

(как я понял — у Яндекса при переводе с карты на кошелек нет комиссии)

 

Но вот статус у заказа на оплаченный не меняется.

Подскажите пожалуйста!

Link to post
Share on other sites

Вообще закомментировал эту строку — сумма стала верной

(как я понял — у Яндекса при переводе с карты на кошелек нет комиссии)

 

Но вот статус у заказа на оплаченный не меняется.

Подскажите пожалуйста!

 

А как у вас статус изменится если суммы не равны?

 

Если вы убрали надбавку комиссии Яндекса к итоговой сумме, то нужно убрать/поправить проверку по сумме в callback.php

Link to post
Share on other sites

А как у вас статус изменится если суммы не равны?

 

Если вы убрали надбавку комиссии Яндекса к итоговой сумме, то нужно убрать/поправить проверку по сумме в callback.php

 

 

 

не могу найти строку эту! Тем более я так понял 1 callback на 2 способа оплаты в вашем решении, отсюда вообще запутался

Edited by Maksclub
Link to post
Share on other sites
×
×
  • Create New...