Инструменты пользователя

Инструменты сайта


setup

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Следущая версия Both sides next revision
setup [2011/06/26 09:19]
admin создано
setup [2011/06/26 09:21]
admin
Строка 1: Строка 1:
 ==== 1. Первые шаги ==== ==== 1. Первые шаги ====
 +
 +Привет! ​
 +Вы немного знаете PHP и хотите сами подключить свой сайт к приему платежей? ​
 +Для начала прочтите пример здесь для сайта DEMO.ru ​
 +
 +Вы скопировали себе код из примера,​ а автоматического зачисления не происходит?​ Хм. 
 +Отключите в кабинете API (снимите отметку с "​Настройки магазина"​ - "​Уведомлять по API"​) ​
 +Попробуйте сделать платеж на 5 WMR или Яндексов,​ а еще лучше - воспользуйтесь функцией "​Тестовый платеж"​ в кабинете. ​
 +Не проходит?​ Хм. 
 +
 ==== 2. Платежные ссылки ==== ==== 2. Платежные ссылки ====
 +
 +Для начала проверьте платежную ссылку (документация),​ она точно ведет на ваш сайт, а не demo сайт? ​
 +Она должна выглядеть так http://​secure.onpay.ru/​pay/​mysait где mysait это ваш логин в системе Onpay. ​
 +Как? Вы еще не зарегистрировались?​ Тогда вам сюда. ​
 +И не забудьте попросить модератора,​ чтобы он активировал ваш аккаунт. Как это узнать? ​
 +Очень просто — если ваш аккаунт еще не активирован,​ то при входе в кабинет вас преследует сообщение "Вы не вошли в систему (проверьте имя и пароль)"​. ​
 +
 ==== 3. Почтовые уведомления о платежах ==== ==== 3. Почтовые уведомления о платежах ====
 +
 +Ура платеж пришел к вам в кабинет! ​
 +Но на е-майл вам ничего не пришло :( - проверьте,​ а какой email вы указали в поле "​Личные настройки"​ - "Email для уведомлений"​. На этот адрес, вам будут приходить уведомления,​ о каждом платеже полученном вами. ​
 +В уведомлениях указывается сколько и за что вам заплатили. ​
 +
 ==== 4. Автоматизация приема платежей - API ==== ==== 4. Автоматизация приема платежей - API ====
 +
 +Теперь можно попробовать провести платеж в автоматическом режиме. ​
 +Для включения API, зайдите в меню "​Настройки магазина"​. Поставьте отметку в поле "​Уведомлять по API"​. ​
 +Введите в "URL API" - адрес вашего скрипта отвечающего за обработку полученных платежей. Например,​ http://​demo.ru/​api.php ​
 +Укажите "​Пароль для API IN" - это секретный пароль,​ учавствующий в формировании подписи в каждом ​
 +платеже (чтобы вы были уверенны,​ что платеж пришел от нас). ​
 +
 ==== 5. Простые уведомления о приеме ==== ==== 5. Простые уведомления о приеме ====
 +
 +Платеж не проходит — пишет «Получатель платежа не дал разрешение на проведение платежа»! ​
 +Не пугайтесь,​ получатель это вы. 
 +Для начала отключим опцию "​Проверять MD5 на ссылках"​ в меню "​Настройки магазина"​. ​
 +И попробуем протестировать еще раз. Платеж все равно не проходит? ​
 +
 ==== 6. Протокол взаимодействия между серверами - API ==== ==== 6. Протокол взаимодействия между серверами - API ====
-==== 7. Если платеж не доходит до скрипта ==== 
-==== 8. Безопасность приема - MD5 подписи ==== 
  
 +В случае возникновения проблем с доставкой платежа на ваш сервер,​ можно посмотреть подробный протокол взаимодействия,​ который пишется для каждого платежа. ​
 +Посмотреть логи общения между нашим и вашим сервером,​ можно в меню "​Настройки магазина"​ - "​Логи"​. Что мы там должны увидеть? ​
 +Система 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 &note= &​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. Если платеж не доходит до скрипта ====
 +
 +Но в кабинете пишет "​Критическая ошибка"​ или "​Временная ошибка"​! Что делать?​! ​
 +Это означит ​ что второй запрос - «pay» не проходит,​ то есть ваш сайт не подтвердил,​ что его уведомили о платеже, ​
 +или вообще ничего не ответил. Чаще всего, это бывает связанно с проблемами хостинга (даже на хороших хостингах,​ иногда бывают проблемы). ​
 +Чтобы точно понять,​ что происходит - снова смотрим логи в меню "​Настройки магазина"​ - "​Логи"​. ​
 +
 +Ух ты работает! ​
 +Теперь уделим внимание проверке безопасности. ​
 +
 +==== 8. Безопасность приема - MD5 подписи ====
  
 +Теперь можно и проверку MD 5 включить - "​Проверять MD5 на ссылках"​ в меню "​Настройки магазина"​. ​
 +Это нужно для того, чтобы быть уверенным в том, что уведомление о поступлении платежа пришло именно от нашего сервера,​ а не от злоумышленника,​ узнавшего где установлен ваш API скрипт. ​
 +Упс перестало работать после включения проверки... ​
 +Смотрим документацию,​ проверяем,​ что и в каком порядке входит в строку подписи MD5. 
 +Ага, заработало. ​
 +И опять временная ошибка!!! ​
 +Да, подпись MD5 в запросе «pay» формируется не так как в запросе «check»! Убедитесь,​ что у вас именно так, как описанно в инструкции. ​
 +Ну вот вроде и все, не всякая птица долетит до середины Днепра... ​
  
 +Да нет у меня времени с этим ковыряться! ​
 +Тогда вам сюда - http://​onpay.ru/​developer ​
setup.txt · Последние изменения: 2014/10/17 07:09 — admin