客户的帐单信息未显示在Authorize.Net中

时间:2017-01-06 10:19:12

标签: ios objective-c payment-gateway 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 = @"abc@gmail.com";


    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 个答案:

答案 0 :(得分:1)

我认为您需要在requestType.shipping = extendedAmountTypeShipping下或附近的TransactionRequest调用中添加一行;行:

requestType.billing = CustomerAddressType;

我不是Objective C程序员,我不熟悉他们的iOS API,但我忽略了与PHP API相同的东西。仔细检查该requestType.billing的文档。我猜对了!