Drupal → Модуль Commerce Yandex.Money — приём денег с помощью Яндекc.Деньги
Описание
Модуль Commerce Yandex.Money добавляет в Drupal Commerce новый способ оплаты с помощью Яндекс.Деньги.
Модуль использует Яндекс.Деньги API и работает по схеме p2p (перевод с кошелька на кошелёк). Эта схема подходит для небольших магазинов и не требует заключения договора с яндексом.
Комиссия при переводе составляет 0.5%, но не менее 1 копейки. Комиссия взимается с владельца магазина, т.е. на кошелёк будет приходить на 0.5% меньше, чем указано в заказе (как это исправить).
Установка и настройки
Установка стандартная — распаковать в sites/all/modules, включить.
Дальше идём на страницу https://sp-money.yandex.ru/myservices/new.xml и регистрируем новое приложение:
Название вашего приложения — название магазина.
Адрес вашего сайта — URL магазина.
Redirect URI — URL магазина + commerce/yandex-money/authorization.
После регистрации выдадут Client ID.
Переходим на страницу способа оплаты Yandex.Money (admin/commerce/config/payment-methods/manage/commerce_payment_commerce_yandex_money) и открываем действие Enable payment method: Yandex.Money.
В поле Client ID прописываем выданный Client ID, а в Purse number номер кошелька, на который будут приходит деньги. Сохраняем.
Profit.
Демо.
Комментарии
Мужикъ!
А как ты создаешь проект на d.org без сандбокса и ревью?
Яндекс аккаунта нет, но у тебя анонимного юзера регает после оплаты?
принудительный сандобкс только для новичков
да, но это функция commerce
А при каких условиях принудительный сандбокс отключают?
я брался за переделку (для себя) commerce_webmoney, но пока зависло
ну после первого опубликованного проекта
то есть ты должень быть овнером сендбокса. если пишешь коммитты или co-owner то не проходит.
С другой стороный если уже пишешь коммиты то пропихнуть свой проект не проблема.
Это так, мысли в слух =]
xandeadx, не дал с привязанной карты оплатить :(
http://api.yandex.ru/money/doc/dg/concepts/protocol-rights.xml
Поняла! Всё равно круто, спасибо огромное!)
Можно сделать без использования API и пугающего экрана для покупателя.
Если интересно, могу рассказать как.
Ну, Вячеслав Сергеевич, сказали А, говорите Б ;)
В качестве потенциального импрувмента модуля: можно токен получать не каждый раз при покупке, а сохранять его для пользователя и когда он повторно придет раз в магазин (если придет), не показывать ему больше запрос прав.
у нас сейчас есть так называемые кнопки и формы:
https://money.yandex.ru/embed/quickpay/shop.xml и
https://money.yandex.ru/embed/quickpay/small.xml
в модуле можно использовать не сами формы, разумеется, а их параметры.
описание можно посмотреть тут http://yadi.sk/d/SMh5GIF17d_C
Вячеслав Сергеевич, ничего себе, а мы думали, Яндекс такое не разрешает :) здесь и с карты можно будет оплачивать, на сколько я понимаю
Платёж идёт также через p2p транзакцию, а для них платёж с карты пока не возможен, но в целом, для организации разовых платежей это гораздо удобнее, чем реализация API, как мне кажется.
API больше подходит для организации подписок или когда пользователь в одном и том же магазине совершает покупки по 10 раз на дню. Например внутриигровая валюта, предметы. Хотя как геймер я этого не одобряю =)
тогда я зря обрадовалась.
какой экран пугающий?) все привыкли, что нужно подтвердить перевод на странице яндекс.денег
сравним:
это через API http://yadi.sk/d/E4mEoOQT7i2m
это через правильно настроенные параметры формы http://yadi.sk/d/mOptj5aV7i1G
мы же не знаем на какую сумму будет второй и последующий заказ, а в запросе надо точно указать - сколько денег нужно и на какое время ими разрешено будет пользоваться
здесь проблема в том, что уведомлений о платежах через формы нет
конечно же есть и описано в документе, который я приложил:
2.5 Получение информации о поступлении платежа
Для получения информации о входящем платеже необходимо подключить и настроить http-уведомления. В рамках сервиса http-уведомлений вы сможете получать данные о сумме платежа и значения поля label, что поможет идентифицировать платёж.
ок. но тогда получается, что к одному кошельку можно привязать только один интернет магазин.
данный вывод сделан на основании того, что http-уведомления отсылаются на адрес 1 сервера?
да
можно сделать релей, который указать в качестве приёмщика хттп-уведомлений и он будет разбирать какое уведомление в какой магазин отправить, а разбирать он будет по параметру label. например первые 2 цифры параметра можно отдать под идентификатор магазина.
01ххххххх в магазин 1
02ххххххх в магазин 2
где ххххххх это номер заказа
кстати, сейчас в процессе платежа через платёжные формы у пользователя на нашей стороне можно запросить контактные данные. вот вопрос - насколько это актуально для магазинов? или в большинстве случаев контактные данные запрашиваются на сайте самого магазина и эта функциональность не нужна?
для Commerce не актуально
Понятно, спасибо.
а как Вам решение с привязкой нескольких магазинов к 1 кошельку через разбор label?
мне кажется это костыль) но если кому-нибудь будет нужна оплата именно через форму, а не api, то сделаю
а часто бывает нужда к 1 счёту несколько магазинов привязывать? в каких случаях?
кстати, чтобы запрос доступа по токену через API не выглядел таким страшным, необходимо использовать проверку подлинности сервиса http://api.yandex.ru/money/doc/dg/tasks/register-client.xml
однозначно
и на сколько он будет «нестрашным»?
это можно наверно прикрутить, что думаешь xandeadx?
кстати, вывесили документацию в клуб http://clubs.ya.ru/moneyapi/replies.xml?item_no=1624, чтобы всё по официальному :)
А для Ubercart не планируется модуль аналогичный?
нет
Жаль :(
Религиозная нетерпимость Убера? :)
не знаком с ним
В файле: commerce_yandex_money.info
не хватает строчки:
configure = admin/commerce/config/payment-methods/manage/commerce_payment_commerce_yandex_money
Нравится мне, когда на страце - модули - у каждого модуля если есть Настройки, то и есть соответствующая ссылка ...)))
Ну и заодно уж - hook_help()
спасибо, добавлю
Нужно еще иметь ввиду, что при смене доменного имени, а иногда почему-то при переезде на другой хостинг, нужно будет переподключать кошелек, иначе Яндекс при переходе сообщит об ошибке. Пустяк, конечно, но пугает не хило)
ну ключ же привязывается к конкретному домену. Вот с хостингом такое быть не должно, возможно какие-то настройки потеряли при переезде
При установке модуля Commerce Yandex.Money требуются дополнительные модули:Commerce и Commerce Payment. Не могу никак их найти для друпала 7. Может кто-нибудь поможет.
Поставь http://drupal.org/project/commerce_kickstart
Там всё есть.
Установить можно в несколько строчек: http://drush.ws/help/5#core-quick-drupal
Установить модуль commerce_kickstart денвер выводит ошибку, несовместимость с модулем rules(как я понял). В чем причина?
Вы, второй день с друпалом? commerce_kickstart - это не модуль - это профиль, т.е. это сам drupal + нужные модули. Разве не видно по "весу" - (7.x-2.2 tar.gz (16.32 MB) | zip (19.05 MB) 2013-Jan-26)?!
Второй месяц и сайт уже создан нужно только добавить разичные способы оплаты, в том числе и яндекс деньги. Видимо то что вы советуете не совсем подходит. Может в моем случае существует другой способ?
xandeadx, скажите, каким образом на самом последнем этапе оплаты происходит автоматическая отправка формы без кликания на кнопку "Pay via Yandex.Money" ? Есть потребность запилить аналогично для другой формы, но не могу понять как это происходит :(
jQuery('#button-id').click();хм... ну с жиквайри как бы все понятно... но я что-то не смог найти как именно это реализовано у вас в модуле... подобных конструкций там вроде нет
это функционал drupal commerce
вот я себя сейчас совсем тупым чувствую... есть платежный модуль Робокассы, у которого на последнем этапе приходится жать кнопку ручками, что не есть хорошо... в вашем модуле отправка формы происходит без нажатия... вот я и пытаюсь понять почему... все конструкции вроде почти одинаковые...
'offsite_autoredirect' => TRUE
оооо... благодарствую!
а как в последствии будет выглядеть платеж? будет ли показано "оплачено" на сайте или просто произойдет перевод?
кстати как у вас "я не спамер" реализовано? прошу прощения за туповатый вопрос
средствами simple antispam модуля.
но на первый вопрос видимо придется тестить.
добавь в необходимые модули пэймент юзер интерфейс.
Этому приложению отказано в доступе.
Свяжитесь с его разработчиком и укажите сведения об ошибке (invalid_request).
Оставить комментарий