Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [inne][HTML][PHP]Adres raportów PayU, Problem z raportami
programistaarek
post
Post #1





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 1.02.2015

Ostrzeżenie: (0%)
-----


Witam, serdecznie mam zakupione konto w systemie PayU i korzystam z typu płatności Classic API. Moja strona to autorski sklep, gdzie będzie maksymalnie 10 produktów do kupna stąd też nie dodawałem sklepu gotowego. Formularz zgłoszenia zamówienia oraz przelew na konto działa bez problemu, lecz rzeczą, której nie jestem w stanie przeskoczyć to zawartość pliku raporty. Mam na serwerze plik, który został podany w PayU w adresie raportów.
Nie wiem co ja mam tam kompletnie wpisać wiem, że jest dokumentacja PayU oraz rozmawiałem z ich pomocą techniczną i nadal nic nie jestem w stanie po prostu tego przeskoczyć nie wiem co mam tam uzupełnić. Oni mi coś mówili, że metodą POST mam im zwrócić wartość „OK” oraz ze zwróconej zmiennej session_id mam wyliczyć sig dodając również post_id ts oraz key1 konta, które zostało założone w serwisie.
Później zaś mam jakąś metodą Payment/get wysłać im tego sig'a oraz dopytać o dane zamówienia jego status. Chciałbym otrzymać gotowe rozwiązanie, gdyż moja cierpliwość do tego się już skończyła. A, więc chcę to wysłanie OK wraz z wyliczonym sigiem+ pobranie od nich statusu zamówienia, aby było ukazane jaki status ma zamówienie. Jeśli status równa się 99 (zakończone) skrypt może wykonać Update na mojej stronie osobie, która zakupi dany produkt.
Więc pobranie statusu dla zakończonego wraz z danymi jak id sesji czy koszt zamówienia.
Teraz pytanie czy jest ktokolwiek w stanie mi w tym pomóc? Chodzi mi o pomoc wysłania gotowego rozwiązania abym mógł sobie tylko gotowe dane wprowadzić.



Obecnie mam taki plik w raportach

  1. <?
  2. include('include/baza.php');
  3.  
  4.  
  5.  
  6.  
  7. $pos_id="**************";
  8. $key1 = "";
  9. $key2 = "**************";
  10. $ts = time();
  11.  
  12.  
  13.  
  14.  
  15.  
  16. function httpPost($url,$params)
  17. {
  18. $postData = '';
  19. //create name value pairs seperated by &
  20. foreach($params as $k => $v)
  21. {
  22. $postData .= $k . '='.$v.'&';
  23. }
  24. $postData = rtrim($postData, '&');
  25.  
  26. $ch = curl_init();
  27.  
  28. curl_setopt($ch,CURLOPT_URL,$url);
  29. curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
  30. curl_setopt($ch,CURLOPT_HEADER, false);
  31. curl_setopt($ch, CURLOPT_POST, count($postData));
  32. curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
  33.  
  34. $output=curl_exec($ch);
  35.  
  36. curl_close($ch);
  37. return $output;
  38.  
  39. }
  40.  
  41. $tablica = array(
  42. "pos_id" => $pos_id,
  43. "ts" => $ts,
  44. "session_id" => $_POST['session_id']
  45. );
  46.  
  47.  
  48. ksort($tablica);
  49. //built url
  50. $zmienna='';
  51. foreach ($tablica as $key => $value){
  52. $zmienna = $zmienna.$key."=".urlencode($value)."&";
  53. }
  54. // sig
  55. $sig = hash('sha256', $zmienna.$key2);
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63. $params = array(
  64. "pos_id" => $pos_id,
  65. "key2" => $key2,
  66. "ts" => $ts,
  67. "sig" => $sig,
  68. "session_id" => $_POST['session_id']
  69. );
  70.  
  71. echo httpPost("https://secure.payu.com/paygw/UTF/Payment/confirm",$params);
  72.  
  73.  
  74.  
  75. /// pobranie danych które zwraca PayU
  76.  
  77.  
  78. $pending = array(1,4,5); // 1 - nowa, 4 - rozpoczęta, 5 - oczekuje na odbiór
  79. $success = array(99); // płatność zaakceptowana
  80. $fail = array(2,3,7,888); // 2-anulowana, 3-odrzucona, 7-płatność odrzucona, 888-bledny status, prosimy o kontakt
  81.  
  82.  
  83.  
  84. if (in_array($status, $pending)){
  85.  
  86. // Raport, że płatność w toku
  87. echo "OK";
  88.  
  89. mysql_query("INSERT INTO `raport` (tresc) VALUES('W toku | sesja => ".$sesja." | numer_zamowienia => ".$numer."')") or die("Błąd rejestracji [server error]");
  90.  
  91.  
  92.  
  93.  
  94.  
  95. }elseif (in_array($status, $success)){
  96.  
  97. // Raport, że opłacono
  98.  
  99. mysql_query("INSERT INTO `raport` (tresc) VALUES('Opłącono | sesja => ".$sesja." | numer_zamowienia => ".$numer."')") or die("Błąd rejestracji [server error]");
  100.  
  101.  
  102. echo "OK";
  103. }elseif (in_array($status, $fail)){
  104.  
  105. // Raport, że odrzucono
  106.  
  107.  
  108.  
  109. mysql_query("INSERT INTO `raport` (tresc) VALUES('Odrzucono | sesja => ".$sesja." | numer_zamowienia => ".$numer."')") or die("Błąd rejestracji [server error]");
  110.  
  111. echo "OK";
  112. }
  113.  
  114. exit('OK');
  115. ?>
  116.  


A treść raportu z PayU ukazuje mi taki błąd : " code (OK): 200, Response (ERROR): "<?xml version="1.0" encoding="UTF-8"?> <response> <status>ERROR</status> <error> <nr>103</nr> <message>Kod błędu: 103</message> </error> </response>OK" "

Jak mam poprawnie wyliczyć ten numer sig? Bo bład 103 wzkasuje na jego złe przesłanie.


--------------------
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 12:35