Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Διασύνδεση με PayPal και δυνατότητα για PayPal Account Optional

Îåêßíçóå áðü ôï ìÝëïò tasos. Τελευταία δημοσίευση από το μέλος tasos στις 06-02-2013, 14:46. Υπάρχουν 1 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  04-02-2013, 17:58 72051

    Διασύνδεση με PayPal και δυνατότητα για PayPal Account Optional

    Καλησπέρα σας,

    Έχω βάλει σε μία εφαρμογή μου διασύνδεση με PayPal, η οποία λειτουργεί κανονικά αλλά όταν σε πάει στη σελίδα του PayPal ζητάει να κάνεις login ή να φτιάξεις λογαριασμό.
    Θα ήθελα να επιτρέπει στους χρήστες να κάνουν πληρωμή χωρίς να έχουν ή να φτιάξουν λογαριασμό στο PayPal.

    Το PayPal account που χρησιμοποιώ είναι Business και το "PayPal Account Optional" είναι ενεργοποιήμενο. Όταν κάποιος πάει να πληρώσει στο account αυτό με κάποιο button υπάρχει η επιλογή "Pay with my credit or debit card", ενώ όταν κάποιος πάει μέσα από τη φόρμα μου ζητάει δημιουργία λογαριασμού.

    Το library δεν τον έχω γράψει εγώ, και δεν έχω καλή εξοικείωση με την ορολογία του PayPal.
    Από αρκετή αναζήτηση μέσα στη μέρα, κατάλαβα (μάλλον!) πως πρέπει να αλλάξω κάποιες παραμέτρους στο submit URL. Παραθέτω τον κώδικα που το κάνει build.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    Public Function GetSubmitUrl() As String
        Dim myUrl As New StringBuilder()
    
        myUrl.Append((Me.PayPalBaseUrl & "cmd=_xclick&business=") + HttpUtility.UrlEncode(AccountEmail))
        If (BuyerEmail <> "") Then myUrl.AppendFormat("&email={0}", HttpUtility.UrlEncode(BuyerEmail))
        If (Amount <> 0D) Then myUrl.AppendFormat("&amount={0:f2}", Amount)
        If (LogoUrl <> "") Then myUrl.AppendFormat("&image_url={0}", HttpUtility.UrlEncode(LogoUrl))
        If (ItemName <> "") Then myUrl.AppendFormat("&item_name={0}", HttpUtility.UrlEncode(ItemName))
        If (CurrencyCode <> "") Then myUrl.AppendFormat("&currency_code={0}", HttpUtility.UrlEncode(CurrencyCode))
        If (InvoiceNo <> "") Then myUrl.AppendFormat("&invoice={0}", HttpUtility.UrlEncode(InvoiceNo))
        If (SuccessUrl <> "") Then myUrl.AppendFormat("&return={0}", HttpUtility.UrlEncode(SuccessUrl))
        If (CancelUrl <> "") Then myUrl.AppendFormat("&cancel_return={0}", HttpUtility.UrlEncode(CancelUrl))
        If (NotifyUrl <> "") Then myUrl.AppendFormat("&notify_url={0}", HttpUtility.UrlEncode(NotifyUrl))
    
        Return myUrl.ToString()
    End Function

    Αυτό που ζητάω είναι κάτι που μπορεί να ενεργοποιηθεί πειράζοντας την παραπάνω συνάρτηση; Χρειάζεται να κάνω κάτι άλλο ή τελικά θα πρέπει να δουλέψω στο SDK του PayPal και να το στήσω (πρακτικά) από την αρχή;

    Τάσος Καραγιάννης

    Baby debugging steps...
  •  06-02-2013, 14:46 72064 σε απάντηση της 72051

    Απ: Διασύνδεση με PayPal και δυνατότητα για PayPal Account Optional

    Τελικά, το πρόβλημα ήταν στο URL.

    Συγκεκριμένα, η τελευταία γραμμή προθέτει την παράμετρο notify_url. Για κάποιο λόγο, έβλεπε τους χαρακτήρες &not και τους αντικαθιστούσε με το ¬. Κάτι που κανονικά δεν συμβαίνει, αλλά μάλλον επειδή η προηγούμενη παράμετρος είναι επίσης ενα encoded url μάλλον οι browsers διαβάζουν λάθος το URL.

    Τελικά, η notify_url παράμετρος μπήκε πρώτη στο URL και όλα λειτούργησαν κανονικά.

    Τάσος Καραγιάννης

    Baby debugging steps...
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems