- REFID_FIELDS =
{ refId: :reference_id }.freeze
- VALIDATION_MODE_FIELDS =
{ validationMode: :validation_mode }.freeze
- CUSTOMER_PROFILE_ID_FIELDS =
{ customerProfileId: :customer_profile_id }.freeze
- CUSTOMER_PAYMENT_PROFILE_ID_FIELDS =
{ customerPaymentProfileId: :customer_payment_profile_id }.freeze
- BILL_TO_FIELDS =
{ billTo: [
{ firstName: :first_name },
{ lastName: :last_name },
{ company: :company },
{ address: :address },
{ city: :city },
{ state: :state },
{ zip: :zip },
{ country: :country },
{ phoneNumber: :phone },
{ faxNumber: :fax }
] }.freeze
- SHIP_TO_FIELDS =
{ shipTo: [
{ firstName: :ship_to_first_name },
{ lastName: :ship_to_last_name },
{ company: :ship_to_company },
{ address: :ship_to_address },
{ city: :ship_to_city },
{ state: :ship_to_state },
{ zip: :ship_to_zip },
{ country: :ship_to_country },
{ phoneNumber: :ship_to_phone },
{ faxNumber: :ship_to_fax }
], _multivalue: :addresses }.freeze
- ADDRESS_FIELDS =
{ address: [
{ firstName: :first_name },
{ lastName: :last_name },
{ company: :company },
{ address: :address },
{ city: :city },
{ state: :state },
{ zip: :zip },
{ country: :country },
{ phoneNumber: :phone },
{ faxNumber: :fax }
] }.freeze
- PAYMENT_PROFILE_FIELDS =
[
{ customerType: :cust_type },
BILL_TO_FIELDS,
{ payment: [
{ creditCard: [
{ cardNumber: :card_num },
{ expirationDate: :exp_date },
{ cardCode: :card_code }
] },
{ bankAccount: [
{ accountType: :bank_acct_type },
{ routingNumber: :bank_aba_code },
{ accountNumber: :bank_acct_num },
{ nameOnAccount: :bank_acct_name },
{ echeckType: :echeck_type },
{ bankName: :bank_name }
] }
] }
].freeze
- PROFILE_FIELDS =
{ profile: [
{ merchantCustomerId: :cust_id },
{ description: :description },
{ email: :email },
{ paymentProfiles: PAYMENT_PROFILE_FIELDS, _multivalue: :payment_profiles },
SHIP_TO_FIELDS
] }.freeze
- TRANSACTION_FIELDS =
[
{ amount: :amount },
{ tax: [
{ amount: :tax },
{ name: :tax_name },
{ description: :tax_description }
] },
{ shipping: [
{ amount: :freight },
{ name: :freight_name },
{ description: :freight_description }
] },
{ duty: [
{ amount: :duty },
{ name: :duty_name },
{ description: :duty_description }
] },
{ lineItems: [
{ itemId: :line_item_id },
{ name: :line_item_name },
{ description: :line_item_description },
{ quantity: :line_item_quantity },
{ unitPrice: :line_item_unit_price },
{ taxable: :line_item_taxable }
], _multivalue: :line_items },
CUSTOMER_PROFILE_ID_FIELDS,
CUSTOMER_PAYMENT_PROFILE_ID_FIELDS,
{ customerShippingAddressId: :customer_address_id },
{ creditCardNumberMasked: :card_num_masked },
{ bankRoutingNumberMasked: :bank_aba_code_masked },
{ bankAccountNumberMasked: :bank_acct_num_masked },
{ order: [
{ invoiceNumber: :invoice_num },
{ description: :description },
{ purchaseOrderNumber: :po_num }
] },
{ taxExempt: :tax_exempt },
{ recurringBilling: :recurring_billing },
{ cardCode: :card_code },
{ splitTenderId: :split_tender_id },
{ approvalCode: :auth_code },
{ transId: :trans_id }
].freeze
- TRANSACTION_AUTH_FIELDS =
[
{ profileTransAuthOnly: TRANSACTION_FIELDS }
].freeze
- TRANSACTION_AUTH_CAPTURE_FIELDS =
[
{ profileTransAuthCapture: TRANSACTION_FIELDS }
].freeze
- TRANSACTION_CAPTURE_FIELDS =
[
{ profileTransCaptureOnly: TRANSACTION_FIELDS }
].freeze
- TRANSACTION_PRIOR_AUTH_CAPTURE_FIELDS =
[
{ profileTransPriorAuthCapture: TRANSACTION_FIELDS }
].freeze
- TRANSACTION_REFUND_FIELDS =
[
{ profileTransRefund: TRANSACTION_FIELDS }
].freeze
- TRANSACTION_VOID_FIELDS =
[
{ profileTransVoid: [
CUSTOMER_PROFILE_ID_FIELDS,
CUSTOMER_PAYMENT_PROFILE_ID_FIELDS,
{ transId: :trans_id }
] }
].freeze
- CREATE_PROFILE_FIELDS =
[
REFID_FIELDS,
PROFILE_FIELDS,
VALIDATION_MODE_FIELDS
].freeze
- CREATE_PAYMENT_FIELDS =
[
REFID_FIELDS,
CUSTOMER_PROFILE_ID_FIELDS,
{ paymentProfile: PAYMENT_PROFILE_FIELDS },
VALIDATION_MODE_FIELDS
].freeze
- CREATE_ADDRESS_FIELDS =
[
REFID_FIELDS,
CUSTOMER_PROFILE_ID_FIELDS,
ADDRESS_FIELDS
].freeze
- CREATE_TRANSACTION_FIELDS =
[
REFID_FIELDS,
{ transaction: [], _conditional: :select_transaction_type_fields },
{ extraOptions: :extra_options }
].freeze
- DELETE_PROFILE_FIELDS =
[
REFID_FIELDS,
CUSTOMER_PROFILE_ID_FIELDS
].freeze
- DELETE_PAYMENT_FIELDS =
[
REFID_FIELDS,
CUSTOMER_PROFILE_ID_FIELDS,
CUSTOMER_PAYMENT_PROFILE_ID_FIELDS
].freeze
- DELETE_ADDRESS_FIELDS =
[
REFID_FIELDS,
CUSTOMER_PROFILE_ID_FIELDS,
{ customerAddressId: :customer_address_id }
].freeze
- GET_PROFILE_IDS_FIELDS =
[].freeze
- GET_PROFILE_FIELDS =
[
CUSTOMER_PROFILE_ID_FIELDS
].freeze
- GET_PAYMENT_FIELDS =
[
CUSTOMER_PROFILE_ID_FIELDS,
CUSTOMER_PAYMENT_PROFILE_ID_FIELDS
].freeze
- GET_ADDRESS_FIELDS =
[
CUSTOMER_PROFILE_ID_FIELDS,
{ customerAddressId: :customer_address_id }
].freeze
- GET_HOSTED_PROFILE_FIELDS =
[
REFID_FIELDS,
CUSTOMER_PROFILE_ID_FIELDS,
{ hostedProfileSettings: [{ setting: [{ settingName: :setting_name }, { settingValue: :setting_value }], _multivalue: :hosted_settings }] }
].freeze
- UPDATE_PROFILE_FIELDS =
[
REFID_FIELDS,
{ profile: [
{ merchantCustomerId: :cust_id },
{ description: :description },
{ email: :email },
CUSTOMER_PROFILE_ID_FIELDS
] }
].freeze
- UPDATE_PAYMENT_FIELDS =
[
REFID_FIELDS,
CUSTOMER_PROFILE_ID_FIELDS,
{ paymentProfile: PAYMENT_PROFILE_FIELDS + [CUSTOMER_PAYMENT_PROFILE_ID_FIELDS] },
VALIDATION_MODE_FIELDS
].freeze
- UPDATE_ADDRESS_FIELDS =
[
REFID_FIELDS,
CUSTOMER_PROFILE_ID_FIELDS,
{ address: [
{ firstName: :first_name },
{ lastName: :last_name },
{ company: :company },
{ address: :address },
{ city: :city },
{ state: :state },
{ zip: :zip },
{ country: :country },
{ phoneNumber: :phone },
{ faxNumber: :fax },
{ customerAddressId: :customer_address_id }
] }
].freeze
- UPDATE_SPLIT_FIELDS =
[
{ splitTenderId: :split_tender_id },
{ splitTenderStatus: :split_tender_status }
].freeze
- VALIDATE_PAYMENT_FIELDS =
[
CUSTOMER_PROFILE_ID_FIELDS,
CUSTOMER_PAYMENT_PROFILE_ID_FIELDS,
{ customerShippingAddressId: :customer_address_id },
{ cardCode: :card_code },
VALIDATION_MODE_FIELDS
].freeze
- FIELDS =
{
AuthorizeNet::XmlTransaction::Type::CIM_CREATE_PROFILE => CREATE_PROFILE_FIELDS,
AuthorizeNet::XmlTransaction::Type::CIM_CREATE_PAYMENT => CREATE_PAYMENT_FIELDS,
AuthorizeNet::XmlTransaction::Type::CIM_CREATE_ADDRESS => CREATE_ADDRESS_FIELDS,
AuthorizeNet::XmlTransaction::Type::CIM_CREATE_TRANSACTION => CREATE_TRANSACTION_FIELDS,
AuthorizeNet::XmlTransaction::Type::CIM_DELETE_PROFILE => DELETE_PROFILE_FIELDS,
AuthorizeNet::XmlTransaction::Type::CIM_DELETE_PAYMENT => DELETE_PAYMENT_FIELDS,
AuthorizeNet::XmlTransaction::Type::CIM_DELETE_ADDRESS => DELETE_ADDRESS_FIELDS,
AuthorizeNet::XmlTransaction::Type::CIM_GET_PROFILE_IDS => GET_PROFILE_IDS_FIELDS,
AuthorizeNet::XmlTransaction::Type::CIM_GET_PROFILE => GET_PROFILE_FIELDS,
AuthorizeNet::XmlTransaction::Type::CIM_GET_PAYMENT => GET_PAYMENT_FIELDS,
AuthorizeNet::XmlTransaction::Type::CIM_GET_ADDRESS => GET_ADDRESS_FIELDS,
AuthorizeNet::XmlTransaction::Type::CIM_GET_HOSTED_PROFILE => GET_HOSTED_PROFILE_FIELDS,
AuthorizeNet::XmlTransaction::Type::CIM_UPDATE_PROFILE => UPDATE_PROFILE_FIELDS,
AuthorizeNet::XmlTransaction::Type::CIM_UPDATE_PAYMENT => UPDATE_PAYMENT_FIELDS,
AuthorizeNet::XmlTransaction::Type::CIM_UPDATE_ADDRESS => UPDATE_ADDRESS_FIELDS,
AuthorizeNet::XmlTransaction::Type::CIM_UPDATE_SPLIT => UPDATE_SPLIT_FIELDS,
AuthorizeNet::XmlTransaction::Type::CIM_VALIDATE_PAYMENT => VALIDATE_PAYMENT_FIELDS
}.freeze
- ADDRESS_ENTITY_DESCRIPTION =
EntityDescription.new(
[
{ firstName: :first_name },
{ lastName: :last_name },
{ company: :company },
{ address: :street_address },
{ city: :city },
{ state: :state },
{ zip: :zip },
{ country: :country },
{ phoneNumber: :phone },
{ faxNumber: :fax }
],
AuthorizeNet::Address
)
- CREDIT_CARD_ENTITY_DESCRIPTION =
EntityDescription.new(
[
{ cardNumber: :card_num },
{ expirationDate: :exp_date },
{ cardCode: :card_code },
{ cardType: :card_type }
],
AuthorizeNet::CreditCard,
%i[card_num exp_date]
)
- ECHECK_ENTITY_DESCRIPTION =
EntityDescription.new(
[
{ accountType: :account_type },
{ routingNumber: :routing_number },
{ accountNumber: :account_number },
{ nameOnAccount: :account_holder_name },
{ echeckType: :echeck_type },
{ bankName: :bank_name }
],
AuthorizeNet::ECheck,
%i[routing_number account_number bank_name account_holder_name]
)
- PAYMENT_PROFILE_ENTITY_DESCRIPTION =
EntityDescription.new(
[
CUSTOMER_PAYMENT_PROFILE_ID_FIELDS,
{ customerType: :cust_type },
{ billTo: ADDRESS_ENTITY_DESCRIPTION, _value: :billing_address },
{ payment: [
{ creditCard: CREDIT_CARD_ENTITY_DESCRIPTION, _value: :payment_method },
{ bankAccount: ECHECK_ENTITY_DESCRIPTION, _value: :payment_method }
] }
],
AuthorizeNet::CIM::PaymentProfile
)
- PROFILE_ENTITY_DESCRIPTION =
EntityDescription.new(
[
{ merchantCustomerId: :id },
{ description: :description },
{ email: :email },
CUSTOMER_PROFILE_ID_FIELDS,
{ paymentProfiles: PAYMENT_PROFILE_ENTITY_DESCRIPTION, _multivalue: :payment_profiles },
{ shipTo: ADDRESS_ENTITY_DESCRIPTION, _multivalue: :addresses }
],
AuthorizeNet::CIM::CustomerProfile
)