• Resolved zibardo

    (@zibardo)


    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 * FROM abc_postmeta WHERE meta_key = ‘_wc_gestpay_cc_token’
    Can you help me to build a function to get those tokens?

    Thank you

Viewing 10 replies - 1 through 10 (of 10 total)
  • Plugin Author Fabrick Support

    (@easynolo)

    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.

    Thread Starter zibardo

    (@zibardo)

    Grazie mille!
    invece la funzione per avere ad esempio le scadenze delle carte di credito?
    Ho visto che sono salvate nell’account utente

    Plugin Author Fabrick Support

    (@easynolo)

    Buongiorno,

    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

    Thread Starter zibardo

    (@zibardo)

    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

    Thread Starter zibardo

    (@zibardo)

    intendevo $customer_user…

    Plugin Author Fabrick Support

    (@easynolo)

    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

    Thread Starter zibardo

    (@zibardo)

    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

    Plugin Author Fabrick Support

    (@easynolo)

    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.

    Thread Starter zibardo

    (@zibardo)

    Fantastico, ora prendo token, scadenza mese e anno della carta!
    Per recuperare scadenza mese e anno del token?

    Grazie ancora per l’aiuto

    Plugin Author Fabrick Support

    (@easynolo)

    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

Viewing 10 replies - 1 through 10 (of 10 total)
  • The topic ‘gestpay tokens’ is closed to new replies.