Customer's Billing Information not showing in Authorize.Net

229 views Asked by At

I am implementing Authorize.Net payment method in my app. it works fine Payment is successfully done but i am unable to send the user's details to the server who make the payment. The success mail i get after transaction shows null values

==== CUSTOMER BILLING INFORMATION ===
Customer ID :
First Name :
Last Name :
Company :
Address :
City :
State/Province :
Zip/Postal Code :
Country :
Phone :
Fax :
E-Mail :

i am using the following code for creating transaction

- (void) createTransaction
{
    AuthNet *an = [AuthNet authNetWithEnvironment:ENV_TEST];//[AuthNet getInstance];

    [an setDelegate:self];

    CreditCardType *creditCardType = [CreditCardType creditCardType];
    creditCardType.cardNumber = @"4111111111111111";
    creditCardType.cardCode = CvvNumberTxt.text;//@"100";
    creditCardType.expirationDate = ExpiryDateTxt.text; //@"1218";



    PaymentType *paymentType = [PaymentType paymentType];
    paymentType.creditCard = creditCardType;

    ExtendedAmountType *extendedAmountTypeTax = [ExtendedAmountType extendedAmountType];
    extendedAmountTypeTax.amount = @"0";
    extendedAmountTypeTax.name = @"Tax";

    ExtendedAmountType *extendedAmountTypeShipping = [ExtendedAmountType extendedAmountType];
    extendedAmountTypeShipping.amount = @"0";
    extendedAmountTypeShipping.name = @"Shipping";


    CustomerDataType *c = [CustomerDataType customerDataType];
    c.type = @"Artist";
    c.email = @"[email protected]";


    CustomerAddressType *customerAddressType = [CustomerAddressType customerAddressType];
    customerAddressType.firstName = @"Abc";
    customerAddressType.lastName = @"Xyz";
    customerAddressType.country = @"India";
    customerAddressType.state = @"Delhi";
    customerAddressType.city = @"New Delhi";
    customerAddressType.phoneNumber = @"9999999999";


    LineItemType *lineItem = [LineItemType lineItem];
    lineItem.itemName = @"Soda";
    lineItem.itemDescription = @"Soda";
    lineItem.itemQuantity = @"1";
    lineItem.itemPrice = @"1.00";
    lineItem.itemID = @"1";


    TransactionRequestType *requestType = [TransactionRequestType transactionRequest];
    requestType.lineItems = [NSMutableArray arrayWithObject:lineItem];
    requestType.amount = amountTxt.text;  //@"1.00";
    requestType.payment = paymentType;
    requestType.tax = extendedAmountTypeTax;
    requestType.shipping = extendedAmountTypeShipping;


    CreateTransactionRequest *request = [CreateTransactionRequest createTransactionRequest];
    request.transactionRequest = requestType;
    request.transactionType = AUTH_ONLY;
    request.anetApiRequest.merchantAuthentication.mobileDeviceId = [[[UIDevice currentDevice] identifierForVendor] UUIDString];


    request.anetApiRequest.merchantAuthentication.sessionToken = sessionToken;
    [an purchaseWithRequest:request];

}
1

There are 1 answers

0
Mark Eagleton On

I think you need to add a line to your TransactionRequest call under or near the requestType.shipping = extendedAmountTypeShipping; line:

requestType.billing = CustomerAddressType;

I am not an Objective C programmer, and I am not familiar with their iOS API but I overlooked this same exact thing with the PHP API. Double check the documentation for that requestType.billing. I just guessed at that!