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?
11-30-2012 02:19 PM
It a Bugs, download the source and fixes it.
11-30-2012 03:43 PM
Were do I find the source for authorizenet.dll?
11-30-2012 10:45 PM
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
12-01-2012 08:23 AM
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.
10-25-2013 09:41 AM
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
11-22-2013 08:59 PM