def form_fields
fields['DeliveryFirstnames'] ||= fields['BillingFirstnames']
fields['DeliverySurname'] ||= fields['BillingSurname']
fields['FailureURL'] ||= fields['SuccessURL']
crypt_skip = ['Vendor', 'EncryptKey', 'SendEmail']
crypt_skip << 'BillingState' unless fields['BillingCountry'] == 'US'
crypt_skip << 'DeliveryState' unless fields['DeliveryCountry'] == 'US'
crypt_skip << 'CustomerEMail' unless fields['SendEmail']
key = fields['EncryptKey']
@crypt ||= create_crypt_field(fields.except(*crypt_skip), key)
{
'VPSProtocol' => '2.23',
'TxType' => 'PAYMENT',
'Vendor' => @fields['Vendor'],
'Crypt' => @crypt
}
end