Braintree passing shipping address with Request

637 Views Asked by At

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
1

There are 1 best solutions below

0
On BEST ANSWER

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.