Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    9

    Salvare i dati che invio a Paypal..!

    Allora ragazzi, sto facendo un semplice progettino per un'esame scolastico. Sto sviluppando un piccolo sito di e-commerce dove si vendono cibi e bevande a persone del posto. Sono riuscito a creare un semplice carrello con tanto di tasto "PAY NOW" che mi passa i dati tramite una "form post" alla pagina di paypal così che il cliente possa pagare il tutto. Ora quello che non riesco a fare è impostare che alla pressione del tasto PAY NOW venga salvato l'intero ordine con tanto di ID_UTENTE nella mia tabella ORDINI presente nel mio database. Così che posso creare un utente cucina che accede tramite una semplice pagina php alle lavorazioni da effettuare in cucina!

    via allego qualche screen ed il codice che uso nella form di paypal..!

    [PHP]<form action="https://www.paypal.it/cgi-bin/webscr" method='post'>
    <input type='hidden' name='cmd' value='_xclick'>
    <input type='hidden' name='business' value='Pova@email.it'>
    <input type='hidden' name='item_name' value='Pagamento Ordine'>
    <input type='hidden' name='item_number' value='1'>
    <input type='hidden' name='amount' value='<?php echo $totale; ?>'>
    <input type='hidden' name='no_shipping' value='0'>
    <input type='hidden' name='no_note' value='1'>
    <input type='hidden' name='currency_code' value='EUR'>
    <input type='hidden' name='bn' value='PP-BuyNowBF'>
    <input type='image' src= 'https://www.paypal.com/en_US/i/btn/btn_paynowCC_LG.gif' border='0' name='paga' alt='PAYPAL - PAGAMENTI SICURI E VELOCI'>

    </form>


    ecco lo screen del sito

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    p.es. due possibilità

    1) (più complessa, anche senza ipn volendo) come action del form metti un TUO script che come prima cosa salverà tutti i dati nel db e poi richiamerà l'url di paypal con gli stessi dati (p.es. con curl)
    2) (più semplice, ma potrebbe servire l'ipn) prima di generare il form paypal con i dati salvali nel db! Suppongo che i tag siano generati dinamicamente... prima di renderizzare il form registrali nel db! Se poi ti serve tener traccia dell'effettiva chiamata a paypal dovresti mettere un controllo (es. un campo "flag") che sarà inizialmente valorizzato a false e impostato su true solo tramite la chiamata ipn di paypal

    l'ipn sarebbe cmq più adatto

    NOTA: ipn ... il sistema di notifica di paypal di avvenuto pagamento... puoi impostare un url che sarà richiamata da paypal a pagamento completato

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    9
    Eiyen grazie per la risposta, come opzione di scelta vorrei fare la seconda (più semplice) l'unica cosa è quando devo richiamare la registrazione all'interno del database?????? come posso richiamare la memorizzazione dei dati nel DB al click di PAY NOW ? a sto punto pensavo che forse mi conviene creare un tasto del tipo "INOLTRA ORDINE" che non fa altro che salvare i dati raccolti eppoi magari creare una pagina che gestisce il pagamento di quell'ordine..

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    puoi fare così:

    - raccogli tutti i dati necessari a "generare" il "bottone" paypal
    - memorizzi i dati nel tuo db con un flag "false" (l'utente non ha ancora pagato)
    - mostri il bottone

    L'utente può a questo punto anche non completare il pagamento: il flag resta a false (puoi anche "ripulire" questi record successivamente).
    Se l'utente completa il pagamento paypal richiamerà alla conferma lo script che tu indichi come callback. Questo tuo script non deve gestire un output a video: semplicemente elabora la risposta di paypal (v. docs "ipn paypal") e aggiorna il db cambiando il flag in "true"

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    9
    eiyen, una domanda che centra poco con il contesto di cui abbiam parlato, ma come faccio a recuperare l'username dell'utente loggato che sta diciamo nella zona del pagamento???? dato che mi manca quello per poter effettuare una query e salvare quello che mi serve...

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    ma come si è loggato? da dove? in una "tua" area riservata?

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    9
    allora ho risolto il problema del recupero username utente!. Ora l'unico mio ultimo problema è salvare all'interno del database l'elenco dei prodotti che acquista l'utente e inserisce nell'ordine.. ho notato che se passo la variabile $NOME che si trova all'interno della gestione del carrello, mi salva all'interno del database nella colonna (NOME_PRODOTTO), solo il nome dell'ultimo prodotto inserito, perdendo tutti gli altri prodotti precedenti.. qualcuno sa come potrei gestire la cosa?

    incollo il codice relativo al carrello

    [PHP]foreach ($_SESSION['cart']as $id => $x)
    {

    $risultatoquery=mysql_query("SELECT Nome,Prezzo FROM prodotti where id=$id")or die (mysql_error());
    $miariga=mysql_fetch_array($risultatoquery);
    $nome=$miariga['Nome'];
    $nome=substr($nome,0,100);
    $prezzo=$miariga['Prezzo'];
    $costo=$prezzo*$x;
    $totale=$totale+$costo;
    echo "<tr>";
    echo "<td align='left'>Prodotto: $nome </td>";
    echo "<td align='right'>X $x Riduci</td>";
    echo "<td align='right'>= $costo €";
    echo "<tr>";
    }

    la variabile che vedere dopo PRODOTTI: è quella contenente il nome dell'oggetto...ora io vorrei salvarmi i nomi di tutti gli oggetti che inserisco nel carrello...c'è un modo?

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    prima della chiusura del foreach aggiungi qualcosa come $_SESSION['prodotti'][$id] = array('nome' => $nome, ...) in modo da memorizzare il nome ed eventuali altri dati (sarebbe stato meglio direttamente in 'cart'...

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    9
    Allora, sono riuscito a recuperare tutti i dati dell'ordine. L'unica cosa che mi manca è la gestione di un array da inserire nel campo della tabella! in poche parole mi salva sempre e solo l'ultimo elemento inserito nel carrello dall'utente e non l'insieme di tutti gli elementi selezionati dall'utente!! ci sto sbattendo da un pò di ore e non trovo una soluzione adeguata!

    Vi allego il codice, sperando in una soluzione!


    $_SESSION['prod'][$id] = array('Nome' => $nome);
    $array=serialize($nome);

    facendo questo, mi salva sempre e solo l'ultimo nome inserito nel carrello...a me invece interessa un campo della tabella con tutti i nomi al suo interno, magari distanziati da una virgola.

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.