home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
ccvuser.h
< prev
next >
Wrap
Text File
|
1994-11-09
|
11KB
|
192 lines
/* ------------------------------------------------------------------ */
/* This information contained within this file is the intellectual */
/* property of: */
/* */
/* At Your Fingertips Informational Systems, Inc. */
/* 23325 Haynes */
/* Farmington Hills, MI 48336 */
/* (810) 471-1585 */
/* */
/* (C) Copyright 1994, At Your Fingertips Informational Systems, Inc. */
/* All rights reserved. */
/* ------------------------------------------------------------------ */
/* ------------------------------------------------------------------ */
/* Define the Transaction Types */
/* ------------------------------------------------------------------ */
#define APPROVAL 1
#define INCREMENTAL 2
#define PARTIALREVERSAL 3
#define SALE 5
#define CREDIT 6
#define TEST 7
#define CHECKAPPROVAL 8
#define SETTLEMENT 9
/* ------------------------------------------------------------------ */
/* Define the Credit Card Validation Structure */
/* ------------------------------------------------------------------ */
typedef struct CCVUSER
{
SHORT TransactionType; /* 1 - Approval */
/* 2 - Incremental Request */
/* 3 - Partial Reversal */
/* 4 - Reserved */
/* 5 - Sale */
/* 6 - Credit */
/* 7 - Test */
/* 8 - Check Approval */
/* 9 - Settlement */
union CreditCard /* Transaction types 1-6 */
{
CHAR *CardInfo; /* Pointer to Card Number, Field Separator, and
exp date OR Stripe Data */
CHAR TransactionDate[4]; /* MMDD / '0000' for Todays Date */
CHAR InvoiceNumber[10]; /* User-reference field */
double TipAmount[7]; /* Subset of Amount identified as gratuity */
double Amount[7]; /* Total final transaction amount, including
tip, if any. */
BYTE CustomerPresentFlag; /* '0' - Customer persent */
/* '1' - Customer not present */
BYTE TerminalCapability; /* '0' - POS system has magstripe
reader/equipment */
/* '3' - POS system has no magstripe
reader/equipment */
/* -------------------- Responses -------------------------- */
CHAR HostErrorCode[2]; /* '00' */
CHAR ResponseCode[2]; /* 'AA' - Approved */
/* 'ND' - Declined */
/* 'NR' - Referred (Call Voice Center) */
CHAR AuthorizationCode[6]; /* Present only with 'AA' response */
} CreditCard;
union CheckApprovalRequest /* Transaction type '8' */
{
CHAR IDType[2]; /* '00'-'99' verified valid per Check
ID Table */
CHAR Number[24]; /* Left justified, spaced filled; no
imbedded spaces or symbols NOTE:
should this data reach a length greater
than 19 digits, any submitted Check
Sequence Number will be ignored. */
CHAR DateofBirth[6]; /* '000000' or 'MMDDYY' */
double Amount[7];
CHAR CheckSequenceNum[4]; /* nnnn', as found on check. ('0000' is
valid, and will be treated as if no
sequence number was submitted. */
/* -------------------- Responses ----------------------------- */
CHAR HostErrorCode[2]; /* '00' means no error */
CHAR Response[24]; /* Host generated response text */
} CheckApprovalRequest;
struct ExtendedData
{
SHORT ExtendedCode; /* 0 No extended data
4 (Lodging Data)
6 (Auto Rental)
1 (Fleet Data)
12 (Address Verification) */
union Lodging
{
BYTE PrimaryChargeType; /* '1' = Lodging */
/* '2' = Restaurant */
/* '3' = Gift Shop */
CHAR CheckInDate[6]; /* MMDDYY (zeroes if not Primary Charge Type 1) */
CHAR CheckOutDate[6]; /* MMDDYY (zeroes if not Primary Charge Type 1) */
BYTE SpecialProgramCode; /* '1'=No Special Code */
/* '2'=Assured Reservation/No Show */
/* '3'=Advance Deposit */
/* '4'=Delayed Charge */
/* '5'=Express Check Out Service */
/* '6'=Assured Reservation/Normal */
/* '0'=Not Primary Charge Type 1 */
CHAR ExtraChargeCode[5]; /* Up to 6 1-digit codes, each a partial or
complete explanation of why charged amount
differs from receipt cardholder received
at checkout:
'0'-No extra/Filler
'2'-Restaurant
'3'-Gift Shop
'4'-MiniBar
'5'-Telephone
'7'-Laundry
'6'-Other Reasons */
} Lodging;
union AutoRental
{
CHAR RentalAgreementNum[9]; /* Contract invoice reference */
CHAR AuditAdjustment[7]; /* Charges added after check in */
CHAR RentalCity[18]; /* Where car was picked up */
CHAR RentalState[2]; /* Where car was picked up */
CHAR RentalDate[6]; /* YYMMDD when car was picked up */
CHAR RentalTime[4]; /* HHMM when car was picked up */
CHAR ReturnCity[18]; /* Where car was checked in */
CHAR ReturnState[2]; /* Where car was checked in */
CHAR ReturnDate[6]; /* YYMMDD when car was checked in */
CHAR ReturnTime[4]; /* HHMM when car was checked in */
CHAR RenterName[20]; /* As typically written (first name first) */
BYTE NoShowIndicator; /* '2'-No Show Charge */
/* '0'-Normal Charge */
CHAR ExtraChargeCode[5]; /* Up to 6 1 digit codes, each a partial or
complete explanation of why charged
amount differs from receipt cardholder
received at time of rental return:
'0'-Filler/No Extras
'1'-Refueling
'2'-Extra Mileage
'3'-Late Return
'4'-One Way Fee */
} AutoRental;
union Fleet
{
CHAR VehicleNumber[5];
CHAR DriverID[6]; /* Left-justified, fill with '>' (Hex 3E,
Decimal 62) '000000' if not available
E.g.: '123456' or
'1234>>' */
CHAR OdometerReading[6];
CHAR ProductCode1[2]; /* 01-11,21,26,30,40 */
CHAR ProductCode2[2]; /* 21,26,30,40 */
CHAR ProductCode3[2]; /* 21,26,30,40 */
double TotalAmount1;
double TotalAmount2;
double TotalAmount3;
double UnitPrice; /* Right-justified, zero-filled. Three
assumed decimal places.
nnnnn (if fuel product)
00000 (if non fuel) */
BYTE ServiceType; /* '0'-No fuel service
'1'-Self service
'2'-Full service */
double SalesTax;
CHAR ReferenceNumber[5]; /* Job code */
} Fleet;
union AddressVerification
{
CHAR ZipCode[9]; /* Left-justified, space-filled. */
CHAR StreetAddress[20]; /* Left-justified, space-filled. */
/* -------------------- Responses --------------------------- */
BYTE AddressMatch; /* 'Y'-Match */
/* 'N'-No Match */
/* 'X' or ' ' -Service Unavailable/Not Applicable */
BYTE ZIPCodeMatch; /* 'Y'-Match */
/* 'N'-No Match */
/* 'X' or ' ' -Service Unavailable/Not Applicable */
} AddressVerification;
} ExtendedData;
} CCVUSER;
typedef CCVUSER *PCCVUSER;