Code Monkey home page Code Monkey logo

Comments (11)

baszczewski avatar baszczewski commented on July 18, 2024

Potwierdzam dany bug. U mnie również występuje.

from openpayu_php.

gniewkoo avatar gniewkoo commented on July 18, 2024

Jaki jest wynik metody var_dump($result) ?

from openpayu_php.

baszczewski avatar baszczewski commented on July 18, 2024

Zamówienie realizuję z konta testowego wymienionego w dokumentacji.

Dane wejściowe konsumowane przez $result = OpenPayU_Order::consumeNotification($data);

string(541) "{"OpenPayU":{"xmlns:ns2":"http://www.openpayu.com/public/20/openpayu","OrderNotifyRequest":{"Order":{"Status":"PENDING","NotifyUrl":"http://USUNALEM.XXX/platnosci/notify","Description":"Przykładowe zamówienie","ExtOrderId":"1000","Products":{"Product":{"Name":"Product1","Quantity":"1","UnitPrice":"100"}},"ValidityTime":"86400","MerchantPosId":"145227","OrderId":"C5DHQ8XGCX140618GUEST000P01","OrderCreateDate":"2014-06-18T08:24:43.578+02:00","TotalAmount":"100","CurrencyCode":"PLN","CustomerIp":"USUNALEM"}}}}"

Wartość $result:

object(OpenPayU_Result)#96 (9) {
  ["status":"OpenPayU_Result":private]=>
  NULL
  ["error":"OpenPayU_Result":private]=>
  string(0) ""
  ["success":"OpenPayU_Result":private]=>
  int(0)
  ["request":"OpenPayU_Result":private]=>
  string(0) ""
  ["response":"OpenPayU_Result":private]=>
  object(stdClass)#98 (1) {
    ["OpenPayU"]=>
    object(stdClass)#99 (2) {
      ["xmlns:ns2"]=>
      string(42) "http://www.openpayu.com/public/20/openpayu"
      ["OrderNotifyRequest"]=>
      object(stdClass)#100 (1) {
        ["Order"]=>
        object(stdClass)#101 (12) {
          ["Status"]=>
          string(7) "PENDING"
          ["NotifyUrl"]=>
          string(59) "http://USUNALEM.XXX/platnosci/notify"
          ["Description"]=>
          string(24) "Przykładowe zamówienie"
          ["ExtOrderId"]=>
          string(4) "1000"
          ["Products"]=>
          object(stdClass)#102 (1) {
            ["Product"]=>
            object(stdClass)#103 (3) {
              ["Name"]=>
              string(8) "Product1"
              ["Quantity"]=>
              string(1) "1"
              ["UnitPrice"]=>
              string(3) "100"
            }
          }
          ["ValidityTime"]=>
          string(5) "86400"
          ["MerchantPosId"]=>
          string(6) "145227"
          ["OrderId"]=>
          string(27) "C5DHQ8XGCX140618GUEST000P01"
          ["OrderCreateDate"]=>
          string(29) "2014-06-18T08:24:43.578+02:00"
          ["TotalAmount"]=>
          string(3) "100"
          ["CurrencyCode"]=>
          string(3) "PLN"
          ["CustomerIp"]=>
          string(12) "89.71.244.83"
        }
      }
    }
  }
  ["sessionId":"OpenPayU_Result":private]=>
  string(0) ""
  ["message":"OpenPayU_Result":private]=>
  string(0) ""
  ["countryCode":"OpenPayU_Result":private]=>
  string(0) ""
  ["reqId":"OpenPayU_Result":private]=>
  string(0) ""
}

Tak jak założyciel tematu próbowałem zmienić wielkość znaków przy $result->getResponse()->order->orderId, ale to nie pomogło.

from openpayu_php.

gniewkoo avatar gniewkoo commented on July 18, 2024

Czy używana jest najnowsza wersja biblioteki?

from openpayu_php.

baszczewski avatar baszczewski commented on July 18, 2024

Oczywiście. Korzystam z najnowszej wersji znajdującej się w repozytorium.

Poniżej mój przykładowy kod dla odbierania powiadomienia:

  require_once Kohana::find_file('vendor', 'payu/openpayu');

        OpenPayU_Configuration::setEnvironment('secure');
        OpenPayU_Configuration::setMerchantPosId(Kohana::$config->load('payu.pos_id')); 
        OpenPayU_Configuration::setSignatureKey(Kohana::$config->load('payu.md5_second')); 

        $body = $this->request->body();
        $data = trim($body);

        try 
        {
            $result = false;
            if (!empty($data)) 
            {
                $result = OpenPayU_Order::consumeNotification($data);
            }

            ob_start();
            var_dump($data);
            $r1 = ob_get_clean();

            ob_start();
            var_dump($result);
            $r2 = ob_get_clean();

            Log::instance()->add(Log::NOTICE, $r1);
            Log::instance()->add(Log::NOTICE, $r2);

            if ($result and $result->getResponse()->order->orderId) 
            {
                /* Check if OrderId exists in Merchant Service, update Order data by OrderRetrieveRequest */
                $order = OpenPayU_Order::retrieve($result->getResponse()->order->orderId);

                /* If exists return OrderNotifyResponse */
                $rsp = OpenPayU::buildOrderNotifyResponse($result->getResponse()->order->orderId);

                if (!empty($rsp)) 
                {
                    header("Content-Type: application/json");
                    echo $rsp;
                }
            }
        } 
        catch (OpenPayU_Exception $e) 
        {
            echo $e->getMessage();
        }
    }

W poprzedniej wiadomości podałem Panu wartości $r1, oraz $r2.
Zamówienie jest natomiast generowane wzorcowym przykładem.

from openpayu_php.

agnagna avatar agnagna commented on July 18, 2024

A czy mógłby Pan pokazać na jaki url kierowane są zamówienia? Najlepiej podać wartość zmienniej $pathUrl z pliku Order.php (w funkcji create)

from openpayu_php.

baszczewski avatar baszczewski commented on July 18, 2024

Wychodzi na to, że metoda create z pliku OpenPayU/v2/Order.php w ogóle nie jest wykonywana. Dodałem kod:

    public static function create($order)
    {
        Log::instance()->add(Log::NOTICE, 'wazne');

        $pathUrl = OpenPayU_Configuration::getServiceUrl() . self::ORDER_SERVICE;
        Log::instance()->add(Log::NOTICE, $pathUrl);

        $data = OpenPayU_Util::buildJsonFromArray($order);
        Log::instance()->add(Log::NOTICE, $data);


        if (empty($data)) {
            throw new OpenPayU_Exception('Empty message OrderCreateRequest');
        }

        $result = self::verifyResponse(OpenPayU_Http::post($pathUrl, $data), 'OrderCreateResponse');

        return $result;
    }

W logach natomiast nie pojawia się żadna ze wskazanych adnotacji.

from openpayu_php.

baszczewski avatar baszczewski commented on July 18, 2024

Wychodzi na to, że problem jest w funkcji: OpenPayU_Order::hostedOrderForm($order);

Jeśli przygotuję formularz taką metodą:

$response = OpenPayU_Order::create($order);
$this->redirect($response->getResponse()->redirectUri);

Powiadomienie nie zwraca takiego błędu.

from openpayu_php.

agnagna avatar agnagna commented on July 18, 2024

Czy mógłby Pan w takim wypadku skorzystać z OpenPayU_Order::create($order)? Ta funkcja korzysta z najnowszej wersji API i działa poprawnie. Przy okazji dziękujemy za potwierdzenie buga w formularzu.

from openpayu_php.

baszczewski avatar baszczewski commented on July 18, 2024

Oczywiście. Dziękuję za pomoc.

from openpayu_php.

bartek5186 avatar bartek5186 commented on July 18, 2024

Problem wydaje się dosyć prosty - tutaj też występują w generowanym formularzu z hostedOrderForm
duże litery w nazwach zmiennych. U mnie również hostedOrderForm nie chce działać, a create sprawia wrażenie działającego. W wyniku działania wysłanego formularza z hostedOrderForm przy odbieraniu wiadomości (consume) pojawiają się zmienne rozpoczynające się z dużych liter, natomiast przy użyciu ::consume(order) z małych (dlatego między innymi działa consume a hosterOrderForm nie)

from openpayu_php.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.