IPN és Autokassza

Lehetőség van arra, hogy a webáruház értesüljön egy számla kifizetettségi állapotának változásáról a számlázz.hu felől. Tehát ha a számlázz.hu-nál a számla fizetettnek van jelölve, akkor a WooCommerce rendelésnél is ki fogja írni, hogy teljesítve lett. Ez különösen hasznos az Autokassza funkcióval egybekötve és akkor, ha átutalásos fizetést használsz. Erről itt olvashatsz többet.

Bankok, ahol elérhető az Autokassza

Image

Hogyan működik?

Autokasszával a folyamat úgy néz ki, hogy díjbekérőt állítasz ki átutalásos fizetés esetén. A számlázz.hu érzékeli, hogy beérkezett e az utalás és a beállítások alapján a számlát automatikusan elkészíti, vagy csak fizetettnek jelöli a díjbekérőt. Ezután pedig szólni fog az IPN-en keresztül a webáruházadnak, hogy fizetve lett a díjbekérő. Ha számlát is generált, akkor a generált számlát a WooCommerce-ben is eltárolja. Ha csak a fizetettnek jelölést használtad, akkor a számlát már a WooCommerce fogja legenerálni. Opcionálisan automatán rendelés státuszt is tudsz módosítani, ha érkezett egy IPN üzenet.

Konfigurálás

A beállítása egyszerű, csak keresd meg az IPN linket, amit a bővítmény generál. Ezt a WooCommerce / Beállítások / Számlázz.hu / Automatizálás képernyőn az IPN URL mezőben találod:

Image

A linket pedig a számlázz.hu fiókbeállításaiban a Számlázás alapadatok menüben tudod megadni:

Image

A számlázz.hu-n a fiók beállítások / számlázás beállítások oldalon találod azt az opciót, hogy a díjbekérő fizetése esetén automatán generáljon e számlát, vagy ne:

Image

Érdemes ezt az opciót kikapcsolva hagyni és a számlakészítést a WooCommerce-ben konfigurálni. Tehát sikeres díjbekérő fizetés után a WooCommerce-ben átállítja a rendelés státuszt teljesítettre, ez a változás pedig automatán legenerálja a számlát. Ha be van kapcsolva ez a funkció, akkor sincs gond, ebben az esetben simán letölti a számlázz.hu-n generált számlát és megjeleníti a WooCommerce-ben, tehát nem lesz dupla számlakészítés.

Ha a Rendelés státusz IPN hívás után beállításnál kiválasztasz egy rendelési státuszt, akkor egy IPN hívás után ebben a státuszba kerül a rendelés és akár elkészíti a számlát is(például a teljesített státusznál készül automatán számla). 

A beérkezett IPN kérelemben szerepel a rendelés azonosítója. Ha használsz valamilyen bővítményt, ami ezt lecseréli valamilyen más formátumra, akkor módosítanod kell a wc_szamlazz_ipn_request_parameters filterrel a paramétert, hogy a tényleges azonosítót használja. Például a WooCommerce Sequential Order Numbers bővítménynél így néz ki a módosítás:

add_filter('wc_szamlazz_ipn_request_parameters', function($ipn_parameters){
	if(isset($ipn_parameters['order_number'])) {
		$ipn_parameters['order_number'] = wc_sequential_order_numbers()->find_order_by_order_number($ipn_parameters['order_number']);
	}
	return $ipn_parameters;
});

Több webshop kezelése egy Számlázz.hu fiókkal

Ha több webáruházad van, de ugyanazzal a Számlázz.hu fiókkal használod, akkor eltérőek az IPN linkek, viszont a számlázz.hu fiókban csak egyet lehet beállítani. Ebben az esetben azt javaslom, hogy egy olyan IPN url-t hívj meg, ami aztán mindkét webshopnak továbbítja ugyanazt az IPN hívást. Mivel csak az egyiknél találja meg a rendelést, ott fog tovább futni a folyamat, a másik csak simán hibát dob majd vissza. Hozz létre valamelyik oldalon egy multiple_ipn.php fájlt a következő tartalommal:

<?php

//Ide írd be a két IPN url-t, amit a WooCommerce-ben találsz
$ipns = array(
'bolt1' => 'http://valami.hu/?wc_szamlazz_ipn_url=7b92996fdc98b6203e7cff612ac',
'bolt2' => 'http://valami2.hu/?wc_szamlazz_ipn_url=7b92996fdc98b6203e7cff612ac'
);

//Loop through each ipn url and repeat the request
foreach ( $ipns as $ipn ) broadcast( $ipn );

header( 'HTTP/1.1 200 OK', true, 200 );
exit();

//Replicate the request using curl
function broadcast( $url ) {
$data = array();
foreach ($_POST as $key => $value) $data []= urlencode($key).'='.urlencode($value);
$data = implode('&', $data);
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, count($data));
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_exec($ch);
curl_close($ch);
}
?>

Értelem szerűen cseréld le a két IPN url-t a kódban a megfelelőre. Utána a számlázz.hu-n azt add meg IPN url-nek, ahova elhelyezted a multiple_ipn.php fájlt, például webaruhazam.hu/multiple_ipn.php. Arra figyelj, hogy mivel két webshop van, a rendelés szám lehet azonos(ugye az csak egy sima bejegyzés ID). Érdemes felrakni egy extra bővítményt, pl ezt: https://wordpress.org/plugins/sequential-order-numbers-for-woocommerce/ – ezzel lehet egyedi rendelésszámot megadni, pl a szám elé írjon egy fix karaktert ami különbözik a két webshopban. 

Ebben a cikkben

    Bővítmény információk

    Verziószám: 6.0.2
    Legutóbb frissítve: 2024. 08. 27.
    Változási napló: Megtekint

    WooCommerce Számlázz.hu