04-05-2011 12:37 PM
Hello...I've looked everywhere and can't seem to find an answer to this one...
I am using the API in C# for Authoize.net. We are storing cutomer information in the CIM.
When I create an authorization request and send it with the billing info, shippinginfo, card number, and set the invoice number on the AuthorizationRequest object everything works fine.
But I want to use the information stored in the CIM Payment Methods, not have the user input a card each time. So the process I am using is to:
**Note CIMCustomer is my custom class to handle the CIM functions.
//Retrieve the customer - I also use the customer object later in the code
var customer = CIMCustomer.getCustomer(user.CIMProfileID);
//create a new order
Order = new Order(user.CIMProfileID, "2949777", "2964271");
order.Amount = new Decimal(99.99);
order.InvoiceNumber = "99999999"
//send the authorization through the CustomerGateway
var gate = CIMCustomer.getGateway();
var ccResponse = gate.Authorize(order);
This sends the authorization, but the invoice number and description are not stored. When I pull back the transaction they have been omitted. It does store billing and shipping info from the CIM, posts the authorization, and returns a transaction id as expected. How do I get it to store the Invoice number using this method? Or...how do I post an AuthorizationRequest and pass in the the CIM Payment and Billing ID's the way I do on the Order constructor?
04-21-2011 03:56 PM
Sorry for the delay. This is definitely a bug and we've got in our list for the next release. In the meantime, you can try doing this though:
The fix for this is in CIM/CustomerGateway.cs - at line 326 add this:
trans.order = new orderExType();
trans.order.description = order.Description;
trans.order.invoiceNumber = order.InvoiceNumber;
trans.order.purchaseOrderNumber = order.PONumber;
Developer Community Manager
07-11-2013 12:26 PM
This same bug exists in the AuthorizeAndCapture method. InvoiceNumber is never copied from the order to the profileTransAuthCaptureType object so it never makes it to the gateway...