Здесь показаны различия между двумя версиями данной страницы.
Both sides previous revision Предыдущая версия Следущая версия | Предыдущая версия | ||
setup [2014/09/26 07:18] admin [2. Платежные ссылки] |
setup [2014/10/17 07:09] (текущий) admin |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | ====== Настройка ====== | + | Данная страница перемещена. |
- | + | Пожалуйста, пройдите к содержанию Вики (http://wiki.onpay.ru/doku.php) и выберите нужный пункт. | |
- | ==== 1. Первые шаги ==== | + | |
- | Привет! \\ | + | |
- | Вы немного знаете PHP и хотите сами подключить свой сайт к приему платежей? \\ | + | |
- | Для начала прочтите пример здесь для сайта DEMO.ru \\ | + | |
- | \\ | + | |
- | Вы скопировали себе код из примера, а автоматического зачисления не происходит? Хм. \\ | + | |
- | Отключите в [[http://wiki.onpay.ru/doku.php?id=cabinet|Личном Кабинете]] функцию API (снимите отметку с **"Настройки магазина" - "Уведомлять по API"**)\\ | + | |
- | Попробуйте сделать платеж на 5 WMR или Яндексов, а еще лучше - воспользуйтесь функцией **"Тестовый платеж"** в [[http://wiki.onpay.ru/doku.php?id=cabinet|Личном Кабинете]].\\ | + | |
- | Не проходит? Хм. \\ | + | |
- | + | ||
- | ==== 2. Платежные ссылки ==== | + | |
- | Для начала проверьте платежную ссылку (документация), она точно ведет на Ваш сайт, а не demo сайт? \\ | + | |
- | Она должна выглядеть так http://secure.onpay.ru/pay/mysait где mysait - это ваш логин в Сервисе Onpay. \\ | + | |
- | Как? Вы еще не зарегистрировались? Тогда Вам сюда. \\ | + | |
- | И не забудьте попросить модератора, чтобы он активировал Ваш аккаунт. Как узнать, нужно ли это? \\ | + | |
- | Очень просто — если Ваш аккаунт еще не активирован, то при входе в [[http://wiki.onpay.ru/doku.php?id=cabinet|Личном Кабинете]] Вас преследует сообщение **"Вы не вошли в систему (проверьте имя и пароль)"**. \\ | + | |
- | + | ||
- | ==== 3. Почтовые уведомления о платежах ==== | + | |
- | Ура платеж пришел к Вам в [[http://wiki.onpay.ru/doku.php?id=cabinet|Личный Кабинет]]! \\ | + | |
- | Но на e-mail Вам ничего не пришло :( - проверьте, а какой email Вы указали в поле "Личные настройки" - "Email для уведомлений". На этот адрес, Вам будут приходить уведомления, о каждом платеже полученном Вами. \\ | + | |
- | В уведомлениях указывается сколько и за что Вам заплатили. \\ | + | |
- | + | ||
- | ==== 4. Автоматизация приема платежей - API ==== | + | |
- | Теперь можно попробовать провести платеж в автоматическом режиме. \\ | + | |
- | Для включения API, зайдите в меню** "Настройки магазина"**. Поставьте отметку в поле **"Уведомлять по API".** \\ | + | |
- | Введите в **"URL API"** - адрес Вашего скрипта отвечающего за обработку полученных платежей. Например, http://demo.ru/api.php \\ | + | |
- | Укажите **"Пароль для API IN"** - это секретный пароль, учавствующий в формировании подписи в каждом платеже (чтобы Вы были уверенны, что платеж пришел через Onpay). \\ | + | |
- | + | ||
- | ==== 5. Простые уведомления о приеме ==== | + | |
- | Платеж не проходит — пишет «Получатель платежа не дал разрешение на проведение платежа»! \\ | + | |
- | Не пугайтесь, получатель это Вы. \\ | + | |
- | Для начала отключим опцию **"Проверять MD5 на ссылках"** в меню **"Настройки магазина"**. \\ | + | |
- | И попробуем протестировать еще раз. Платеж все равно не проходит? \\ | + | |
- | + | ||
- | ==== 6. Протокол взаимодействия между серверами - API ==== | + | |
- | В случае возникновения проблем с доставкой платежа на Ваш сервер, можно посмотреть подробный протокол взаимодействия, который пишется для каждого платежа. \\ | + | |
- | Посмотреть логи общения между нашим и Вашим сервером, можно в меню **"Настройки магазина" - "Логи".** Что мы там должны увидеть? \\ | + | |
- | Сервис Onpay делает два запроса к Вашему скрипту - **check** (проверяем, разрешаете ли Вы прием платежа с указанными параметрами, например проверяется цена и номер заказа) и **pay** (когда платеж уже зачислен на Ваш счет). \\ | + | |
- | \\ | + | |
- | Первый запрос **«check»** - вот такой: \\ | + | |
- | To merchant:\\ | + | |
- | String for MD5 to Merchant: "check;99;70.0;RUR;MERCHANT_KEY_HERE" | + | |
- | POST http://demo.ru:80/api.php?pay_for=99 &order_currency=RUR &order_amount=70.0 &type=check &amount=70.0 &md5=A7AA6672VBDE2AB748F96001873383A2 | + | |
- | HTTP_code:200 | + | |
- | + | ||
- | From merchant: \\ | + | |
- | <?xml version="1.0" encoding="UTF-8"?> | + | |
- | <result> | + | |
- | <code>0</code> | + | |
- | <pay_for>99</pay_for> | + | |
- | <comment>OK</comment> | + | |
- | <md5>6B1B4A02E321E40A2F6562E9EF0E4FF4</md5> | + | |
- | </result> | + | |
- | + | ||
- | String for MD5 from Merchant: "check;99;70.0;RUR;0;MERCHANT_KEY_HERE"\\ | + | |
- | Expected MD5 from Merchant: 6B1B4A02E321E40A2F6562E9EF0E4FF4 \\ | + | |
- | + | ||
- | И ответ Вашего скрипта:\\ | + | |
- | To merchant: \\ | + | |
- | String for MD5 to Merchant: "pay;716000201;66336;480.0;RUR;MERCHANT_KEY_HERE" | + | |
- | GET http://demo.ru:80/api.php?pay_for=99 &user_email= &paymentDateTime=2009-10-15T18%3a20%3a12Z &order_currency=RUR &order_amount=70.0 &balance_currency=OSP &type=pay &balance_amount=70.0 &amount=70.0 &onpay_id=66335 ¬e= &md5=AZ93894E03B2B3EC8C6A35409ABBB3DC &exchange_rate=1.0 | + | |
- | HTTP_code:200 | + | |
- | + | ||
- | From merchant: \\ | + | |
- | <?xml version="1.0" encoding="UTF-8"?> | + | |
- | <result> | + | |
- | <code>0</code> | + | |
- | <comment>OK</comment> | + | |
- | <onpay_id>66335</onpay_id> | + | |
- | <pay_for>99</pay_for> | + | |
- | <order_id>1402</order_id> | + | |
- | <md5>3342D8Z69E2E6E8927579A01C4933EDA</md5> | + | |
- | </result> | + | |
- | + | ||
- | String for MD5 from Merchant: "pay;99;66335;1402;70.0;RUR;0;MERCHANT_KEY_HERE" \\ | + | |
- | Expected MD5 from Merchant: 3342D8Z69E2E6E8927579A01C4933EDA \\ | + | |
- | \\ | + | |
- | Все вроде правильно, но не проходит? \\ | + | |
- | Проверьте форматы данных - обратите внимание на разделитель в суммах платежей - это всегда точка, например "70.5". \\ | + | |
- | Ура, проскочило? \\ | + | |
- | + | ||
- | ==== 7. Если платеж не доходит до скрипта ==== | + | |
- | Но в [[http://wiki.onpay.ru/doku.php?id=cabinet|Личном Кабинете]] система пишет "Критическая ошибка" или "Временная ошибка"! Что делать?! \\ | + | |
- | Это означит что второй запрос - **«pay»** не проходит, то есть Ваш сайт не подтвердил, что его уведомили о платеже, или вообще ничего не ответил. Чаще всего, это бывает связано с проблемами хостинга (даже на хороших хостингах, иногда бывают проблемы). \\ | + | |
- | Чтобы точно понять, что происходит - снова смотрим логи в меню "Настройки магазина" - "Логи". \\ | + | |
- | Ух ты работает! \\ | + | |
- | Теперь уделим внимание проверке безопасности. \\ | + | |
- | + | ||
- | ==== 8. Безопасность приема - MD5 подписи ==== | + | |
- | Теперь можно и проверку MD 5 включить - "Проверять MD5 на ссылках" в меню "Настройки магазина". \\ | + | |
- | Это нужно для того, чтобы быть уверенным в том, что уведомление о поступлении платежа пришло именно от нашего сервера, а не от злоумышленника, узнавшего где установлен ваш API скрипт. \\ | + | |
- | Упс перестало работать после включения проверки... \\ | + | |
- | Смотрим документацию, проверяем, что и в каком порядке входит в строку подписи MD5. \\ | + | |
- | Ага, заработало. \\ | + | |
- | И опять временная ошибка!!! \\ | + | |
- | Да, подпись MD5 в запросе **«pay»** формируется не так как в запросе **«check»**! Убедитесь, что у Вас код выглядит именно так, как описано в инструкции. \\ | + | |
- | Ну вот вроде и все, не всякая птица долетит до середины Днепра... \\ | + | |
- | \\ | + | |
- | Да нет у меня времени с этим ковыряться! \\ | + | |
- | Тогда Вам сюда - http://onpay.ru/developer \\ | + |