conedevelopment / simplepay-gateway

OTP SimplePay bővítmény WooCommerce (WordPress) áruházak részére.
https://simplepay.conedevelopment.com
MIT License
57 stars 22 forks source link

Sikeres fizetes utan az Order statusza "feldolgozas alatt" marad #111

Closed sknight80 closed 1 year ago

sknight80 commented 1 year ago

Hiba leírása

Feltunt nekem, hogy amikor az ugyfelunk a weboldalunkon vasarol voucher-t (virtualis termek) simplepay-en keresztul, a megrendeles statusza "Feldolgozas alatt" -ban marad sikeres fizetes utan es nem valtozik a megrendeles statusza "Teljesitve".

Ez most a kiegeszito limitacioja vagy nekem kell egy kis kodot berakjak a WP-be, hogy amikor sikeres fizetes megtortent, akkor a status menjen at "Teljesitve" statusba?

Extra info:

2022-12-14T15:16:04+00:00 INFO Az IPN hívás megtörtént.
{"salt":"<removed>","orderRef":"wc-15201","method":"CARD","merchant":"<removed>","finishDate":"2022-12-14T16:16:01+01:00","paymentDate":"2022-12-14T16:12:37+01:00","transactionId":33<reducted>,"status":"FINISHED"}
ghenius30 commented 1 year ago

Szia, Nekem is feltűnt ez a probléma.

Kicsit bele kellett nyúlni a pluginba, az IPNHandler.php-ba írtam egy kis scriptet, ami lekérdezi az aktuális ordert, és átállítja 'completed'-re az order státuszát.

<?php

namespace Cone\SimplePay\Handlers;

use Cone\SimplePay\Support\Log;

class IPNHandler extends Handler
{
    /**
     * Handle the IPN request.
     *
     * @param  array  $payload
     * @return void
     */
    public function handle($payload)
    {
        Log::info(sprintf(
            "%s\n%s",
            __('IPN event was fired.', 'cone-simplepay'),
            json_encode($payload)
        ));

        $order = wc_get_order( $this->order->get_id() );
        $order->update_status( 'completed' );

        //$this->order->payment_complete();
    }
}
sknight80 commented 1 year ago

@ghenius30 a $this->order->payment_complete(); sor miert van kikommentezve?

ghenius30 commented 1 year ago

@sknight80 amikor teszteltem akkor az $order->update_status( 'completed' ); átállította 'completed'-re a státuszt, és a $this->order->payment_complete(); pedig visszaállította 'processing'-re a státuszt.

sknight80 commented 1 year ago

@ghenius30 es ha felvan cserelve igy:

        $this->order->payment_complete();

        $order = wc_get_order( $this->order->get_id() );
        $order->update_status( 'completed' );
ghenius30 commented 1 year ago

@sknight80 most teszteltem, valóban így is megfelelően működik. :)

sknight80 commented 1 year ago

@ghenius30 kiraly. Akkor berakom ezt a modositast en is a pluginba.

ghenius30 commented 1 year ago

@sknight80 csak ne felejtsd el, ha update van, valószínűleg ezt ki fogja törölni belőle, és majd neked kell vissza tenned.

iamgergo commented 1 year ago

Sziasztok!

Ha jól értem akkor ez csak virtuális termék esetében probléma?

csak ne felejtsd el, ha update van, valószínűleg ezt ki fogja törölni belőle, és majd neked kell vissza tenned.

Ha ez valóban megoldás, akkor bevesszük a forráskódba. @ghenius30 @sknight80 Ha esetleg van kedvetek nyitni egy PR-t erre, akkor örömmel vesszük.

Köszi!

sknight80 commented 1 year ago

Szia @iamgergo ,

Mivel mi csak virtualis termeket arusitunk igy en csak azzal kapcsolatban tudok nyilatkozni. Es igen ott ez problema. Ha gondolod szivesen nyitok ezzel kapcsolatban egy PR-t.

Istvan

ghenius30 commented 1 year ago

Szia @iamgergo , Én is virtuális termékekkel, rendezvények regisztrációs díjával foglalkozom.

iamgergo commented 1 year ago

@sknight80 @ghenius30 Volt egy kis időm rá, így nyitottam egy PR-t. Esetleg le tudjátok tesztelni, hogy ez a kód (https://github.com/conedevelopment/simplepay-gateway/pull/112/files#diff-6a50c0e79f358172c2f4624731357a53c4440b1c0f7459c983752400444f47c2R24-R35) működik-e megfelelően?

Köszi!

ghenius30 commented 1 year ago

@iamgergo teszteltem, nekem így már jól működik virtuális termék esetén.

sknight80 commented 1 year ago

@iamgergo hagytam egy kérdést a PR ban. Jónak tűnik nekem és működik is. A kérdés majd azokhoz fog menni akik több fajta terméket árusítanak. Virtuális meg fizikai. Ok bútor meg ajandekkartya. Bár az utóbbi lehet mindkettő típusban.

iamgergo commented 1 year ago

Köszönöm az asszitot, mergeltem a PR-t és frissítettem a verziót. Ezt pedig zárom.