xandeadx.ru Блог музицирующего веб-девелопера

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.

Демо.

Написанное актуально для Commerce Yandex.Money 7.x-1.x-dev
Похожие записи

Комментарии RSS

Мужикъ!

А как ты создаешь проект на d.org без сандбокса и ревью?
Яндекс аккаунта нет, но у тебя анонимного юзера регает после оплаты?

А как ты создаешь проект на 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 раз на дню. Например внутриигровая валюта, предметы. Хотя как геймер я этого не одобряю =)

Платёж идёт также через p2p транзакцию, а для них платёж с карты пока не возможен

тогда я зря обрадовалась.

и пугающего экрана для покупателя.

какой экран пугающий?) все привыкли, что нужно подтвердить перевод на странице яндекс.денег

сравним:
это через API http://yadi.sk/d/E4mEoOQT7i2m
это через правильно настроенные параметры формы http://yadi.sk/d/mOptj5aV7i1G

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

мы же не знаем на какую сумму будет второй и последующий заказ, а в запросе надо точно указать - сколько денег нужно и на какое время ими разрешено будет пользоваться

у нас сейчас есть так называемые кнопки и формы:
https://money.yandex.ru/embed/quickpay/shop.xml и
https://money.yandex.ru/embed/quickpay/small.xml

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

здесь проблема в том, что уведомлений о платежах через формы нет

здесь проблема в том, что уведомлений о платежах через формы нет

конечно же есть и описано в документе, который я приложил:

2.5 Получение информации о поступлении платежа
Для получения информации о входящем платеже необходимо подключить и настроить http-уведомления. В рамках сервиса http-уведомлений вы сможете получать данные о сумме платежа и значения поля label, что поможет идентифицировать платёж.

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

данный вывод сделан на основании того, что http-уведомления отсылаются на адрес 1 сервера?

да

можно сделать релей, который указать в качестве приёмщика хттп-уведомлений и он будет разбирать какое уведомление в какой магазин отправить, а разбирать он будет по параметру label. например первые 2 цифры параметра можно отдать под идентификатор магазина.
01ххххххх в магазин 1
02ххххххх в магазин 2
где ххххххх это номер заказа

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

для Commerce не актуально

для Commerce не актуально

Понятно, спасибо.

а как Вам решение с привязкой нескольких магазинов к 1 кошельку через разбор label?

мне кажется это костыль) но если кому-нибудь будет нужна оплата именно через форму, а не api, то сделаю

а часто бывает нужда к 1 счёту несколько магазинов привязывать? в каких случаях?
кстати, чтобы запрос доступа по токену через API не выглядел таким страшным, необходимо использовать проверку подлинности сервиса http://api.yandex.ru/money/doc/dg/tasks/register-client.xml

мне кажется это костыль)

однозначно

чтобы запрос доступа по токену через 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

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

оооо... благодарствую!

а как в последствии будет выглядеть платеж? будет ли показано "оплачено" на сайте или просто произойдет перевод?

кстати как у вас "я не спамер" реализовано? прошу прощения за туповатый вопрос

средствами simple antispam модуля.

но на первый вопрос видимо придется тестить.

добавь в необходимые модули пэймент юзер интерфейс.

Этому приложению отказано в доступе.
Свяжитесь с его разработчиком и укажите сведения об ошибке (invalid_request).

Оставить комментарий

Содержимое этого поля является приватным и не будет отображаться публично. Если у вас есть аккаунт в Gravatar, привязанный к этому e-mail адресу, то он будет использован для отображения аватара.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступные HTML теги: <a> <i> <b> <strong> <code> <ul> <ol> <li> <blockquote> <em> <s>
  • Строки и параграфы переносятся автоматически.
  • Подсветка кода осуществляется с помощью тегов: <code>, <css>, <html>, <ini>, <javascript>, <sql>, <php>. Поддерживаемые стили выделения кода: <foo>, [foo].

Подробнее о форматировании