Hoppa till huvudinnehåll

Tap2ID - Verifone (Greenbox)

Skrivet av Knut Hauge

Core SDK Workflow

Regular Lookup — Member exists in Diller

New Member — Register in Diller & link card

Add Second Card — Register new card to existing member

1. Initialize → Connect to Terminal

_transactionManager.Initialize(DeviceAddress, ConnectionType.TCPIP)
  • Establishes connection between POS and P630 terminal via TCP/IP

  • Must be called first before any other operations

  • Creates the communication channel

2. Login → Authenticate Operator

_transactionManager.Login(OperatorId, Password)
  • Logs in the cashier/operator to the terminal

  • In NULL mode, password is optional

  • Required before starting payment sessions

3. StartSession → Begin Transaction Context

_transactionManager.StartSession(InvoiceId)
  • Creates a payment session with unique invoice ID

  • Groups all operations (card capture, payment) under one session

  • Must be open before capturing cards or processing payments

4. RequestCardData2 → Early Card Capture (Key Feature)

_transactionManager.RequestCardData2(     amount: 10000,       // Maximum expected amount     tokenRequest: true   // Request ANALYTICS + REUSE tokens )

Purpose: Capture card before knowing the final price

  • Customer taps card once

  • Returns card data (brand, last4, BIN, expiry)

  • Returns ANALYTICS token → Used to search Diller for member

  • Returns REUSE token → Used for future transactions

  • Stores card data in terminal memory for later payment

5. StartPayment → Process Payment

_transactionManager.StartPayment(     amount: 9000,                  // Final discounted amount     currency: "SEK",     paymentType: PaymentType.SALE )

With Early Capture (our implementation):

  • Uses card data from step 4 (no re-tap needed)

  • Amount can differ from capture amount (discount applied)

  • Terminal processes payment with stored card

6. EndSession → Close Transaction Context

_transactionManager.EndSession()
  • Closes the payment session

  • Clears captured card data

  • Finalizes the transaction

7. Logout → Disconnect Operator

_transactionManager.Logout()
  • Logs out the operator

  • Terminal returns to idle state

Complete flow example

1. Initialize   → Connect to terminal at 192.168.68.123 2. Login        → Operator "TEST" logs in 3. StartSession → Session "INV-123" opens 4. RequestCardData2 → Customer taps card (max $100)    ↓ Returns: { brand: "Visa", last4: "1234", analyticsToken: "ABC..." } 5. [POS searches Diller with token → finds discount] 6. StartPayment → Charge $90 (uses captured card, no re-tap)    ↓ Returns: { transactionId: "...", authCode: "057652" } 7. EndSession   → Close session 8. Logout       → Terminal idle

Critical SDK Configuration

The terminal must have the following configuration set:

Terminal.CardAcquisitionBehaviour = 1

Value

Meaning

0

Card capture works, but follow-on payment is not allowed

1

Card capture works, and payment can use captured card ✅

Fick du svar på din fråga?