• Resolved Airat Halitov🔥

    (@airathalitov)


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

    Как воспроизвести проблему:

    1) Установите в магазину валюту, отличную от рублей, например, доллары
    2) Закажите товар и перейдите к оплате. Например, товар на $49
    3) Когда перейдете к оплате, то на странице платежной системы сначала не будет валюты (просто число 49), а потом при попытке оплатить счет выставится на 49 рублей.

    Как должно быть:

    На этапе передачи параметров товара в платежную систему нужно автоматически конвертировать ее в рубли по текущему курсу.

Viewing 10 replies - 1 through 10 (of 10 total)
  • Thread Starter Airat Halitov🔥

    (@airathalitov)

    В вашей службе поддержки мне говорили, что это должно делаться на сайте, т.е. сама Яндекс.Касса не поддерживает разные валюты. А так как этот плагин является “прослойкой” между сайтом и кассой, то, я думаю, конвертация валюты должна происходить именно здесь.

    Потому что тот же PayPal и другие платежные системы нормально с разными валютами работают.

    Thread Starter Airat Halitov🔥

    (@airathalitov)

    Я глянул мельком исходники вашего плагина – там есть возможность использовать разные валюты, но в коде явно забито использование рублей (RUB).
    Можете сделать так, чтобы код валюты запрашивался у WooCommerce?
    Например, если у WooCommerce стоит код валюты USD, то и Яндекс.Касса с этим кодом работает.

    Thread Starter Airat Halitov🔥

    (@airathalitov)

    Написал отдельно в поддержку и ответили следующее:

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

    Добрый день!

    Прошу прощения за долгий ответ!

    Валюта приема оплаты задается на стороне Яндекс.Кассы. Если Вашему юрлицу разрешен прием валюты, попросите персонального менеджера включить поддержку валюты на стороне Яндекс.Кассы. При этом в файле api-kassa-woocoomerce/includes/lib/yandex-checkout-sdk-php/lib/Model/MonetaryAmount.php в 51 строке нужно указать нужное значение валюты.
    В таком случае платеж будет проходить в валюте на значение, присылаемое в запросе.

    Если же Вашему юрлицу не разрешен прием оплаты в валюте, то Яндекс.Касса от магазина ожидает сумму оплаты в рублях. При этом мы не можем самостоятельно конвертировать сумму заказа из валюты в рубли, т.к. мы не можем предугадать применение всех комиссий для клиента при платеже в валюте.

    Добрый день.
    Тогда подскажите, пожалуйста, каким хуком подсунуть Яндекс.Кассе нужную сумму в рублях? Конвертер у меня на сайте стоит, получить от него значение этой суммы не проблема. Не пойму, как скормить ее платежной форме.

    Неужели только вот в эту функцию YandexMoneyCheckoutOrderHelper::getTotal($order) свой код добавлять? Цивилизованного пути не предусмотрено, или я что-то упускаю из виду?

    • This reply was modified 3 years, 9 months ago by Fedorka.
    Thread Starter Airat Halitov🔥

    (@airathalitov)

    @fedorka
    Посмотрите файлы

    gateway/
    104:YandexMoneyWidgetGateway.php
    273:YandexMoneyCheckoutGateway.php

    Они мне написали, что нужно найти
    $result = $this->createPayment($order);
    и в $order можно задать сконвертированную сумму заказа (total).

    Плюс еще я им передал, чтобы в будущих выпусках добавили переменную “Курс”, которая по умолчанию будет = 1. Чтобы потом можно было бы на нее умножать, а не править везде в коде. А еще лучше, если они эту переменную добавят в настройки плагина.
    Ответили, что передадут это разработчикам.

    @airathalitov, Спасибо. Файлы-то я уже посмотрела. Но редактировать код плагина – это нецивилизованный способ. Это при каждом обновлении придется делать повторно. Обычно разработчики предусматривают фильтры, хуки какие-нибудь для таких случаев. Увы, данный плагин этим похвастаться не может.
    Будем надеяться, что они прислушаются к Вашим советам в будущих версиях.

    Thread Starter Airat Halitov🔥

    (@airathalitov)

    Но редактировать код плагина – это нецивилизованный способ. Это при каждом обновлении придется делать повторно.

    Да, согласен. Это временное и неудобное решение.
    Разве что форк этого плагина сделать для себя. Плюс он вроде не так часто обновляется (но это и минус).

    Еще забыл написать, что валюта выбирается тут:
    https://plugins.trac.wordpress.org/browser/yandex-money-checkout/trunk/includes/lib/yandex-checkout-sdk-php/lib/Model/MonetaryAmount.php#L51

    Будем надеяться, что они прислушаются к Вашим советам в будущих версиях.

    Кстати, подобная логика с конвертацией валюты была вот в этом плагине, на который я им тоже указал. Там курс рубля тоже в настройках указывается. Правда придется его мониторить и ручками указывать, но это лучше, чем ничего.

    Thread Starter Airat Halitov🔥

    (@airathalitov)

    Похоже, что нас всё-таки услышали и добавили в версии 1.6.3 поддержку разных валют. Ура, товарищи!

Viewing 10 replies - 1 through 10 (of 10 total)
  • The topic ‘Поддержка разных валют’ is closed to new replies.