IncrementalAuth Method
Performs an incremental authorization.
Syntax
fdmshotel.incrementalAuth(transactionId, validationCode, [callback])
Callback
The 'callback' parameter specifies a function which will be called when the operation completes (or an error is encountered). If the 'callback' parameter is not specified, then the method will block and will not return until the operation completes (or an error is encountered).
The callback for this method is defined as:
function(err){ }
'err' is the error that occurred. If there was no error, then 'err' is 'null'.
'err' has 2 properties which hold detailed information:
err.code err.message
Remarks
This method sends an incremental authorization request through Datawire to the FDMS transaction processor and is used to add additional amounts to a previously authorized amount. The CardEntryDataSource property determines whether Track1, Track2, or manually entered card and expiration date are sent in the request. If the authorization request was successful, the ResponseCaptureFlag property will be True, and the ResponseApprovalCode will contain an approval code.
TransactionId is used to specify the ID of the originally authorized transaction. ValidationCode is used to specify the validation code returned in the response from the originally authorized transaction.
The amount of the IncrementalAuth is specified via TransactionAmount.
An authorization blocks funds on the customer's credit card, but does not actually transfer funds. In order for funds to be transferred and the transaction completed, you must settle the transaction. To do this, you must pass an XML aggregate containing the results of the transaction to the Settlement class. For example:
FDMSDetailRecord.ParseAggregate(FDMSHotel.GetDetailAggregate()) FDMSHotel.CardEntryDataSource = edsManuallyEntered FDMSHotel.CardNumber = "4444333322221111" FDMSHotel.CardExpMonth = 03 FDMSHotel.CardExpYear = 12 FDMSHotel.TransactionAmount = "5.00" // Incremental Auth Amount FDMSHotel.IncrementalAuth(FDMSHotel.ResponseTransactionId, FDMSHotel.ResponseValidationCode) If (FDMSHotel.ResponseCaptureFlag = True) Then //The AuthorizedAmount and SettlementAmount must include the sum of the incremental amount and //the original AuthorizedAmount. //If the transaction was originally for $10.00 and a $5.00 incremental amount is added the new //SettlementAmount should be "15.00" FDMSDetailRecord.AuthorizedAmount = "15.00" // FDMSDetailRecord.AuthorizedAmount + FDMSHotel.TransactionAmount FDMSDetailRecord.SettlementAmount = FDMSDetailRecord.AuthorizedAmount // Provided you wish to settle the entire authorized amount FDMSSettle.DetailRecordCount = 1 FDMSSettle.DetailAggregate[0] = FDMSDetailRecord.GetDetailAggregate() End IfIndustry regulations do not allow merchants or processors to store track data in any form of persistent storage. Failure to abide by this regulation can result in significant fines and other penalties.
Important Note: You must ping your list of service provider URLs and update the URL property to the service provider with the shortest response time every 100 transactions, as well as when your application initially starts. This is not a normal ICMP ping - to determine the fastest transaction URL you must use the special Ping method inside the FDMSRegister class. (You may update your list of service provider URLs with the FDMSRegister class's ServiceDiscovery method).