Итак, озадачился я прикручиванием Яндекс-денег для приема оплаты за оптимизатор.
Приведу основные ссылки:
1) - примеры на разных языках
2) - документация
3) - библиотека на PHP
Поясню для собирающих грабли за мной. Суть проблемы в том, что по совершенно непонятной мне причине ЯД не отдает все параметры платежа в уведомлении, а только внутренний номер (я сначала принял его за назначение платежа и сильно обломался), сумму, отправителя и еще несколько малозначащих параметров. Соответственно, для того, чтобы узнать назначение платежа и емейл, что я хотел при оплате оптимизатора (нужен был номер базы, указываемый в назначении), необходимо в ЯД его запросить. И тут начинается танец с бубном. Суть в том, что сначала необходимо зарегистрировать приложение тут, а потом вызвать приложение с куском кода на регистрацию. В PHP-либе это кусок, где $scope с перечислением прав доступа. Приложение закидывает запустившего в ЯД и поясняет, на что оно хочет права. Там еще маленький баг, что подтвержденные приложения не видны на той странице, где должны быть, но нормально видны в общих настройках. После подтверждения прав, кусок кода с авторизацией необходимо выкинуть, записав полученный токен авторизации (километровое число, видное полностью только в исходнике страницы из примера). Выкинуть надо, поскольку с каждой авторизацией токен будет меняться, а старый аннулироваться. Используя токен и new YandexMoneyNew(CLIENT_ID), нормально создаете еще один объект, которым можно доставать детали платежа
Код:
$resp = $ym->operationDetail($token, $requestId);
детали (емейл, назначение и пр.) приезжают строкой через ";", т.е. придется их потом эксплодить. $requestId отдает само уведомление, как я писал выше. Пишу сумбурно, поскольку порядочно вынес себе мозг, танцуя с бубном на PHP, который я почти не знаю.
В итоге. Приходит платеж, ЯД выдает уведомление на адрес http или https, который указываете в настройках. У меня для простоты, этот адрес совпадает с redirect_uri приложения. Соответственно, приложение получает сумму платежа и внутренний Id, по которому, с помощью токена запрашивает номер базы и емейл. Ну, остальное уже детали, которые я раскрывать не буду в целях безопасности :) Если кому надо - спрашивайте.
Здравствуйте. Понадобилось написать мобильное приложение на delphi и прикрутить Яндекс.деньги. Очень стыдно, но застряла на самом начале - регистрация приложения. Нужно ли в моём случае что-то писать в redirect-uri? И что, если нужно? Не понимаю(((
Peppilotta, для начала нужно определиться, что приложение будет делать. Если надо просто формочку для оплаты показать - это одно. Я выше писал об обратной связи. Т.е. Яндекс, после того, как деньги поступают ему, сообщает моему серверу об этом, перечисляя параметры. Вам это не нужно. К сожалению, я далек пока от разработки мобильных приложений, но, если речь идет о том, чтобы купить только ваше приложение, то однозначно бы не связывался с встраиванием внутрь Яндекса. Лишние права вызывают лишние подозрения. Другое дело, если вы пишете нечто для контроля кошелька или регулярных переводов.
Нужно реализовать покупку в приложении, то есть перечисление стандартной суммы на кошелек с уведомлением на e-mail, в котором содержится e-mail клиента. Наверное, и правда лучше сделать как-то полегче. Спасибо за ответ!