Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Как получить данные от LiqPay на PHP
Форумы портала PHP.SU » » HTTP и PHP » Как получить данные от LiqPay на PHP

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

1. akman - 22 Февраля, 2015 - 11:35:57 - перейти к сообщению
Не могу разобраться как получить ответ от LiqPay после оплаты в магазине.
Что сделал:
1.Зарегистрировал магазин на LiqPay.com, изменил адрес страницы callback на http://мой_сайт/test/callback.php (в callback.php прописал просто print_r($_POST))
2. Сформировал запрос оплаты в магазине и LiqPay его принял
Код:
PHP:
скопировать код в буфер обмена
  1.  
  2. $private_key = "приват_кей _из_кабинета_liqpay";
  3. $public_key = "паблик_кей _из_кабинета_liqpay";
  4. $json_string = json_encode(
  5. "version" => "3",
  6. "public_key" => $public_key,
  7. "amount" => "1",
  8. "currency" => "UAH",
  9. "description" => "Назначение платежа",
  10. "type" => "buy",
  11. "order_id" => date("d/m/Y-H:i:s"),
  12. "server_url" => "http://мой_сайт/test/callback.php",
  13. "result_url" => "http://мой_сайт/test/callback.php",
  14. "sandbox" => "1"
  15. )
  16. );
  17. $data = base64_encode( $json_string );
  18.  
  19. $signature = base64_encode( sha1(
  20. $private_key .
  21. $data .
  22. $private_key
  23. , 1 ));
  24.  

CODE (html):
скопировать код в буфер обмена
  1.  
  2. <form id="liqpay" method="POST" action="https://www.liqpay.com/api/checkout" accept-charset="utf-8">
  3. <input type="hidden" name="data" value="<? echo $data; ?>" />
  4. <input type="hidden" name="signature" value="<? echo $signature; ?>" />
  5. </form>

3.После успешной оплаты возвращается на http://мой_сайт/test/callback.php, однако массив приходит пустой - Array()

Пробовал и с включенным и с отключенным sandbox.
Мануалы на сайте https://www[dot]liqpay[dot]com/doc особо не помогают мне Улыбка Наверное я чего-то не догоняю в принципе работы API...Подскажите как правильно получить данные об успешной или безуспешной оплате. Спасибо.
2. Кирилл 1986 - 18 Апреля, 2015 - 13:00:23 - перейти к сообщению
Та же проблема. Только в моём случае callback-страница вообще не вызывается.
3. Nailirion - 18 Апреля, 2015 - 13:23:31 - перейти к сообщению
ребят я конечно не очень селен но вы так пробы вали??

https://www[dot]liqpay[dot]com/doc#status
4. akman - 18 Апреля, 2015 - 16:24:58 - перейти к сообщению
Я действительно тогда не догонял как работает API. Там после успешной оплаты ответ от Liqpay обращается с данными к файлу, который мы указали в своем кабинете Liqpay(в callback.php возможно даже через некоторое время), там мы ловим этот ответ и записываем данные в файл допустим callback_robot.php таким образом
PHP:
скопировать код в буфер обмена
  1.  
  2. if (count($_POST)) {
  3.   file_put_contents(dirname(__FILE__).'/callback_robot.php', var_export($_POST, true) . "\r\n\r\n", FILE_APPEND | LOCK_EX);
  4. }
  5. <form id="go" method="POST" action="http://мой_сайт/callback.php"" accept-charset="utf-8">
  6.     </form>
  7. <button type="submit" form="go">Обновить</button>
  8.  


У нас получается файл с данными типа:
PHP:
скопировать код в буфер обмена
  1.   'signature' => 'slakdj sladn87asf',
  2.   'data' => 'kJAHDbKSBd&Syds6dib7IS&ddfgHSDkSADJYHKSDUgshJDhGDib',
  3. )


И в том же callback.php его уже можно считать
PHP:
скопировать код в буфер обмена
  1.  
  2. $file = file_get_contents('callback_robot.php');
  3.  
5. crazynetwork - 06 Марта, 2016 - 22:55:34 - перейти к сообщению
Может еще подскажите как его правильно прочитать? У меня постоянно грузятся предыдущие данные, пока руками не обновляется страничка.

 

Powered by ExBB FM 1.0 RC1