Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012

    ordine unico MA sequenziale

    buongiorno

    ho un e-commerce che si interfaccia con un sistema di pagamento bancario in cui il numero di ordine deve GIA' esistere ed essere sempre unico quando arriva al sistema. Se il pagamento va a buon fine o meno, la banca tiene traccia del numero ordine e quindi ad ogni tentativo 'brucio' l' auto_increment nella mia tabella. Questo comporta ovviamente che ad ogni tentativo di pagamento alla banca io rigeneri il num ordine... ecco come ho pensato di procedere ora:

    conferma carrello
    riepilogo dati acquirente e destinazione (scrivo l' ordine nel db con esito pagamento negativo e stato di 'bloccato' e metto in sessisone il progressivo)
    passaggio alla banca con num ordine

    se il pagamento fallisce:

    torno all' e-comm e offro la possibilità di scegliere un metodo diverso o riprovare verso la banca (magari cambia carta)
    in questo caso cosa faccio? beh, se mi vuoi tornare alla banca NON puoi con lo stesso numero ordine, quindi cancello il precedente e lo riscrivo nel db con le stesse condizioni di prima.



    se il pagamento è completato:
    cancello il carrello in sesisone e continuo regolarmente.


    questo comporta quindi la 'bruciatura' di un auto increment... e non posso nemmeno presentarmi alla banca con un numero diverso da quello che registro sennò non c'è corrispondenza tra il mio backoffice e quello della banca!

    sò che fiscalmente ordini che saltano il progressivo non danno assolutamente problemi, in quanto non hanno proprio una valenza fiscale gli ordini (non sono da paragonare alla fatturazione o DdT).


    ma se il venditore mi fa delle pippe perchè non vede una sequenzialità degli ordini?
    se il cliente dell' e-comm mi abbandona l' acquisto sul piu bello, ovvero quando ho gia scritto l'ordine?
    sarebbe corretto creare una routine che elimini gli ordini con esito pagamento negativo e bloccati?


    grazie a tutti per il supporto logico
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  2. #2
    Spero di aver capito quello che intendi...

    Io avevo uno stesso problema nella gestione degli utenti, era per evitare che esistessero profili "vuoti"...
    In relazione al tuo scenario, non potendo riassegnare i numeri d'ordini - e non volendo sconvolgere la tabella, almeno io non lo farei - ti consiglierei di crearti una sorta di tabella "di log" a parte, in modo da poter salvare non solo gli interventi andati a buon fine, ma anche eventuali abbandoni, errori e altro.

    Se invece preferisci fare tutto in un'unica tabella, puoi sempre inserire una nuova colonna (chiamala id_sequenziale o con un nome che ti ricordi a che serve ) e salvare tutto lì. Ma non mi sembra molto pulito.

    O ancora, ma questo comporta "rischi" di altro genere, puoi copiare tutta la tabella degli ordini in una tabella temporanea, riordinare i numeri degli indici, e ricopiare tutto nella tabella degli ordini. Occhio se hai dei riferimenti o cose simili.

    L'ultima soluzione è spiegare al cliente (ammesso che sia uno di quelli disposti ad ascoltare e interessati/curiosi a quello che fa girar la loro azienda, e sono una specie in via di estizione) che avere numeri d'ordine non sequenziali non comporta una non integrità dei dati, e che quindi è un comportamento perfettamente normale...

    Spero di averti almeno fornito qualche idea
    Ciaoo
    Questa e' la mia firma! Lo so, e' una mezza schifezza.
    Un sito
    - skype non è per consulenze online -

  3. #3

    Re: ordine unico MA sequenziale

    Originariamente inviato da dottwatson
    buongiorno

    ho un e-commerce che si interfaccia con un sistema di pagamento bancario in cui il numero di ordine deve GIA' esistere ed essere sempre unico quando arriva al sistema. Se il pagamento va a buon fine o meno, la banca tiene traccia del numero ordine e quindi ad ogni tentativo 'brucio' l' auto_increment nella mia tabella. Questo comporta ovviamente che ad ogni tentativo di pagamento alla banca io rigeneri il num ordine...
    Assumendo che il sistema accetta un nr d'ordine alfanumerico, potresti semplicemente aggiungere al numero vero e proprio dell'ordine la stringa data-ora dell'invio della richiesta. Stringa che ovviamente non inserisci nel nr dell'ordine.
    In questa maniera il nr ordine rimane sempre quello, e ad ogni risposta della banca, anche sullo stesso ordine, hai una specifica maggiore che è appunto l'ora dell'invio richiesta.
    Qualunque imbecille può inventare e imporre tasse. (Maffeo Pantaleoni)

  4. #4
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012

    Re: Re: ordine unico MA sequenziale

    Originariamente inviato da webus
    Assumendo che il sistema accetta un nr d'ordine alfanumerico, potresti semplicemente aggiungere al numero vero e proprio dell'ordine la stringa data-ora dell'invio della richiesta. Stringa che ovviamente non inserisci nel nr dell'ordine.
    In questa maniera il nr ordine rimane sempre quello, e ad ogni risposta della banca, anche sullo stesso ordine, hai una specifica maggiore che è appunto l'ora dell'invio richiesta.
    potrebbe essere utile come soluzione se non avessi un backoffice anche sul sistema bancario. supponendo di voler passare un microtime o un timestamp accodato all' ordine tipo 215-21312787654 , entrando nel b-office del sistema avrei sempre come numero ordine 215-21312787654, mentre nel b-office dell' e-commerce avrei 215 e basta... incoerente per chi deve poi fare controlli incrociati e per il venditore che si deve gestire per un ordine 2 identificativi...

    @iraiscoming223: le temporaneità volevo evitarle per motivi pratici, quindi preferivo la soluzione logica
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.