Здесь показаны различия между двумя версиями данной страницы.
Both sides previous revision Предыдущая версия Следущая версия | Предыдущая версия Следущая версия Both sides next revision | ||
setup [2011/06/26 09:21] admin |
setup [2011/09/02 09:56] admin |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
==== 1. Первые шаги ==== | ==== 1. Первые шаги ==== | ||
- | + | Привет! \\ | |
- | Привет! | + | Вы немного знаете PHP и хотите сами подключить свой сайт к приему платежей? \\ |
- | Вы немного знаете PHP и хотите сами подключить свой сайт к приему платежей? | + | Для начала прочтите пример здесь для сайта DEMO.ru \\ |
- | Для начала прочтите пример здесь для сайта DEMO.ru | + | \\ |
- | + | Вы скопировали себе код из примера, а автоматического зачисления не происходит? Хм. \\ | |
- | Вы скопировали себе код из примера, а автоматического зачисления не происходит? Хм. | + | Отключите в Личном Кабинете функцию API (снимите отметку с **"Настройки магазина" - "Уведомлять по API"**)\\ |
- | Отключите в кабинете API (снимите отметку с "Настройки магазина" - "Уведомлять по API") | + | Попробуйте сделать платеж на 5 WMR или Яндексов, а еще лучше - воспользуйтесь функцией **"Тестовый платеж"** в Личном Кабинете.\\ |
- | Попробуйте сделать платеж на 5 WMR или Яндексов, а еще лучше - воспользуйтесь функцией "Тестовый платеж" в кабинете. | + | Не проходит? Хм. \\ |
- | Не проходит? Хм. | + | |
==== 2. Платежные ссылки ==== | ==== 2. Платежные ссылки ==== | ||
- | + | Для начала проверьте платежную ссылку (документация), она точно ведет на Ваш сайт, а не demo сайт? \\ | |
- | Для начала проверьте платежную ссылку (документация), она точно ведет на ваш сайт, а не demo сайт? | + | Она должна выглядеть так http://secure.onpay.ru/pay/mysait где mysait это ваш логин в Сервисе Onpay. \\ |
- | Она должна выглядеть так http://secure.onpay.ru/pay/mysait где mysait это ваш логин в системе Onpay. | + | Как? Вы еще не зарегистрировались? Тогда Вам сюда. \\ |
- | Как? Вы еще не зарегистрировались? Тогда вам сюда. | + | И не забудьте попросить модератора, чтобы он активировал Ваш аккаунт. Как узнать, нужно ли это? \\ |
- | И не забудьте попросить модератора, чтобы он активировал ваш аккаунт. Как это узнать? | + | Очень просто — если Ваш аккаунт еще не активирован, то при входе в Личном Кабинете Вас преследует сообщение **"Вы не вошли в систему (проверьте имя и пароль)"**. \\ |
- | Очень просто — если ваш аккаунт еще не активирован, то при входе в кабинет вас преследует сообщение "Вы не вошли в систему (проверьте имя и пароль)". | + | |
==== 3. Почтовые уведомления о платежах ==== | ==== 3. Почтовые уведомления о платежах ==== | ||
- | + | Ура платеж пришел к Вам в Личный Кабинет! \\ | |
- | Ура платеж пришел к вам в кабинет! | + | Но на e-mail Вам ничего не пришло :( - проверьте, а какой email Вы указали в поле "Личные настройки" - "Email для уведомлений". На этот адрес, Вам будут приходить уведомления, о каждом платеже полученном Вами. \\ |
- | Но на е-майл вам ничего не пришло :( - проверьте, а какой email вы указали в поле "Личные настройки" - "Email для уведомлений". На этот адрес, вам будут приходить уведомления, о каждом платеже полученном вами. | + | В уведомлениях указывается сколько и за что Вам заплатили. \\ |
- | В уведомлениях указывается сколько и за что вам заплатили. | + | |
==== 4. Автоматизация приема платежей - API ==== | ==== 4. Автоматизация приема платежей - API ==== | ||
- | + | Теперь можно попробовать провести платеж в автоматическом режиме. \\ | |
- | Теперь можно попробовать провести платеж в автоматическом режиме. | + | Для включения API, зайдите в меню** "Настройки магазина"**. Поставьте отметку в поле **"Уведомлять по API".** \\ |
- | Для включения API, зайдите в меню "Настройки магазина". Поставьте отметку в поле "Уведомлять по API". | + | Введите в **"URL API"** - адрес Вашего скрипта отвечающего за обработку полученных платежей. Например, http://demo.ru/api.php \\ |
- | Введите в "URL API" - адрес вашего скрипта отвечающего за обработку полученных платежей. Например, http://demo.ru/api.php | + | Укажите **"Пароль для API IN"** - это секретный пароль, учавствующий в формировании подписи в каждом платеже (чтобы Вы были уверенны, что платеж пришел через Onpay). \\ |
- | Укажите "Пароль для API IN" - это секретный пароль, учавствующий в формировании подписи в каждом | + | |
- | платеже (чтобы вы были уверенны, что платеж пришел от нас). | + | |
==== 5. Простые уведомления о приеме ==== | ==== 5. Простые уведомления о приеме ==== | ||
- | + | Платеж не проходит — пишет «Получатель платежа не дал разрешение на проведение платежа»! \\ | |
- | Платеж не проходит — пишет «Получатель платежа не дал разрешение на проведение платежа»! | + | Не пугайтесь, получатель это Вы. \\ |
- | Не пугайтесь, получатель это вы. | + | Для начала отключим опцию **"Проверять MD5 на ссылках"** в меню **"Настройки магазина"**. \\ |
- | Для начала отключим опцию "Проверять MD5 на ссылках" в меню "Настройки магазина". | + | И попробуем протестировать еще раз. Платеж все равно не проходит? \\ |
- | И попробуем протестировать еще раз. Платеж все равно не проходит? | + | |
==== 6. Протокол взаимодействия между серверами - API ==== | ==== 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 \\ |
- | Система OnPay делает два запроса к вашему скрипту - check (проверяем, разрешаете-ли вы прием платежа с указанными параметрами, например проверяется цена и номер заказа) и pay (когда платеж уже зачислен на ваш счет). | + | |
- | Первый запрос «check» - вот такой: | + | И ответ Вашего скрипта:\\ |
- | To merchant: | + | To merchant: \\ |
- | String for MD5 to Merchant: "check;99;70.0;RUR;MERCHANT_KEY_HERE" | + | String for MD5 to Merchant: "pay;716000201;66336;480.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 | + | 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 | + | 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 | + | |
+ | 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" \\ |
- | To merchant: | + | Expected MD5 from Merchant: 3342D8Z69E2E6E8927579A01C4933EDA \\ |
- | 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 | + | Проверьте форматы данных - обратите внимание на разделитель в суммах платежей - это всегда точка, например "70.5". \\ |
- | 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. Если платеж не доходит до скрипта ==== | ==== 7. Если платеж не доходит до скрипта ==== | ||
- | + | Но в Личном Кабинете пишет "Критическая ошибка" или "Временная ошибка"! Что делать?! \\ | |
- | Но в кабинете пишет "Критическая ошибка" или "Временная ошибка"! Что делать?! | + | Это означит что второй запрос - «pay» не проходит, то есть ваш сайт не подтвердил, что его уведомили о платеже, или вообще ничего не ответил. Чаще всего, это бывает связанно с проблемами хостинга (даже на хороших хостингах, иногда бывают проблемы). \\ |
- | Это означит что второй запрос - «pay» не проходит, то есть ваш сайт не подтвердил, что его уведомили о платеже, | + | Чтобы точно понять, что происходит - снова смотрим логи в меню "Настройки магазина" - "Логи". \\ |
- | или вообще ничего не ответил. Чаще всего, это бывает связанно с проблемами хостинга (даже на хороших хостингах, иногда бывают проблемы). | + | Ух ты работает! \\ |
- | Чтобы точно понять, что происходит - снова смотрим логи в меню "Настройки магазина" - "Логи". | + | Теперь уделим внимание проверке безопасности. \\ |
- | + | ||
- | Ух ты работает! | + | |
- | Теперь уделим внимание проверке безопасности. | + | |
==== 8. Безопасность приема - MD5 подписи ==== | ==== 8. Безопасность приема - MD5 подписи ==== | ||
- | + | Теперь можно и проверку MD 5 включить - "Проверять MD5 на ссылках" в меню "Настройки магазина". \\ | |
- | Теперь можно и проверку MD 5 включить - "Проверять MD5 на ссылках" в меню "Настройки магазина". | + | Это нужно для того, чтобы быть уверенным в том, что уведомление о поступлении платежа пришло именно от нашего сервера, а не от злоумышленника, узнавшего где установлен ваш API скрипт. \\ |
- | Это нужно для того, чтобы быть уверенным в том, что уведомление о поступлении платежа пришло именно от нашего сервера, а не от злоумышленника, узнавшего где установлен ваш API скрипт. | + | Упс перестало работать после включения проверки... \\ |
- | Упс перестало работать после включения проверки... | + | Смотрим документацию, проверяем, что и в каком порядке входит в строку подписи MD5. \\ |
- | Смотрим документацию, проверяем, что и в каком порядке входит в строку подписи MD5. | + | Ага, заработало. \\ |
- | Ага, заработало. | + | И опять временная ошибка!!! \\ |
- | И опять временная ошибка!!! | + | Да, подпись MD5 в запросе «pay» формируется не так как в запросе «check»! Убедитесь, что у вас именно так, как описанно в инструкции. \\ |
- | Да, подпись MD5 в запросе «pay» формируется не так как в запросе «check»! Убедитесь, что у вас именно так, как описанно в инструкции. | + | Ну вот вроде и все, не всякая птица долетит до середины Днепра... \\ |
- | Ну вот вроде и все, не всякая птица долетит до середины Днепра... | + | \\ |
- | + | Да нет у меня времени с этим ковыряться! \\ | |
- | Да нет у меня времени с этим ковыряться! | + | Тогда Вам сюда - http://onpay.ru/developer \\ |
- | Тогда вам сюда - http://onpay.ru/developer | + |