2017-01-06 13 views
1

Я использую метод оплаты Authorize.Net в своем приложении. он отлично работает. Оплата успешно выполнена, но я не могу отправить данные пользователя на сервер, который производит платеж. Почтовый успех я получаю после операции показывает нулевые значенияИнформация о выставлении счетов клиента не отображается в Authorize.Net

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

Я использую следующий код для создания транзакции

- (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]; 

} 
+0

HI @Abhi Я хочу использовать authorise.net в своем приложении, но не получаю код в объекте c, пожалуйста, помогите – Jason

+0

У меня такая же проблема с PHP API. Никаких ответов нигде, что я могу найти. –

ответ

1

Я думаю, вам нужно добавить строку в TransactionRequest вызова под или вблизи requestType.shipping = extendedAmountTypeShipping; линия:

requestType.billing = CustomerAddressType; 

Я не Objective C программист, и я не знакомы с их IOS API, но я просмотрел эту же самую точную вещь с PHP API. Дважды проверьте документацию на этот запросType.billing. Я просто догадался об этом!