Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Class for PayPal
Message
Information générale
Forum:
ASP.NET
Catégorie:
Code, syntaxe and commandes
Titre:
Class for PayPal
Versions des environnements
Environment:
VB 9.0
OS:
Windows 7
Network:
Windows 2003 Server
Database:
MS SQL Server
Application:
Web
Divers
Thread ID:
01520448
Message ID:
01520448
Vues:
213
Here is a .NET class for PayPal. You may adjust has needed.
Imports com.paypal.sdk.services
Imports com.paypal.soap.api
Imports com.paypal.sdk.profiles

Namespace Framework

    Public Class ECommercePayPal

        Public cAddress As String = ""
        Public cAuthorizationCode As String = ""
        Public cCard As String = ""
        Public cCardCVV2 As String = ""
        Public cCity As String = ""
        Public cCountry As String = ""
        Public cPostalCode As String = ""
        Public cProvince As String = ""
        Public cEmail As String = ""
        Public cError As String = ""
        Public cFirstName As String = ""
        Public cIdentifier As String = ""
        Public cIP As String = ""
        Public cLastName As String = ""
        Public cMessage As String = ""
        Public cPassword As String = ""
        Public cReferenceNumber As String = ""
        Public cResponseCode As String = ""
        Public cTransactionID As String = ""
        Public cToken As String = ""
        Public cUsername As String = ""
        Public lProduction As Boolean = True
        Public lSuccess As Boolean = False
        Public nCardExpirationMonth As Integer = 0
        Public nCardExpirationYear As Integer = 0
        Public nNoCountry As Integer = 0
        Public nNoInvoice As Integer = 0
        Public nNoProvince As Integer = 0
        Public nPrimaryKey As Integer = 0
        Public nResponseCode As Integer = 0
        Public nTotal As Double = 0
        Private nLanguage As Integer = 0
        Private oApp As Framework.App
        Private oProcess As Framework.LXProcess

        ' This is when we access the data provider in desktop and Web service mode
        Public Sub New(ByVal toApplication As Framework.App)
            oApp = toApplication
            nLanguage = oApp.nLanguage
        End Sub

        ' This is when we access the data provider in a Web mode
        Public Sub New(ByVal toProcess As Framework.LXProcess)
            oProcess = toProcess
            oApp = oProcess.oApp
            nLanguage = oProcess.nLanguage
        End Sub

        ' Payment
        Public Function Payment() As Boolean
            Dim lcEnvironment As String = ""
            Dim lcTotal As String = ""
            Dim loCaller As CallerServices = Nothing
            Dim loDoDirectPaymentReq As DoDirectPaymentReq = New DoDirectPaymentReq()
            Dim loDoDirectPaymentRequestType As DoDirectPaymentRequestType = New DoDirectPaymentRequestType()
            Dim loDoDirectPaymentResponseType As DoDirectPaymentResponseType = New DoDirectPaymentResponseType()
            Dim loPaymentDetailsItemType1 As PaymentDetailsItemType = New PaymentDetailsItemType()
            Dim loPaymentDetailsItemType2 As PaymentDetailsItemType = New PaymentDetailsItemType()
            Dim loPaymentDetailsItemTypeArray() As PaymentDetailsItemType = Nothing
            Dim loProfile As IAPIProfile = Nothing

            lcTotal = oApp.GetFormatValue(nTotal, , 2)

            loCaller = New CallerServices()
            loProfile = ProfileFactory.createSignatureAPIProfile()

            ' Initialization
            loProfile.APIUsername = cUsername
            loProfile.APIPassword = cPassword
            loProfile.APISignature = cToken

            ' If we use the production environment
            If lProduction Then
                lcEnvironment = "live"
            Else
                lcEnvironment = "sandbox"
            End If

            loProfile.Environment = lcEnvironment

            loCaller.APIProfile = loProfile

            loDoDirectPaymentRequestType.Version = "60.0"

            ' RequestDetails objects
            loDoDirectPaymentRequestType.DoDirectPaymentRequestDetails = New DoDirectPaymentRequestDetailsType()

            ' loDoDirectPaymentRequestType.DoDirectPaymentRequestDetails.MerchantSessionId = "1X911810264059026"

            ' Set payment action
            loDoDirectPaymentRequestType.DoDirectPaymentRequestDetails.PaymentAction = PaymentActionCodeType.Sale

            ' Set IP
            loDoDirectPaymentRequestType.DoDirectPaymentRequestDetails.IPAddress = cIP

            ' Set CreditCard info - this is a dummy card # generated out of a PayPal Sandbox account
            loDoDirectPaymentRequestType.DoDirectPaymentRequestDetails.CreditCard = New CreditCardDetailsType()
            loDoDirectPaymentRequestType.DoDirectPaymentRequestDetails.CreditCard.CreditCardNumber = cCard

            'loDoDirectPaymentRequestType.DoDirectPaymentRequestDetails.CreditCard.CreditCardType = CreditCardTypeType.Visa

            loDoDirectPaymentRequestType.DoDirectPaymentRequestDetails.CreditCard.CVV2 = cCardCVV2
            loDoDirectPaymentRequestType.DoDirectPaymentRequestDetails.CreditCard.ExpMonth = nCardExpirationMonth
            loDoDirectPaymentRequestType.DoDirectPaymentRequestDetails.CreditCard.ExpYear = nCardExpirationYear
            loDoDirectPaymentRequestType.DoDirectPaymentRequestDetails.CreditCard.ExpMonthSpecified = True
            loDoDirectPaymentRequestType.DoDirectPaymentRequestDetails.CreditCard.ExpYearSpecified = True

            ' Set billing address
            loDoDirectPaymentRequestType.DoDirectPaymentRequestDetails.CreditCard.CardOwner = New PayerInfoType()
            loDoDirectPaymentRequestType.DoDirectPaymentRequestDetails.CreditCard.CardOwner.PayerName = New PersonNameType()
            loDoDirectPaymentRequestType.DoDirectPaymentRequestDetails.CreditCard.CardOwner.PayerName.FirstName = cFirstName
            loDoDirectPaymentRequestType.DoDirectPaymentRequestDetails.CreditCard.CardOwner.PayerName.LastName = cLastName
            loDoDirectPaymentRequestType.DoDirectPaymentRequestDetails.CreditCard.CardOwner.Address = New AddressType()
            loDoDirectPaymentRequestType.DoDirectPaymentRequestDetails.CreditCard.CardOwner.Address.Street1 = cAddress
            loDoDirectPaymentRequestType.DoDirectPaymentRequestDetails.CreditCard.CardOwner.Address.Street2 = ""
            loDoDirectPaymentRequestType.DoDirectPaymentRequestDetails.CreditCard.CardOwner.Address.CityName = cCity
            loDoDirectPaymentRequestType.DoDirectPaymentRequestDetails.CreditCard.CardOwner.Address.StateOrProvince = cProvince
            loDoDirectPaymentRequestType.DoDirectPaymentRequestDetails.CreditCard.CardOwner.Address.PostalCode = cPostalCode 
            loDoDirectPaymentRequestType.DoDirectPaymentRequestDetails.CreditCard.CardOwner.Address.CountrySpecified = True

            'loDoDirectPaymentRequestType.DoDirectPaymentRequestDetails.CreditCard.CardOwner.Address.CountryName = "Canada"

            ' If this is Canada
            If nNoCountry = 1 Then
                loDoDirectPaymentRequestType.DoDirectPaymentRequestDetails.CreditCard.CardOwner.Address.Country = CountryCodeType.CA
            Else
                loDoDirectPaymentRequestType.DoDirectPaymentRequestDetails.CreditCard.CardOwner.Address.Country = CountryCodeType.US
            End If

            'loDoDirectPaymentRequestType.DoDirectPaymentRequestDetails.CreditCard.CardOwner.Address.Phone = "5067831111"

            If False Then
                ' Item 1
                loPaymentDetailsItemType1.Amount = New BasicAmountType()
                loPaymentDetailsItemType1.Amount.Value = "2.00"
                loPaymentDetailsItemType1.Amount.currencyID = CurrencyCodeType.USD
                loPaymentDetailsItemType1.Quantity = "1"
                loPaymentDetailsItemType1.Tax = New BasicAmountType()
                loPaymentDetailsItemType1.Tax.Value = "1.00"
                loPaymentDetailsItemType1.Tax.currencyID = CurrencyCodeType.USD
                loPaymentDetailsItemType1.Name = "Item 1"
                loPaymentDetailsItemType1.Number = "SKU 1"

                ' Item 2
                loPaymentDetailsItemType2.Amount = New BasicAmountType()
                loPaymentDetailsItemType2.Amount.Value = "5.00"
                loPaymentDetailsItemType2.Amount.currencyID = CurrencyCodeType.USD
                loPaymentDetailsItemType2.Quantity = "1"
                loPaymentDetailsItemType2.Tax = New BasicAmountType()
                loPaymentDetailsItemType2.Tax.Value = "1.00"
                loPaymentDetailsItemType2.Tax.currencyID = CurrencyCodeType.USD
                loPaymentDetailsItemType2.Name = "Item 2"
                loPaymentDetailsItemType2.Number = "SKU 2"

                loPaymentDetailsItemTypeArray = New PaymentDetailsItemType(1) {}
                loPaymentDetailsItemTypeArray.SetValue(loPaymentDetailsItemType1, 0)
                loPaymentDetailsItemTypeArray.SetValue(loPaymentDetailsItemType2, 1)
            End If

            ' Set payment Details
            loDoDirectPaymentRequestType.DoDirectPaymentRequestDetails.PaymentDetails = New PaymentDetailsType()
            loDoDirectPaymentRequestType.DoDirectPaymentRequestDetails.PaymentDetails.[Custom] = System.DateTime.Now.ToLongTimeString()
            loDoDirectPaymentRequestType.DoDirectPaymentRequestDetails.PaymentDetails.OrderDescription = "No description"

            If False Then
                ' Add the items
                loDoDirectPaymentRequestType.DoDirectPaymentRequestDetails.PaymentDetails.PaymentDetailsItem = New PaymentDetailsItemType(1) {}
                loDoDirectPaymentRequestType.DoDirectPaymentRequestDetails.PaymentDetails.PaymentDetailsItem = loPaymentDetailsItemTypeArray
                loDoDirectPaymentRequestType.DoDirectPaymentRequestDetails.PaymentDetails.PaymentDetailsItem.SetValue(loPaymentDetailsItemType1, 0)
                loDoDirectPaymentRequestType.DoDirectPaymentRequestDetails.PaymentDetails.PaymentDetailsItem.SetValue(loPaymentDetailsItemType2, 1)
            End If

            loDoDirectPaymentRequestType.DoDirectPaymentRequestDetails.PaymentDetails.OrderTotal = New BasicAmountType()
            loDoDirectPaymentRequestType.DoDirectPaymentRequestDetails.PaymentDetails.OrderTotal.currencyID = CurrencyCodeType.CAD
            loDoDirectPaymentRequestType.DoDirectPaymentRequestDetails.PaymentDetails.OrderTotal.Value = lcTotal

            If False Then
                loDoDirectPaymentRequestType.DoDirectPaymentRequestDetails.PaymentDetails.ShippingTotal = New BasicAmountType()
                loDoDirectPaymentRequestType.DoDirectPaymentRequestDetails.PaymentDetails.ShippingTotal.currencyID = CurrencyCodeType.CAD
                loDoDirectPaymentRequestType.DoDirectPaymentRequestDetails.PaymentDetails.ShippingTotal.Value = "2.00"
                loDoDirectPaymentRequestType.DoDirectPaymentRequestDetails.PaymentDetails.TaxTotal = New BasicAmountType()
                loDoDirectPaymentRequestType.DoDirectPaymentRequestDetails.PaymentDetails.TaxTotal.currencyID = CurrencyCodeType.CAD
                loDoDirectPaymentRequestType.DoDirectPaymentRequestDetails.PaymentDetails.TaxTotal.Value = "2.00"
                loDoDirectPaymentRequestType.DoDirectPaymentRequestDetails.PaymentDetails.ItemTotal = New BasicAmountType()
                loDoDirectPaymentRequestType.DoDirectPaymentRequestDetails.PaymentDetails.ItemTotal.currencyID = CurrencyCodeType.CAD
                loDoDirectPaymentRequestType.DoDirectPaymentRequestDetails.PaymentDetails.ItemTotal.Value = "7.00"
            End If

            If False Then
                ' Set ship to address
                loDoDirectPaymentRequestType.DoDirectPaymentRequestDetails.PaymentDetails.ShipToAddress = New AddressType()
                loDoDirectPaymentRequestType.DoDirectPaymentRequestDetails.PaymentDetails.ShipToAddress.Name = "Sally Tate"
                loDoDirectPaymentRequestType.DoDirectPaymentRequestDetails.PaymentDetails.ShipToAddress.Street1 = "451 Happy Valley"
                loDoDirectPaymentRequestType.DoDirectPaymentRequestDetails.PaymentDetails.ShipToAddress.CityName = "Oakland"
                loDoDirectPaymentRequestType.DoDirectPaymentRequestDetails.PaymentDetails.ShipToAddress.StateOrProvince = "CA"
                loDoDirectPaymentRequestType.DoDirectPaymentRequestDetails.PaymentDetails.ShipToAddress.PostalCode = "94603"
                loDoDirectPaymentRequestType.DoDirectPaymentRequestDetails.PaymentDetails.ShipToAddress.CountrySpecified = True
                loDoDirectPaymentRequestType.DoDirectPaymentRequestDetails.PaymentDetails.ShipToAddress.Country = CountryCodeType.CA
            End If

            ' Add the request
            loDoDirectPaymentReq.DoDirectPaymentRequest = loDoDirectPaymentRequestType
            loDoDirectPaymentReq.DoDirectPaymentRequest.Version = "2.20"

            ' Execute the API operation and obtain the response
            loDoDirectPaymentResponseType = CType(loCaller.Call("DoDirectPayment", loDoDirectPaymentRequestType), DoDirectPaymentResponseType)
            cMessage = loDoDirectPaymentResponseType.Ack.ToString()

            ' If we have a success
            If cMessage = "Success" Or cMessage = "SuccessWithWarning" Then
                lSuccess = True
            End If

            ' If this is not a success
            If Not lSuccess Then
                nResponseCode = loDoDirectPaymentResponseType.Errors(0).ErrorCode
                cMessage = loDoDirectPaymentResponseType.Errors(0).LongMessage.ToString
            End If

            cReferenceNumber = loDoDirectPaymentResponseType.CorrelationID
            cTransactionID = loDoDirectPaymentResponseType.TransactionID

            Return lSuccess
        End Function

    End Class

End Namespace
To call it:
            Dim loECommercePayPal As Framework.ECommercePayPal = Nothing

            ' Get the proper definition as per the current scope
            If oProcess Is Nothing Then
                loECommercePayPal = New Framework.ECommercePayPal(oApp)
            Else
                loECommercePayPal = New Framework.ECommercePayPal(oProcess)
            End If

                    loECommercePayPal.cFirstName = cFirstName
                    loECommercePayPal.cLastName = cLastName
                    loECommercePayPal.cCard = cCard
                    loECommercePayPal.cAddress = cAddress
                    loECommercePayPal.cCity = cCity
                    loECommercePayPal.nNoProvince = nNoProvince
                    loECommercePayPal.cPostalCode = cPostalCode
                    loECommercePayPal.nNoCountry = nNoCountry
                    loECommercePayPal.nCardExpirationMonth = nCardExpirationMonth
                    loECommercePayPal.nCardExpirationYear = nCardExpirationYear
                    loECommercePayPal.cEmail = cEmail
                    loECommercePayPal.cIdentifier = cIdentifier
                    loECommercePayPal.nTotal = nTotal
                    loECommercePayPal.lProduction = lProduction
                    loECommercePayPal.cUsername = Trim(cUsername)
                    loECommercePayPal.cPassword = Trim(cPassword)
                    loECommercePayPal.cToken = Trim(cToken)
                    loECommercePayPal.nPrimaryKey = nPrimaryKey
                    loECommercePayPal.cIP = lcIP
                    loECommercePayPal.cCardCVV2 = cCardCVV2
                    loECommercePayPal.cProvince = cProvince
                    loECommercePayPal.cCountry = cCountry
                    If Not loECommercePayPal.Payment() Then
                    End If

                    cError = loECommercePayPal.cError
                    cMessage = loECommercePayPal.cMessage
                    cReferenceNumber = loECommercePayPal.cReferenceNumber
                    cTransactionID = loECommercePayPal.cTransactionID
                    lSuccess = loECommercePayPal.lSuccess
                    nResponseCode = loECommercePayPal.nResponseCode
Michel Fournier
Level Extreme Inc.
Designer, architect, owner of the Level Extreme Platform
Subscribe to the site at https://www.levelextreme.com/Home/DataEntry?Activator=55&NoStore=303
Subscription benefits https://www.levelextreme.com/Home/ViewPage?Activator=7&ID=52
Répondre
Fil
Voir

Click here to load this message in the networking platform