Для того чтобы автоматически выставить счет за определенный товар на определенную сумму можно использовать механизм создания ссылок-счетов с использованием API Onpay. А можно просто вручную сделать ссылку через интерфейс Кабинета продавца https://secure.onpay.ru/payment_links - для этого не потребуется никаких специальных знаний.
Для получения ссылки (счета) необходимо отправить запрос (GET или POST) на адрес https://secure.onpay.ru/pay/make_payment_link со следующими параметрами:
Параметр | формат | Описание |
---|---|---|
pay_amount | число, разделитель - точка, будет округлено до 2 знаков после разделителя | сумма счета |
pay_for | строка | назначение платежа |
one_way | строка | форма оплаты одним способом (тикер валюты) (не обязательно) |
ticker | строка | 3-символьное обозначение валюты оплаты(в верхнем регистре) |
user_login | строка | логин магазина в системе Onpay |
user_email | строка | адрес электронной почты плательщика (не обязательно) |
price_final | строка, «1» или «0»(по умолчанию «0») | если «1», комиссия платежной системы будет взыматься с продавца |
pay_type | целое число, 1 или 2 | конвертировать все платежи в выбранную валюту (1 - да, 2 - нет) |
notify_by_api | строка, «1» или «0» | проверять возможность оплаты через API мерчанта (Если «1» - при оплате мерчант получит запрос через указанный им в зеленом кабинете URL API IN. Если на запрос не будет ответа или ответ будет негативным, оплата не пройдет) |
md5 | строка | строка, полученная вычислением MD5 от конкатенации pay_amount, pay_for, ticker, user_login, price_final, pay_type, notify_by_api, api_in_key, разделенных двоеточием (:) перед взятием мд5 надо привести к верхнему регистру |
Все параметры, содержащие символы не относящиеся к ASCII должны быть переданы в кодировке utf8.
ВНИМАНИЕ! НЕ применяйте функцию base64, CGI и CGI (UTF8), не пишите транслитом, не придумывайте отсебятину, делайте как написано.
В случае успеха статус ответа будет 200 и в теле ответа будет сгенерированная ссылка.
В случае неудачи статус ответа будет 400 и в теле ответа будет объяснение причины.
https://secure.onpay.ru/pay/make_payment_link?pay_amount=100&pay_for=Order%20342&user_email=user@pochta.ru&ticker=RUR&user_login=onpay&price_final=true&md5=cf653b4c4a7861b2224bd31eb3e3f291&pay_type=1¬ify_by_api=true \\
POST https://secure.onpay.ru/pay/make_payment_link { "price_final"=>"true", "user_login"=>"onpay", "notify_by_api"=>"true", "pay_type"=>"1", "pay_amount"=>"100", "ticker"=>"RUR", "md5"=>"cf653b4c4a7861b2224bd31eb3e3f291", "pay_for"=>"Order 342", "user_email"=>"user@pochta.ru" }