morpher-ru / Yandex.Checkout.V3

.NET-клиент для Яндекс.Кассы
MIT License
65 stars 32 forks source link

Обновление ЮKassa #30

Closed rodion-m closed 2 years ago

rodion-m commented 3 years ago

Здравствуйте! Получил сегодня письмо от кассы со следующим содержимым:

Изменения в платёжных протоколах

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

Вот какие изменения нужно внести на вашей стороне (передайте эту информацию вашему разработчику):

— Если подключены по старому платёжному API (и email-протоколу)

Обновите ссылки для платёжных запросов:

Старая ссылка: http://money.yandex.ru/eshop.xml
Новая ссылка: https://yoomoney.ru/eshop.xml

— Если используете наш готовый модуль

Все изменения внесёт разработчик вашего модуля или CMS — просто дождитесь обновления (мы уже написали ему, что нужно сделать).

— Если подключены по платёжному API (или используете платёжный виджет)

Обновите ссылки и параметры (обновлять их нужно одновременно):

Новый URL для запросов: https://api.yookassa.ru/v3
Новый код способа оплаты: yoo_money (вместо «yandex_money») — передавайте нам yoo_money в качестве способа оплаты. Также он используется во входящих уведомлениях и в информации о платеже.
Обновление в объекте cancellation_details: если ЮKassa отменила платёж или платёж прошел с ошибкой, будем отдавать "party" : " yoo_kassa" (вместо "party" : "yandex_checkout").
Важный момент: если вы создали платёж со старым URL (https://payment.yandex.net/api/v3/) и перешли на новый — уведомления по платежу придут без изменений (как для старого). Но код способа оплаты в запросе деталей этого платежа GET /payments по новому URL будет новый — yoo_money.

Полагаю, для корректной дальнейшей работы Я(Ю).Кассы следует учесть эти изменения в репозитории.

bzaar commented 3 years ago

Добрый день! Спасибо за сигнал.

Насколько я понимаю, нашего модуля касаются только изменения под заголовком:

— Если подключены по платёжному API (или используете платёжный виджет)

Разберем каждое изменение отдельно.

Новый URL для запросов: https://api.yookassa.ru/v3

Новый URL вы можете указать в вызове конструктора класса Client. Для этого не нужна новая версия пакета.

Новый код способа оплаты: yoo_money (вместо «yandex_money») — передавайте нам yoo_money в качестве способа оплаты. Также он используется во входящих уведомлениях и в информации о платеже.

Насколько я знаю, во всех случаях (создание платежа, уведомление о платеже, получение информации о платеже) используется поле NewPayment.PaymentMethodId. Это поле имеет тип string и константы "yoo_money" и "yandex_money" в коде библиотеки отсутствуют. Измените их в вашем коде, если вы их используете.

Обновление в объекте cancellation_details: если ЮKassa отменила платёж или платёж прошел с ошибкой, будем отдавать "party" : " yoo_kassa" (вместо "party" : "yandex_checkout").

Поле CancellationDetails.Party также имеет тип string. Литералов "yoo_kassa" и "yandex_checkout" в коде библиотеки нет.

Вывод: имеющийся пакет Yandex.Checkout.V3.1.0.5 совместим с API ЮКассы. Единственное изменение, которое можно внести в связи с ребрендингом, - это изменение дефолтного API URL.

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

rodion-m commented 3 years ago

@bzaar Да, видимо, вы во всем правы. Отмечу, что было очень предусмотрительно оставить возможность указания URL апи в конструкторе.

Единственное изменение, которое можно внести в связи с ребрендингом, - это изменение дефолтного API URL. Да, я, например, ранее не указывал url апи в конструкторе, поэтому такое изменение явно было бы полезным, иначе часть клиентов в какой-то момент рискуют перестать работать.

bzaar commented 3 years ago

константы "yoo_money" и "yandex_money" в коде библиотеки отсутствуют

Я плохо искал: "yoo_money" есть в коде. Переименовал.

bzaar commented 3 years ago

Только что проверил: при создании платежа с типом способа оплаты "yandex_money" API выдает ошибку:

Invalid payment_method_data.type. Specify one of the supported types.

При этом в документации все еще стоит "yandex_money":

image

https://yookassa.ru/developers/payment-methods/yoo-money

bzaar commented 3 years ago

Надеюсь, что это все изменения, связанные с ребрендингом. Опубликовал пакет версии 1.0.6.

bzaar commented 3 years ago

Нужно еще в README обновить ссылки.

bzaar commented 2 years ago

Ссылки обновил (и в английском README тоже).