Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [c#] Paypal - passare parametri

    Salve a tutti,
    ho creato un e-commerce ed ora mi trovo nello step finale: il pagamento con paypal.
    Ho creato il form, ma ho riscontrato un'anomalia nel momeneto in cui passo l'amount , ovvero il prezzo finale.
    Se gli passo un intero non ha problemi, ma nel momento in cui gli arriva un decimale( cosa certa quando si acquista) paypal mi genera questa eccezione: Il link utilizzato per accedere al sistema PayPal contiene un importo dell'oggetto non formattato correttamente.

    la variabile che gli passo è in questo formato: decimal amount = 158.55m;

    vi inserisco anche il codice con cui faccio il pagamento:
    codice:
    //email del beneficiario
    string business = "xxx@xxx.it";
    string item_name = "Oggetto dell'ordine";
    string item_number = "numero dell'ordine";
    decimal amount = 158.55m;
    //int amount = 10;
    
                // costruisco l'url da passare a paypal
                //se si usa il framework 4 mettere: System.Net.WebUtility.HtmlEncode
                StringBuilder sb = new StringBuilder();
                sb.Append("cmd=_xclick");
                sb.Append("&business=" + HttpUtility.UrlEncode(business));
                sb.Append("&no_shipping=1");
                sb.Append("&currency_code=EUR");
                sb.Append("&lc=IT");
                sb.Append("&bn=PP-BuyNowBF");
                sb.Append("&item_name=" + HttpUtility.UrlEncode(item_name));
                sb.Append("&item_number=" + HttpUtility.UrlEncode(item_number));
                sb.Append("&amount=" + HttpUtility.UrlEncode(amount.ToString()));
    
                
                Response.Redirect(@"https://www.paypal.com/cgi-bin/webscr?" + sb.ToString());
    ILLUMINATEMI

  2. #2
    risolto!
    lo passo come stringa

  3. #3
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,000
    Perchè scusa prima come facevi ??

    codice:
    sb.Append("&amount=" + HttpUtility.UrlEncode(amount.ToString()));

  4. #4
    con la virgola non gli piaceva.
    così faccio un replace e metto il punto.
    amount lo rendo stringa alla dichiarazione della variabile senza fare il .ToString() alla fine.
    così nell'append arriva direttamente "12.45"
    e funziona!
    Non mi so spiegare il perchè...

  5. #5
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,000
    Si vede che in america usano il . invece della , .

  6. #6
    Originariamente inviato da cassano
    Si vede che in america usano il . invece della , .
    sicuramente, però nella valuta avevo messo EUR e la nazionalità IT, ecco perchè mi stupisce questa cosa!

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    252
    Quote Originariamente inviata da mfunky Visualizza il messaggio
    Salve a tutti,
    ho creato un e-commerce ed ora mi trovo nello step finale: il pagamento con paypal.
    Ho creato il form, ma ho riscontrato un'anomalia nel momeneto in cui passo l'amount , ovvero il prezzo finale.
    Se gli passo un intero non ha problemi, ma nel momento in cui gli arriva un decimale( cosa certa quando si acquista) paypal mi genera questa eccezione: Il link utilizzato per accedere al sistema PayPal contiene un importo dell'oggetto non formattato correttamente.

    la variabile che gli passo è in questo formato: decimal amount = 158.55m;

    vi inserisco anche il codice con cui faccio il pagamento:
    codice:
    //email del beneficiario
    string business = "xxx@xxx.it";
    string item_name = "Oggetto dell'ordine";
    string item_number = "numero dell'ordine";
    decimal amount = 158.55m;
    //int amount = 10;
    
                // costruisco l'url da passare a paypal
                //se si usa il framework 4 mettere: System.Net.WebUtility.HtmlEncode
                StringBuilder sb = new StringBuilder();
                sb.Append("cmd=_xclick");
                sb.Append("&business=" + HttpUtility.UrlEncode(business));
                sb.Append("&no_shipping=1");
                sb.Append("&currency_code=EUR");
                sb.Append("&lc=IT");
                sb.Append("&bn=PP-BuyNowBF");
                sb.Append("&item_name=" + HttpUtility.UrlEncode(item_name));
                sb.Append("&item_number=" + HttpUtility.UrlEncode(item_number));
                sb.Append("&amount=" + HttpUtility.UrlEncode(amount.ToString()));
    
                
                Response.Redirect(@"https://www.paypal.com/cgi-bin/webscr?" + sb.ToString());
    ILLUMINATEMI

    Ciao,
    posteresti il codice completo di tutta la procedura?

    intendo , pulsante di pagamento, stringa da passare e IPN di risposta da paypal?

    grazie

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 © 2024 vBulletin Solutions, Inc. All rights reserved.