Skip to content

Fizetési események

A SimplePay fizetési folyamat kardinális pontjaira rákapcsolódás WordPress hooks-ok használatával lehetséges.

Tranzakció indítása

A SimplePay saját terminilógiájában a start hívás. Az átadott adattömbnek jelenleg egy eleme módósítható filter hookkal: az orderRef paraméter, mely a weboldalon belüli egyedi tranzakció azonosító.

$sps_data = array(
'base' => array(
'currency' => $currency,
'total' => $total,
'language' => 'HU',
'timeout' => $timeout,
'methods' => array( 'CARD' ),
'url' => add_query_arg( array(
'action' => 'SimplePay_BACK',
'nf_resume' => $form_id
), get_site_url() ),
'orderRef' => apply_filters( 'ninja_forms_simplepay_order_ref', $order_ref, $form_data ),
'customerEmail' => $action_settings['simplepay_billing_email'],
),
'invoice' => array(
'name' => $action_settings['simplepay_billing_name'] ?: '',
'company' => $action_settings['simplepay_billing_company'] ?: '',
'email' => $action_settings['simplepay_billing_email'] ?: '',
'city' => $action_settings['simplepay_billing_city'] ?: '',
'zip' => $action_settings['simplepay_billing_zip'] ?: '',
'address' => $action_settings['simplepay_billing_address'] ?: '',
),
);

A filter 2 paramétert kap:

  • order_ref: az orderRef alapértelmezett értékét
  • $form_data: a Ninja Forms űrlap teljes adattartalma

A fenti kódrészletben látható az is, hogy az invoice tömbben a Simplepay Action beállításai közül a billing data mezők értéke kerül behívásra.

Tranzakció visszatérés

A SimplePay terminológiában a back művelet során a fizető fél a SimplePay fizetőoldalról visszairányításra kerül arra az URL-re, ami a start hívásban lett átadva.

Ezen oldalakon kötelezően tájékoztatni kell a fizető felet a tranzakció eredményéről. Ezt előkészítendő a SimplePay back válaszhívásban GET paraméterként érkező adattömbből összeállításra kerül a megjelenítendő üzenet, mely a simplepay-transaction-result GET paraméterként kerül hozzáfűzésre az Action beállításoknál megadott sikeres / sikertelen URL végére. Ami innentől tetszőleges módon jeleníthető meg a céloldalakon - pl.: shortcode, Elementor Dynamic tag -> request parameter, stb.

Ezen eseményhez tartozó action hook: ninja_forms_simplepay_back, melynek 2 paramétere:

  • a SimplePay adattömb
  • sikeres, vagy sikertelen volt a tranzakció: ‘success’ / ‘failure’
do_action( 'ninja_forms_simplepay_back', $result, 'success' );
do_action( 'ninja_forms_simplepay_back', $result, 'failure' );

A SimplePay által küldött back válasz struktúrájára példa. Az “o” az orderRef értéke.

{
"r":0,
"t":99844942,
"e":"SUCCESS",
"m":"PUBLICTESTHUF",
"o":"101010515680292482600"
}

IPN: jóváhagyott tranzakció

Az Instant Payment Notification (IPN) során a fizetési tranzakció végstátuszáról tájékoztatja a kereskedői rendszert a SimplePay. Ez a fizető fél böngészőjétől függetlenül, POST hívással érkezik a SimplePay fiókban megadott URL-re.

A SimplePay által küldött IPN adattömböt kapja meg az ninja_forms_simplepay_ipn action hook:

do_action( 'ninja_forms_simplepay_ipn', json_decode( $json, true ), 'ipn' );

Az IPN hívásban átadott adatokra egy példa:

{
"salt":"223G0O18VAqdLhQYbJz73adT36YzLtak",
"orderRef":"101010515680292482600",
"method":"CARD",
"merchant":"PUBLICTESTHUF",
"finishDate":"2019-09-09T14:46:18+0200",
"paymentDate":"2019-09-09T14:41:13+0200",
"transactionId":99844942,
"status":"FINISHED"
}

Ahol az orderRef természetesen a start hívásban átadott egyedi azonosító, mely így alkalmas arra, hogy az oldal értesüljön arról, hogy az adott traznakció sikeresen átment a banki csalásvizsgálaton is.

Alapértelmezetten csak a jóváhagyott, csalásvizsgálaton átment tranzakciókról küld IPN üzenetet a SimplePay, de ez a SimplePay fiókon belül állítható, más kifutásokról is kérhető IPN hívás. Ezeknél természetesen más lesz a status értéke. Erről bővebben az áttekintőben linkelt SimplePay fejlesztői dokumentációban lehet olvasni az IPN fejezetben.