cancel
Showing results for 
Search instead for 
Did you mean: 

CustomerGateway processing

I am using CustomerGateway (of AuthorizeNet.DLL) to make payments using customer profiles.  The process is working except that with

AuthorizeAndCapture, the invoice number and description are not written to the unsettled transaction and are returned blank in the response.

 

Dim gate AsNew CustomerGateway(_userLoginName, _transactionKey, True)

 

Dim order1 AsNew Order(CustomerProfileID, PaymentID, "")

order1.InvoiceNumber = Invoice

order1.Description = Descr

order1.Amount = Amount

Dim response As GatewayResponse = gate.AuthorizeAndCapture(order1)

 

The above works, except for the blank Invoice and Description fields on the transaction and on the response.

 

The Authorize only request (in place of AuthorizeAndCapture) stored the Invoice and Description.

Dim response As GatewayResponse = gate.Authorize(order1)

 

This was tested using test.authorize.net and using .NET framework 3.5

 

The following, using AuthorizationRequest, also processes successfully with invoice number and description being set correctly:

 

Dim request As New AuthorizationRequest(CardNo, Expire, Amount, Descr)

request.InvoiceNum = Invoice

Dim gate = New Gateway(_userLoginName, _transactionKey, True)

 

Dim response As GatewayResponse = gate.Send(request)

 

Without the invoice Number and Description, it will be very difficult manually to reconcile trnsactions.  Is this a bug that can be fixed or is there another way I could do a transaction via CustomerGateway where the invoice and description will be retained?

 

 

 

 

dmetting
Member
5 REPLIES 5

It a Bugs, download the source and fixes it.

RaynorC1emen7
Expert

Were do I find the source for authorizenet.dll?

http://developer.authorize.net/downloads/

Is it in c# and instead download the binary, download the source. Or just use the Web service call to CIM and do whatever you need in VB.net

For anybody stumbling on this, it's still a problem.

 

In the C# api file CustomerGateway.cs, the function AuthorizeAndCapture creates a profileTransAuthCaptureType object to send the request to the server, but in that object it doesn't create an orderExType to store the description or invoice number, so those values aren't stored with your transaction unless you alter the api yourself.

 

Hopefully that makes enough sense so you can fix it yourself.

Thanks for the headsup...

so I edited the sourcecode  and replicated what I saw in CustomerGateway.cs :

Authorize(Order order)

 

       

publicIGatewayResponse AuthorizeAndCapture(Order order) {

           

var req = newcreateCustomerProfileTransactionRequest();

           

var trans = newprofileTransAuthOnlyType();

            trans.customerProfileId = order.CustomerProfileID;

            trans.customerPaymentProfileId = order.PaymentProfileID;

            trans.amount = order.Total;

           

//order information  --djl added 2013-11-22

            trans.order =

neworderExType();

            trans.order.description = order.Description;

            trans.order.invoiceNumber = order.InvoiceNumber;

            trans.order.purchaseOrderNumber = order.PONumber;

 

 

but ran into some compilation issues on the entire solution...so I just compiled the source for that solution; and it worked.

 

thanks a bunch....authorize.net should really fix it ....5 mins worth of work