PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Блокировка. CORS
noviy
Отправлено: 08 Ноября, 2018 - 16:12:02
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Нояб. 2018  


Помог: 0 раз(а)




Впервые сталкиваюсь с необходимостью редиректится на чужой домен. Кручу робокассу со списком услуг с кнопками оплаты. Для отправки решено использовать одну форму в которой есть дополнительные поля: имя, телефон, мэйл. В зависимости от услуги в форму подставляются цена и описание услуги(на которой кнопка нажата). Далее форма аяксом передается в php, добавляется логин и пароль, формируется подпись и ссылка вида -
PHP:
скопировать код в буфер обмена
  1. header("Location: https://auth.robokassa.ru/Merchant/Index.aspx?MrchLogin=$mrh_login&OutSum=$out_summ&InvId=$inv_id&IncCurrLabel=$in_curr&Desc=$inv_desc&SignatureValue=$crc&Shpa=$name&Culture=$culture&Encoding=$encoding&Shpb=$phone&Shpc=$email&IsTest=$IsTest");


Закономерно получаю ошибку Access to XMLHttpRequest at 'https://auth.robokassa.ru/Merchant/Index.aspx?...&IsTest=1' (redirected from 'https://mydomain.ru/checking_data_pay') from origin 'https://mydomain.ru' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.

Из нагугленного:
PHP:
скопировать код в буфер обмена
  1.  header('Access-Control-Allow-Origin: https://auth.robokassa.ru/');
  2.  header('Access-Control-Allow-Credentials: true');
  3.  if(request_is_options()){
  4.   header('Access-Control-Allow-Methods: POST');
  5.   header("Location: https://auth.robokassa.ru/Merchant/Index.aspx?...&IsTest=$IsTest");
  6.  }
и
- тоже не помогает.
Реально с этим что-то сделать?
(Добавление)
Чего-то ничего так и не придумалось(( Придется возвращать из обработчика контрольную сумму(подпись), вставлять в форму перед отправкой, и отправлять, как положено. Лишнее действие, но работает.

(Отредактировано автором: 08 Ноября, 2018 - 16:13:31)

 
 Top
Vladimir Kheifets
Отправлено: 08 Ноября, 2018 - 20:26:46
Post Id



Посетитель


Покинул форум
Сообщений всего: 292
Дата рег-ции: Март 2017  
Откуда: Германия, Бавария


Помог: 9 раз(а)




noviy пишет:
...- тоже не помогает.
Реально с этим что-то сделать?
(Добавление)
Чего-то ничего так и не придумалось(( Придется возвращать из обработчика контрольную сумму(подпись), вставлять в форму перед отправкой, и отправлять, как положено. Лишнее действие, но работает.


Добрый день!
Может быть и делать, как положено т.е. так, как работает. Нужен ли этот редирект?
Не понятно в чём проблема и чем Вас не устраивают методы доступа, предлагаемые разработчиками сервиса?

(Отредактировано автором: 08 Ноября, 2018 - 20:29:28)

 
 Top
noviy
Отправлено: 09 Ноября, 2018 - 05:36:14
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Нояб. 2018  


Помог: 0 раз(а)




 
 Top
miketomlin
Отправлено: 09 Ноября, 2018 - 15:53:01
Post Id


Гость


Покинул форум
Сообщений всего: 88
Дата рег-ции: Июль 2016  


Помог: 5 раз(а)




И Хде там AJAX? В ответ на AJAX-запрос никто редирект не делает.
 
 Top
Vladimir Kheifets
Отправлено: 09 Ноября, 2018 - 17:02:57
Post Id



Посетитель


Покинул форум
Сообщений всего: 292
Дата рег-ции: Март 2017  
Откуда: Германия, Бавария


Помог: 9 раз(а)




noviy пишет:

Добрый день!
Перед тем, как Вам вчера ответить, посмотрел здесь https://docs[dot]robokassa[dot]ru/
Например, попробуйте сделать так, как там написано:
Спойлер (Отобразить)
Кажется выглядит правдоподобно...
Между прочим, обычно доступ к платёжным система делают по HTTPS, а Вашей ссылке: Header("Location: http://auth.robokassa.ru...
Удачи!

(Отредактировано автором: 09 Ноября, 2018 - 17:04:28)

 
 Top
noviy
Отправлено: 28 Ноября, 2018 - 11:40:35
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Нояб. 2018  


Помог: 0 раз(а)




miketomlin пишет:
И Хде там AJAX? В ответ на AJAX-запрос никто редирект не делает.

AJAX-ом с клиента на сервер передаются данные формы - фио, услуга, цена, email )) А все остальное происходит на сервере, конечно!))) Идея была такая, проверить на сервере корректность данных пользователя и, если все в порядке, перекинуть его на робокассу.
(Добавление)
Vladimir Kheifets пишет:
Между прочим, обычно доступ к платёжным система делают по HTTPS, а Вашей ссылке: Header("Location: http://auth.robokassa.ru...
Удачи!

У них раньше тестовый сервер был на http, а боевой на https. Сейчас тестового сервера нет. Для теста добавляется параметр IsTest со значением 1.

(Отредактировано автором: 28 Ноября, 2018 - 11:50:47)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB