vb.netbraintreebraintree-data

Braintree passing shipping address with Request


I am new to VB.net while using braintree, it is working fine, now I need to pass shipping details with the payment request. How can I do it

If Request.Form("payment_method_nonce") <> "" Then
    Dim strStatus As String = ""    
    Dim gateway As New Braintree.BraintreeGateway    
    With gateway
        .Environment = Braintree.Environment.SANDBOX
        .PublicKey = "*********"
        .PrivateKey = "*************"
        .MerchantId = "*************"
    End With

    Dim transactionRequest As New Braintree.TransactionRequest    
    With transactionRequest
        .Amount = 100
        .PaymentMethodNonce = Request.Form("payment_method_nonce")
    End With

    Dim result As Braintree.Result(Of Braintree.Transaction) = gateway.Transaction.Sale(transactionRequest)
    If result.Errors Is Nothing Then
        If result.Target.Status.ToString = Braintree.TransactionStatus.AUTHORIZED.ToString Then
            strStatus = "Payment is " & result.Target.Status.ToString
            Dim result1 As Braintree.Result(Of Braintree.Transaction) = gateway.Transaction.SubmitForSettlement(result.Target.Id)
            strStatus = strStatus & " And Now its " & result1.Target.Status.ToString
            Label1.Text = "Paid"
        Else
            strStatus = result.Target.Status.ToString
        End If
    Else
        strStatus = result.Message.ToString
        Label1.Text = "Not Paid"
    End If
    status.Text = strStatus
End If

Solution

  • Full disclosure: I'm a developer at Braintree.

    You can add the shipping address as part of the transaction by specifying ShippingAddress in your TransactionRequest object. ShippingAddress would be created as an AddressRequest object. You can see a full .NET example which includes creating a shipping address on our developers site.

    As for how to do this with VB.net, based on your code snippet, you should be able to do something like this:

    Dim shippingAddressRequest As New Braintree.AddressRequest    
    With shippingAddressRequest
        .FirstName = "John"
        .LastName = "Smith"
        .StreetAddress = "123 Example St."
        .Locality = "Chicago"
        .Region = "IL"
        .PostalCode = "60601"
        .CountryCodeAlpha2 = "US"
    End With
    

    Then modify your transactionRequest to be like this:

    Dim transactionRequest As New Braintree.TransactionRequest   
    With transactionRequest
        .Amount = 100
        .PaymentMethodNonce = Request.Form("payment_method_nonce")
        .ShippingAddress = shippingAddressRequest
    End With
    

    If you need any other assistance related to this, I recommend reaching out to Braintree support.