gestpay tokens
-
Hi,
im using Gestpay Professional iFrame and this function
$tokens = WC_Payment_Tokens::get_customer_tokens( $subscription->ID );
returns an empty array.
I noticed that the tokens are stored in the postmeta meta_key:
—> SELECT * FROMabc_postmetaWHEREmeta_key= ‘_wc_gestpay_cc_token’
Can you help me to build a function to get those tokens?Thank you
-
Hi @zibardo
the token is stored in the main order if contains a subscription, so that it can be easily retrieved on each renewal order. You can wrote something like that:
<?php function get_token_for_order( $order_id ) { if ( ! empty( $order_id ) ) { $token = get_post_meta( $order_id, GESTPAY_META_TOKEN, TRUE ); if ( ! empty( $token ) ) { return $token; } } return FALSE; } ?>Tokens can also be stored (with S2S) in a user_meta so that they be reused for a new payment. You can wrote something like that:
<?php function get_user_cards( $user_id ) { if ( ! empty( $user_id ) ) { $tokens = get_user_meta( $user_id, GESTPAY_META_TOKEN, TRUE ); if ( ! empty( $tokens ) ) { return $tokens; } } return array(); } ?>Probably in one of the next releases of the plugin there will be a refactoring to use the Payment Token APIs.
Grazie mille!
invece la funzione per avere ad esempio le scadenze delle carte di credito?
Ho visto che sono salvate nell’account utenteBuongiorno,
la funzione “get_user_cards” di sopra rende un array, e ogni elemento contiene token, month, year. Ad esempio:
$cards = get_user_cards( $user_id ); foreach ( $cards as $card ) { echo $card['token']; echo $card['month']; echo $card['year']; }Un saluto
Buongiorno, grazie per l’aiuto, con la funzione get_token_for_order sono riuscito ad ottenere il token, al contrario usando get_user_cards non riesco ad individuare il parametro da passare come argomento $user_id, presumo non sia il $subscription_id e neanche il $customer_order….
Da dove posso estrapolare lo $user_id?grazie
intendevo $customer_user…
Buongiorno,
non sapendo come/dove deve utilizzare la funzione gliene ho fornito una generica che prende in ingresso l’id di un utente (WP_User) da cui vuole recuperare il token.
Nel plugin, ad esempio, l’id dell’utente viene recuperato con
get_current_user_id(); un altro esempio, partendo da un’id ordine è:$order = wc_get_order( $order_id ); $user = $order->get_user(); $user_id = $order->get_user_id();Sta però a lei ricavarlo nel modo più consono rispetto al codice che sta scrivendo.
NB: i token vengono memorizzati nei meta dell’utente (user_meta) solo se si utilizza la versione S2S (ovvero la versione chiamata “OnSite”) perché è l’unica versione che permette il riuso dei token per gli utenti loggati.
Un cordiale saluto
Grazie per la celere risposta 🙂
Sono riuscito a stampare i dati richiesti, l’unico problema è che me li visualizza esclusivamente per i pagamenti fatti tramite la sandbox di gestpay… ho provato ad eseguire nuovi pagamenti tramite il plug-in, sia in modalità on-site che iframe, e per questi continuo a ricevere un array vuoto… ha per caso qualche altro suggerimento?
Grazie ancora anticipatamente per il supporto.Cordiali saluti
Salve,
il plugin è aggiornato all’ultima versione? È stato utilizzato in modalità sandbox e poi produzione nella stessa versione? Detto altrimenti, ha effettuato nuovi pagamenti anche in modalità sandbox o i dati mostrati per sandbox risalgono a pagamenti effettuati con una precedente versione del plugin?
PS: nella modalità iframe, come detto sopra, i token non vengono memorizzati nei meta dell’utente. Il salvataggio nei meta dell’utente avviene solo ed esclusivamente nella versione on-site, se è stato abilitato il salvataggio dei token tramite apposita opzione del plugin.
Fantastico, ora prendo token, scadenza mese e anno della carta!
Per recuperare scadenza mese e anno del token?Grazie ancora per l’aiuto
Salve,
la scadenza del token coincide con la scadenza della carta, poiché il token è in relazione uno a uno con un numero di carta.
Un cordiale saluto
The topic ‘gestpay tokens’ is closed to new replies.